Push music (albums, tracks, playlists) from Subsonic, Jellyfin or plain CSV files to Spotify and YouTube Music
Project description
Pushtunes
Pushtunes is a small tool to push your music from local sources (Subsonic-compatible server/Navidrome, Jellyfin, a CSV file, etc.) to music streaming services. It can also back up your music libraries to CSV files and restore them later. Currently only Spotify and YouTube Music are supported. See "Music streaming services" below for more.
Documentation is also available in an easy-to-browse style on Read the Docs, if you prefer.
Installation
With any pip-like environment (pip, uv, etc.) it should be as easy as:
pip install pushtunes
See Installation for more examples or how to install from source instead.
Usage
Set your music service and source credentials (see Getting Started and, for example:
# Push albums from Subsonic to Spotify
pushtunes push albums --from subsonic --to spotify
# Push individual tracks (starred/favorites) from Subsonic to Spotify
pushtunes push tracks --from subsonic --to spotify
# Push playlists from Subsonic to Spotify or YouTube Music
pushtunes push playlist --from subsonic --playlist-name=myplaylist --to spotify
pushtunes push playlist --from subsonic --playlist-name=myplaylist --to ytm
# Push from CSV file
pushtunes push tracks --from csv --csv-file=tracks.csv --to spotify
See pushtunes --help, pushtunes push albums --help, pushtunes push tracks --help, or pushtunes push playlist --help for more options.
There are many advanced features such as:
- Mapping items that can't be found
- Filtering what gets skipped
- Deleting things that aren't in the source
- Managing and syncing playlists from Subsonic/Jellyfin/CSV
- Cross-Service Playlists for direct syncing between YTM and Spotify without going through intermediary files
- Exporting problematic items to CSV for debugging and fixing
Music sources
- Subsonic (including Navidrome, Airsonic, etc.)
- Jellyfin
- CSV files
Music streaming services
- Spotify
- YouTube Music
The streaming service market is in a very sad state of affairs regarding APIs. Spotify has a good one, YouTube Music is almost unusable and working with it is only possible thanks to the people who maintain the unofficial ytmusicapi library. Deezer and Qobuz don't allow anyone to use their API anymore, requests for API keys go unanswered, documentation is being deleted and no up to date libraries exist. Tidal might still allow people to use the API but the Python support is incomplete and lacking the functions Pushtunes needs.
That's why realistically, YTM and Spotify are your choices.
More documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pushtunes-1.1.0.tar.gz.
File metadata
- Download URL: pushtunes-1.1.0.tar.gz
- Upload date:
- Size: 88.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cc1afdec723f6e278976b177f2d968e04a2a3e538d763f8d6dc4892ec4c9a35
|
|
| MD5 |
253942f5e0168b4cd805ab458f15f968
|
|
| BLAKE2b-256 |
a07e9ddb4a024728c0a81007c714875e09f04046c7036eec5acbca441ba0d75d
|
File details
Details for the file pushtunes-1.1.0-py3-none-any.whl.
File metadata
- Download URL: pushtunes-1.1.0-py3-none-any.whl
- Upload date:
- Size: 88.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2462e84af30f2d302594ff384deb673431b343cedac1916d32b235e0edd4c5fc
|
|
| MD5 |
066d1f9d26428d2885733c69a3b755d5
|
|
| BLAKE2b-256 |
bd3460665052c56b45d1e92d8f6c3bb0b9ca0a59ef5ba834398fc0707c969709
|