Skip to main content

Anchor Connector for Podcast Data

Project description

Anchor Connector

This is a simple library for connecting to the unofficial Anchor API.
It can be used to export data from your dashboard at https://anchor.fm/dashboard.

Supported Endpoints

  • total_plays
  • plays_by_age_range
  • plays_by_app
  • plays_by_device
  • plays_by_episode
  • plays_by_gender
  • plays_by_geo
  • plays_by_geo_city
  • episodes

For each episode, the following endpoints are supported:

  • episode_plays
  • episode_performance
  • episode_aggregated_performance
  • episode_all_time_video_data

See __main.py__ for all endpoints.

Credentials

Before you can use the library, you must extract your Anchor credentials from the dashboard; they are not exposed through your Anchor settings.

You can use our web-extension for that or take a look at the code to see how to do it manually.

Installation

pip install anchorconnector

Usage as a library

from anchorconnector import AnchorConnector

connector = AnchorConnector(
   base_url=BASE_URL,
   webstation_id=WEBSTATION_ID,
   anchorpw_s=ANCHOR_PW_S,
)

end = datetime.now()
start = end - timedelta(days=30)

total_plays = connector.total_plays(True)
logger.info("Podcast Total Plays = {}", json.dumps(total_plays, indent=4))

plays_by_age_range = connector.plays_by_age_range(start, end)
logger.info(
   "Plays by Age Range = {}",
   json.dumps(plays_by_age_range, indent=4),
)

# plays_by_app = connector.plays_by_app(start, end)
# plays_by_device = connector.plays_by_device(start, end)
# plays_by_episode = connector.plays_by_episode(start, end)
# plays_by_gender = connector.plays_by_gender(start, end)
# plays_by_geo = connector.plays_by_geo()
# plays_by_geo_city = connector.plays_by_geo_city("Germany")
# ...


for episode in connector.episodes():
   logger.info("Episode = {}", json.dumps(episode, indent=4))

   web_episode_id = episode["webEpisodeId"]

   episode_meta = connector.episode_plays(web_episode_id)
   logger.info("Episode Metadata = {}", json.dumps(episode_meta, indent=4))

   # ...

See __main.py__ for all endpoints.

Development

We use Pipenv for virtualenv and dev dependency management. With Pipenv installed:

  1. Install your locally checked out code in development mode, including its dependencies, and all dev dependencies into a virtual environment:
pipenv sync --dev
  1. Create an environment file and fill in the required values:
cp .env.sample .env
  1. Run the script in the virtual environment, which will automatically load your .env:
pipenv run anchorconnector

To add a new dependency for use during the development of this library:

pipenv install --dev $package

To add a new dependency necessary for the correct operation of this library, add the package to the install_requires section of ./setup.py, then:

pipenv install

To publish the package:

python setup.py sdist bdist_wheel
twine upload dist/*

or

make publish

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

anchorconnector-0.3.1.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

anchorconnector-0.3.1-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file anchorconnector-0.3.1.tar.gz.

File metadata

  • Download URL: anchorconnector-0.3.1.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.16

File hashes

Hashes for anchorconnector-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6d0f3bccecb156b896120dadca9d5917db06751f7f06220c00a7fba8841a1b2d
MD5 2294fb2eec01cf0edf0f53ea33cb16c0
BLAKE2b-256 f1c710bf822ac2d5b2299cd5563c018da6e32de1a6261735d043f6bab52d2078

See more details on using hashes here.

File details

Details for the file anchorconnector-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for anchorconnector-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 940c0959d2684cfdbc1e188cccd850e5ca1d8cf15f4a837e2eaed8af92e64ea8
MD5 bc0b91ef746c691697f684bc3060f5a0
BLAKE2b-256 d703deaaef6fa6f9c39a7cb56f2eb92fcc79903389e26a695de9cc4be93261cc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page