Skip to main content

Python checks PyPI - Version Documentation

plistsync

Toolbox for transferring, converting and matching music collections and playlists across services.

plistsync logo

Overview

plistsync is a Python toolbox designed to solve the common problem of fragmented music libraries across different platforms. Whether you're a DJ moving playlists between Traktor and streaming services, a music enthusiast syncing collections between Plex and Spotify, or simply organizing your music across multiple platforms, plistsync provides a unified interface to transfer, convert, and match your music data.

The core of plistsync is its abstraction layer that normalizes tracks, collections, and playlists from various services into a common format, enabling seamless synchronization while handling the complexities of different APIs, authentication methods, and metadata formats.

Features

  • Unified Abstraction Layer: Normalizes tracks, collections, and playlists from various services into a common format, enabling seamless synchronization across platforms
  • Extensible Service Architecture: The abstraction layer is designed to support arbitrary music services with consistent APIs
    • Currently supports Spotify, Tidal, Plex, Traktor and local files
  • Collection Management: Sync entire music libraries or specific playlists between services
  • Developer-Friendly: Built with type hints, comprehensive error handling, and pytest for testing
  • Flexible Configuration: Manage service credentials and preferences through config files

Getting started

For detailed usage guides, API reference, and examples, see the full documentation.

Is this for you?

plistsync is intended for users who are comfortable with Python and scripting. It is not a point-and-click app, it’s a developer-oriented toolbox for automating music library and playlist workflows.

License

This project is licensed under the PolyForm Noncommercial License 1.0.0.

In short, this license allows broad use for personal, educational, research, and non-profit purposes, but forbids commercial use. We chose it to defend our work in an industry that often exploits artists, where commercial interests seem more important than an inclusive community.

See the LICENSE file for the full terms.

Support the project

If you enjoy this project, there are a few ways you can support us:

  • To add Apple Music support, we are currently looking for someone to support us with an Apple Developer Account. (Apple only allows access to its MusicKit API via a paid Developer Account. If you are a Dev and willing to help us out, please get in touch 🫶)
  • Contribute code: Pull requests, bug reports, and feature suggestions are always welcome!
  • Spread the word: Share the project with friends or on social media.
  • Donate: Every contribution helps fuel more coffee-powered coding sessions!

Keep your music in sync, everywhere.

Metadata

Release files for plistsync 0.8.0

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

Source distribution (sdist)

Source distribution for plistsync 0.8.0
File Size Uploaded
plistsync-0.8.0.tar.gz 1.3 MB Details

Built distribution (wheel)

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

Total release size: 1.5 MB

Release files / plistsync-0.8.0.tar.gz

Download URL plistsync-0.8.0.tar.gz
Size 1.3 MB
Tags Source
SHA-256 checksum
How to use checksums
b588199b3a0b97d3adc8bd11c18b41fbebff4fe705208551329fc6f4b0fad567
BLAKE2b-256 checksum
How to use checksums
9fd2fb9cbba7944a663415d6cc01c535dd50266863e380723f17aa94edb631ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / plistsync-0.8.0-py3-none-any.whl

Download URL plistsync-0.8.0-py3-none-any.whl
Size 143.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
caf930bbd12183d9e52c3997fc7801be1f059216aafbc97eb10d0c9ccb58187e
BLAKE2b-256 checksum
How to use checksums
8f4a5c8b50db084db1b0a7546e1d4482adc16f52509c2fd9fe08f137cc96c9e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.0.1

2 release 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