🎧 Spots
Spots is a modular music coordination library that unifies multiple providers (e.g. Deezer, Spotify, YouTube) into a single, consistent interface.
It resolves tracks across platforms, matches metadata intelligently, and enables downloading, playlist handling, and media conversion — all through a clean, configurable API.
✨ Features
-
🔍 Multi-provider search
- Supports multiple metadata providers with fallback resolution
-
🧠 Intelligent track matching
- Matches tracks across platforms using pattern-based scoring
-
🎵 Unified media resolution
- Seamlessly map metadata → YouTube → downloadable media
-
⚡ Provider fallback system
- Automatically falls back when a provider fails
-
🗂️ Built-in caching
- Reduces redundant API calls and speeds up repeated queries
-
⚙️ Config-driven architecture
- Enable/disable integrations (Spotify, YouTube, etc.)
-
📦 Download + conversion pipeline
- Handles media extraction and conversion (via yt-dlp)
📦 Installation
pip install spots
⚙️ Setup
Run the setup script:
spots setup
- follow the prompts to generate the config folder
🚀 Usage
# search a title
# required search format: `Artist - Title`
spots download "Kelsey Lynn - Modern Day Marilyn Monroe"
# download a direct url
spots download "https://www.youtube.com/watch?v=UmZPa5Qudtw"
Spots will:
- Resolve the track via metadata providers
- Match it to a YouTube video
- Download and convert it
- Store results locally
🎮 Available commands
- download - downloads a direct url or a search query
spots download "Kelsey Lynn - Modern Day Marilyn Monroe"
- migrate-likes - transfers likes from Spotify to YouTube (more providers coming soon...)
spots migrate-likes - add-to-history - adds a user's downloaded songs to the Spots history. Avoids duplicate downloads.
spots add-to-history path-to-music
- remove-duplicates - removes duplicate songs in a given folder.
spots remove-duplicates path-to-music
⚠️ Important
The Spotify API content may not be downloaded using this project. This project is created for personal use only and is intended for educational purposes. Any use of this project to download or distribute copyrighted material without proper authorization is against the terms of service of Spotify and other involved platforms. The project's author and contributors are not responsible for any misuse of this software.
🤝 Contributing
Contributions are welcome.
If you're adding a provider or improving matching logic, open a PR with a clear description of changes.
📄 License
GPL-3.0-or-later
💬 Summary
Spots is designed to make cross-platform music workflows simple:
Give it a track — it figures out the rest.
Metadata
Release files for spots-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| spots_cli-0.1.0.tar.gz | 911.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| spots_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 981.0 kB
Release files / spots_cli-0.1.0.tar.gz
| Download URL | spots_cli-0.1.0.tar.gz |
|---|---|
| Size | 911.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
67c0f67d84a502a5fa0544718e6b33f9d6f76cdab5695e1b205f822cb519f996
|
|
BLAKE2b-256 checksum How to use checksums |
e7ce097c4f9945da58517df5227f51306f8e525f0432da0c2b407dfc724d75a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Release files / spots_cli-0.1.0-py3-none-any.whl
| Download URL | spots_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 69.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1605ceba45db6a1b5598d92bb877dc0ece992b96f122dfe86f2861a6aa0bfb2d
|
|
BLAKE2b-256 checksum How to use checksums |
5b9f8687c135e4dc283b08f29390a8a465a85753c01f4749e5c845887b86e330
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.3
|
Security for spots-cli 0.1.0
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.