Skip to main content

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:

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

Head over to our Read The Docs page.

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

pushtunes-2.5.0.tar.gz (94.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pushtunes-2.5.0-py3-none-any.whl (98.6 kB view details)

Uploaded Python 3

File details

Details for the file pushtunes-2.5.0.tar.gz.

File metadata

  • Download URL: pushtunes-2.5.0.tar.gz
  • Upload date:
  • Size: 94.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pushtunes-2.5.0.tar.gz
Algorithm Hash digest
SHA256 3c359b147757437d48ee35aa9bd7846e4220e0256df2afe238b6aaafd9179d2e
MD5 515254c63610e609fffbe1bbc2a873ad
BLAKE2b-256 b151a03a730f1af86beae25d11efeb0fed68ac84beab3a09c5f68c6dec2ac312

See more details on using hashes here.

File details

Details for the file pushtunes-2.5.0-py3-none-any.whl.

File metadata

  • Download URL: pushtunes-2.5.0-py3-none-any.whl
  • Upload date:
  • Size: 98.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pushtunes-2.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f9a68c362681594cfd9b85ed94fa23b8c68518906227f7465c84ea2e94c9fdd1
MD5 17c2a70f3c452543ef6497821ee16e78
BLAKE2b-256 fd2dc96f630fdd08652aceb4156332d6e054dc4f97b0de45305c4ad90a1dbc77

See more details on using hashes here.

Supported by

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