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.

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.12.0.tar.gz (144.4 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.12.0-py3-none-any.whl (116.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pushtunes-2.12.0.tar.gz
  • Upload date:
  • Size: 144.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"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.12.0.tar.gz
Algorithm Hash digest
SHA256 1222c3a41f0c47a6ad27fac4e3cd07fd6b5555dfc44e5bb9a527c24ca8442959
MD5 defd19df420b2c972b50a4f3ca103422
BLAKE2b-256 d8fd95f7385efbf05f3bc5200d57d5350ac3c835081fefa3f06c1276720dafab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pushtunes-2.12.0-py3-none-any.whl
  • Upload date:
  • Size: 116.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.31 {"installer":{"name":"uv","version":"0.11.31","subcommand":["publish"]},"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.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3bb168e1a15b0784781eac959c746c1aa1f1147b0f75c5c9d4471a3b665a96b
MD5 f23b010560c8eb80e1a590ea7b20616a
BLAKE2b-256 9f990fdced6030f30fafd53d500d71a26587af8b03c6af032e79548824dec3e4

See more details on using hashes here.

Release history Release notifications | RSS feed

2.15.1

2 files

2.15.0

2 files

2.13.1

2 files

This release

2.12.0 This release

2 files

2.11.0

2 files

2.10.0

2 files

2.9.0

2 files

2.8.0

2 files

2.7.0

2 files

2.6.0

2 files

2.5.0

2 files

2.3.0

2 files

2.0.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.20.0

2 files

0.19.0

2 files

0.16.0

2 files

0.15.0

2 files

0.11.0

2 files

0.9.1

2 files

0.9.0

2 files

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