This is a simple library for connecting to the unofficial Spotify podcast API.
It can be used to export data from your dashboard at
https://podcasters.spotify.com/home.
- List of episodes
- Starts and streams
- Listeners
- Followers
- Gender
- Age
- Country
- Episode performance
Before you can use the library, you must extract your Spotify credentials from the dashboard; they are not exposed through your Spotify settings.
You can use our web extension for that or take a look at the code to see how to do it manually.
pip install spotifyconnector
from spotifyconnector import SpotifyConnector
# Set up the connector
connector = SpotifyConnector(
base_url="https://generic.wg.spotify.com/podcasters/v0123"
client_id="your_client_id", #login to spotify and monitor connection to get the id
podcast_id="your_spotify_podcast_id",
sp_dc="xxxxxxxxxxxxxxxxxx", #can be found in cookies after logged in
sp_key="xxxxxxxxxxxxxxxxxx" #can be found in cookies after logged in
)
# Get podcast metadata
connector.metadata()
# Get the list of listeners of a podcast
listeners = connector.listeners()
# Get the aggregated listeners of a podcast (by age, country, gender)
aggregate = connector.aggregate()
# Iterate over all episodes (supports pagination)
for episode in connector.episodes():
# Do something with episode
pass
# Get the performance of an episode
performance = connector.performance("episode_id")
# ...
See __main.py__
for all endpoints.
You can run the script locally to test it:
make dev
To run the script with verbose logging:
export LOGURU_LEVEL=TRACE
make dev
We use Pipenv for virtualenv and dev dependency management. With Pipenv installed:
- Install your locally checked-out code in development mode, including its dependencies, and all dev dependencies into a virtual environment:
pipenv sync --dev
- Create an environment file and fill in the required values:
cp .env.example .env
- Run the script in the virtual environment, which will automatically load
your
.env
:
pipenv run spotifyconnector
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
This was inspired by the code at wdr-okr, extended and released to PyPi.