Trackhound
Paste a link, get tagged music. Trackhound downloads albums, singles, playlists and
single tracks by link from Spotify, Apple Music, Deezer, YouTube, SoundCloud, Last.fm and
sites such as Bandcamp. A name works too: "Daft Punk - Discovery".
Titles, artists, track numbers, the year and the cover are read from the page behind the link, with no accounts or API keys. When the service streams the audio openly (YouTube, SoundCloud, Bandcamp), the track is taken from there; otherwise the same track is looked for on YouTube Music, SoundCloud and among YouTube videos. yt-dlp downloads it, and mutagen writes the tags and the cover art.
This package is the engine and the command line. Windows users who want the program with its window and everything bundled should take the installer from Releases instead.
Installing
pip install trackhound # the engine and the `trackhound` command
pip install "trackhound[gui]" # adds the window, started with `trackhound-gui`
ffmpeg and a JavaScript runtime (Deno, or Node.js 22+) have to be on PATH. yt-dlp needs
the runtime to get audio from YouTube, and ffmpeg is needed for mp3, opus and ReplayGain.
trackhound --check says what it found.
Command line
trackhound https://open.spotify.com/album/2noRn2Aes5aoNVsU6iWThc
trackhound "Daft Punk - Discovery" -f mp3 -o ~/Music
trackhound --dry-run https://www.deezer.com/playlist/908622995
trackhound --help
As a library
from pathlib import Path
from trackhound.engine import Downloader, Options, resolve
release = resolve("https://www.deezer.com/album/302127")
print(release.album.name, [track.title for track in release.tracks])
downloader = Downloader(Options(output_dir=Path("Music"), audio_format="m4a"))
report = downloader.download_link("https://www.deezer.com/album/302127")
print(report.summary())
The names importable from trackhound.engine are the public interface and keep working
across minor versions; the modules behind it may change. Messages come in the system's
language, Russian or English; set_language("en") fixes it. The engine writes to the
trackhound logger and sets up no handlers of its own.
Licence
GPL-2.0-or-later. Use it for music you have the rights to, and respect copyright law and the terms of service of the services involved.
Metadata
Release files for trackhound 1.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| trackhound-1.3.2.tar.gz | 172.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| trackhound-1.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 314.1 kB
Release files / trackhound-1.3.2.tar.gz
| Download URL | trackhound-1.3.2.tar.gz |
|---|---|
| Size | 172.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d95b9200aad6d794426bdce3773ad9815c3009c16aac58d86b0bd90c62a48130
|
|
BLAKE2b-256 checksum How to use checksums |
10bc47b59afaa095625d0f42bfa023afc28bfe84ecf0f52cccf9f518cf89dcde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / trackhound-1.3.2-py3-none-any.whl
| Download URL | trackhound-1.3.2-py3-none-any.whl |
|---|---|
| Size | 142.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6bfa2f4308979c68425f9d00b615e270e34b9e64f3b3459180d7271111843516
|
|
BLAKE2b-256 checksum How to use checksums |
fef7624d2cbd78701cd5e499632199ab54b515f7d95ad39ade4a74a9a4dfc76f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency log