Skip to main content

SpotiFLAC Python Module

Fetch Spotify track metadata and retrieve matching lossless audio through Tidal, Qobuz, Amazon Music and other provider backends — supplied entirely via extensions you choose and configure yourself. Integrate directly into your Python projects, build custom Telegram bots, automation tools, or bulk downloaders.

GitHub stars Latest release PyPI version Python versions GitHub downloads PyPI downloads Telegram community

Disclaimer

This project is intended for educational and personal use only. The developer does not condone or encourage copyright infringement. The software is licensed under the MIT License.

SpotiFLAC-Module-Version is an independent, third-party tool and is not affiliated with, endorsed by, or connected to Spotify, Tidal, Qobuz, Amazon Music, Deezer, or any other streaming service. It is also not affiliated with, and has no control over or responsibility for, any other project sharing a similar name on other platforms.

No copyrighted content is hosted, stored, mirrored, or distributed by this repository. The core application does not bundle, ship, or default to any third-party extension, registry, or provider. Extensions are installed only if a user explicitly configures and requests them from a source of their own choosing; the maintainer has no control over, does not review, and assumes no responsibility for the content or behavior of third-party extensions or registries a user may choose to install.

You are solely responsible for:

  1. Ensuring your use of this software, and any extension or registry you choose to install, complies with your local laws.
  2. Reading and adhering to the Terms of Service of any platform or provider you access, directly or through an extension.
  3. Any legal consequences resulting from the use or misuse of this tool.

This software is provided free of charge by the maintainer. If you paid a third party for access to it, you may have been misled or scammed.

The software is provided "as is", without warranty of any kind, express or implied. The author assumes no liability for any bans, damages, or legal issues arising from its use or misuse. Users assume all risk associated with its use.

If you are a copyright holder or an authorized representative and believe this repository infringes upon your rights, please contact the maintainer with sufficient detail (including relevant URLs and proof of ownership); the matter will be promptly investigated.


Looking for a standalone app?


Why the module (instead of the standalone apps)

The Desktop and Mobile apps are built for direct, immediate use: open it, paste a link, download. The Python module exists for a different case — integrating this logic into something else.

It makes sense to start here if:

  • You're building a bot (Telegram, Discord) or a service that needs to handle requests from many users automatically, not a single manual download.
  • You need the async API (AsyncSpotiFLAC) inside an existing FastAPI/Quart/Sanic app, with shared connection pooling.
  • You want to orchestrate bulk downloads via scripts — multiple playlists, full discographies, local library retagging — with custom logic (filenames via a Python function, post-download actions, saved profiles).
  • You need to run headless, on a server, a NAS, or inside Docker, possibly as part of a larger pipeline.
  • You want full control over which extensions get loaded and from which registry, instead of relying on a fixed set baked into an app.

If you just want a GUI for personal use, with no code involved, the Desktop or Mobile apps remain the simpler choice — this module is the building block those (and similar projects) can be built on top of.


Features

  • Native synchronous and asynchronous Python APIs
  • Modular JavaScript and Python Extension system (bring-your-own registry — nothing bundled)
  • Automatic fallback among the extensions you have installed
  • Built-in GUI, as a native window or served locally in a browser (--gui / --web)
  • Interactive CLI Wizard
  • Docker support
  • Configuration Profiles
  • MusicBrainz metadata enrichment
  • Embedded synchronized lyrics
  • Optional MP3 320 kbps transcoding
  • Watch mode: re-sync a playlist/album/artist/URL on an interval, indefinitely
  • Optional shared-secret or per-account authentication for --web, plus a queued, per-user download history in multi-user mode
  • Extension discovery directories, and optional Ed25519 signature verification on top of registry checksums
  • Local-library duplicate detection by acoustic fingerprint, independent of tags/ISRC
  • Extension scaffolding + dry-run validation for developing your own
  • Installable as a PWA in --web mode (Add to Home Screen / standalone window)
  • Follow artists — check for new releases and fetch only what came out since
  • Library upgrade — find files below a target quality (including fake Hi-Res) and re-fetch them
  • Outbound notifications — webhook, Discord, Telegram or ntfy, per track or one summary per run
  • Versioned REST API at /api/v1, with an OpenAPI document at /docs
  • Durable queue and download log (SQLite): a restart no longer loses queued work
  • Per-account quotas and an admin role in --web-multiuser
  • Extension health panel — success rate, latency and last error per provider

Installation

pip install SpotiFLAC

Important: out of the box, SpotiFLAC does nothing but resolve Spotify metadata — it ships with no built-in provider and no default extension source. Before you can download anything, you need to point it at an extension registry of your own choosing and install at least one extension. See Extensions below.


Documentation

The full guide lives in docs/guide/ — the README had grown to 76 KB and 87 headings, which is past the point where GitHub or PyPI renders it usefully. Every page below is the same text that used to be here.

Page What's in it
Quick Start Every way to run it — GUI, web, CLI, interactive wizard, Python — and the URL types it accepts
Extensions Registries, installing providers, signature verification and trust tiers
Configuration Every option: naming, quality, lyrics, enrichment, transcoding, watch mode, profiles
API Reference SpotiFLAC and AsyncSpotiFLAC, and the objects they return
Local Tagging Retagging an existing library, MusicBrainz enrichment, download validation
Automation & Operations JSON output, post-download hooks, notifications, M3U, library rescan, cache maintenance, running the web server
Following Artists Subscriptions, new-release checks, and the library-upgrade pass
REST API The versioned /api/v1 surface, quotas and the admin endpoints
Docker Headless and NAS setups
CLI The standalone executables

Security policy and the reporting process: SECURITY.md.


Want to support the project?

If this software is useful and brings you value, consider supporting the project by buying us a coffee. Your support helps keep development going.

Ko-fi


API Credits

Song.link · MusicBrainz · LRCLIB · Musixmatch · iTunes Search API

Provider-specific credits (Tidal, Qobuz, Amazon Music, Deezer, SoundCloud, Apple Music, Pandora, and any third-party API used to reach them) now belong to whichever extension you install — see that extension's own documentation for its credits and terms.

[!TIP] Star the repo to show support, and click Watch → Custom → Releases on GitHub if you want to be notified as soon as a new release goes out.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spotiflac-3.7.0.tar.gz (975.7 kB view details)

Uploaded Source

Built Distribution

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

spotiflac-3.7.0-py3-none-any.whl (957.0 kB view details)

Uploaded Python 3

File details

Details for the file spotiflac-3.7.0.tar.gz.

File metadata

  • Download URL: spotiflac-3.7.0.tar.gz
  • Upload date:
  • Size: 975.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for spotiflac-3.7.0.tar.gz
Algorithm Hash digest
SHA256 a3b3f2b919650308628f1ff71f0a2e420e2d61909d50204970d4404ca288a63a
MD5 d54b6c4e76a3e2be759efeecc186ca1b
BLAKE2b-256 83d9b26b9d05b0a1b3a57f03aa921c3bcab55606ae04150008806e3c7d84da2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for spotiflac-3.7.0.tar.gz:

Publisher: publish.yml on BartolomeoRusso9/SpotiFLAC-Module-Version

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spotiflac-3.7.0-py3-none-any.whl.

File metadata

  • Download URL: spotiflac-3.7.0-py3-none-any.whl
  • Upload date:
  • Size: 957.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for spotiflac-3.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 04c69cb7366cd5588942620487eaa0c75cb8584b6a5ff3e2fa944b07dc2e39a2
MD5 d8ca9d79a0bc00120c5f965b2ffcf0a2
BLAKE2b-256 7621b05e423d207f066fe7384b6fe38a1e5ef36ea7f1304574e594b46a011c55

See more details on using hashes here.

Provenance

The following attestation bundles were made for spotiflac-3.7.0-py3-none-any.whl:

Publisher: publish.yml on BartolomeoRusso9/SpotiFLAC-Module-Version

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

4.1.0

2 files

4.0.3

2 files

4.0.2

2 files

4.0.1

2 files

4.0.0

2 files

3.9.0

2 files

3.8.0

2 files

This release

3.7.0 This release

2 files

3.6.0

2 files

3.5.0

2 files

3.1.0

2 files

3.0.9

2 files

3.0.8

2 files

3.0.7

2 files

3.0.6

2 files

3.0.5

2 files

3.0.4

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

1.8.1

2 files

1.8.0

2 files

1.7.9

2 files

1.7.8

2 files

1.7.7

2 files

1.7.6

2 files

1.7.5

2 files

1.7.4

2 files

1.7.3

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.9

2 files

1.6.8

2 files

1.6.7

2 files

1.6.6

2 files

1.6.5

2 files

1.6.4

2 files

1.6.3

2 files

1.6.2

2 files

1.6.1

2 files

1.6.0

2 files

1.5.9

2 files

1.5.8

2 files

1.5.7

2 files

1.5.6

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.9

2 files

1.4.8

2 files

1.4.7

2 files

1.4.6

2 files

1.4.5

2 files

1.4.4

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.4.0

2 files

1.3.9

2 files

1.3.8

2 files

1.3.7

2 files

1.3.6

2 files

1.3.5

2 files

1.3.4

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.9

2 files

1.2.8

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.9

2 files

1.1.8

2 files

1.1.7

2 files

1.1.6

2 files

1.1.5

2 files

1.1.4

2 files

1.1.3

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.9.9

2 files

0.9.8

2 files

0.9.7

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.9

2 files

0.8.7

2 files

0.8.6

2 files

0.8.5

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.9

2 files

0.7.8

2 files

0.7.7

2 files

0.7.6

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.9

2 files

0.6.8

2 files

0.6.7

2 files

0.6.6

2 files

0.6.5

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.9

2 files

0.5.8

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.9

2 files

0.4.8

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.3

2 files

0.3.2

2 files

0.2.13

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.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