tap-spotify
is a Singer tap for Spotify.
Built with the Meltano Tap SDK for Singer Taps.
# pip
pip install git+https://github.com/Matatika/tap-spotify
# pipx
pipx install git+https://github.com/Matatika/tap-spotify
# poetry
poetry add git+https://github.com/Matatika/tap-spotify
Name | Required | Default | Description |
---|---|---|---|
client_id |
Yes | Your tap-spotify app client ID |
|
client_secret |
Yes | Your tap-spotify app client secret |
|
refresh_token |
Yes | Your tap-spotify app refresh token |
A full list of supported settings and capabilities for this tap is available by running:
tap-spotify --about
Before using tap-spotify
, you will need to create an app from your Spotify developer dashboard. We recommend restricting your use of this app to tap-spotify
only. Provide an name, description and a redirect URI of https://alecchen.dev/spotify-refresh-token
(explained below).
Use this web app made by Alec Chen to get a refresh token with your Spotify app credentials:
- Provide your app client ID and secret in the appropriate fields
- Click 'Submit' and follow the Spotify login flow
- Copy the refresh token
THe following token scopes are required (and are pre-selected for you when following the above web app link):
If a required scope is not set, tap-spotify
will encounter a 403 Forbidden
response from the Spotify Web API and fail. You must set all required scopes.
Some scopes are not required. Setting these will allow tap-spotify
to read more specific and possibly sensitive resource data, so do this at your own risk.
You can easily run tap-spotify
by itself or in a pipeline using Meltano.
tap-spotify --version
tap-spotify --help
tap-spotify --config CONFIG --discover > ./catalog.json
pipx install poetry
make init
Identify lint issues by running:
make lint
If
make init
has been run, this command will execute automatically before a commit
You can also fix lint issues automatically with:
make lint-fix
Create tests within the tap_spotify/tests
subfolder and
then run:
make test
You can also test the tap-spotify
CLI interface directly using poetry run
:
poetry run tap-spotify --help
Testing with Meltano
Note: This tap will work in any Singer environment and does not require Meltano. Examples here are for convenience and to streamline end-to-end orchestration scenarios.
Your project comes with a custom meltano.yml
project file already created. Open the meltano.yml
and follow any "TODO" items listed in
the file.
Next, install Meltano (if you haven't already) and any needed plugins:
# Install meltano
pipx install meltano
# Initialize meltano within this directory
cd tap-spotify
meltano install
Now you can test and orchestrate using Meltano:
# Test invocation:
meltano invoke tap-spotify --version
# OR run a test `elt` pipeline:
meltano elt tap-spotify target-jsonl
See the dev guide for more instructions on how to use the SDK to develop your own taps and targets.