Skip to main content

🎧 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)

Source distribution for spots-cli 0.1.0
File Size Uploaded Provenance
spots_cli-0.1.0.tar.gz 911.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for spots-cli 0.1.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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