Skip to main content

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 Spotify, YouTube Music, and Tidal 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, YouTube Music, or Tidal
pushtunes push playlist --from subsonic --playlist-name=myplaylist --to spotify
pushtunes push playlist --from subsonic --playlist-name=myplaylist --to ytm
pushtunes push playlist --from subsonic --playlist-name=myplaylist --to tidal

# 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:

Music sources

  • Subsonic (including Navidrome, Airsonic, etc.)
  • Jellyfin
  • CSV files

Music streaming services

  • Spotify
  • YouTube Music
  • Tidal

The streaming service market is in a very sad state of affairs regarding APIs. Spotify and Tidal have good ones, 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.

Your main choices are Spotify, YouTube Music, and Tidal.

More documentation

Head over to our Read The Docs page.

Metadata

Release files for pushtunes 2.15.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pushtunes 2.15.1
File Size Uploaded Provenance Actions
pushtunes-2.15.1.tar.gz 134.8 kB Without provenance Details for pushtunes-2.15.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pushtunes 2.15.1
File Interpreter ABI Platform Actions
pushtunes-2.15.1-py3-none-any.whl Python 3 none any Details for pushtunes-2.15.1-py3-none-any.whl

Total release size: 236.6 kB

Release files / pushtunes-2.15.1.tar.gz

Download URL pushtunes-2.15.1.tar.gz
Size 134.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4440cf1ecac95d369fa0ba375f308a494d414d8803fe679625c1db91331dea84
BLAKE2b-256 checksum
How to use checksums
16d7ccf6edd9a115871a5173bbd2c576b6a7c6a2ce097f46f228642a222d8975
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Release files / pushtunes-2.15.1-py3-none-any.whl

Download URL pushtunes-2.15.1-py3-none-any.whl
Size 101.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
25d8b62680c365c247d0d2a40476d6786c017148095d0ce76cd483ed43d3fdc4
BLAKE2b-256 checksum
How to use checksums
c13cb7f68d962dcfe461c52cd371550d1ba21d28430e27608c6abc5cbdba78ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.14

Security for pushtunes 2.15.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page