docker-compose.yml and replace CHANGE_ME_GENERATE_A_STRONG_RANDOM_KEY with a real key.
python3 -c "import secrets; print(secrets.token_hex(32))"python -c "import secrets; print(secrets.token_hex(32))"docker run --rm python:3.12-slim python3 -c "import secrets; print(secrets.token_hex(32))"docker-compose.yml replacing CHANGE_ME...docker compose down && docker compose up -dTwo quick setup steps. Connect all services anytime in The Kennel after setup.
ChartHound encrypts all your API tokens and passwords. To do this it needs a
SECRET_KEY β a long random password only you know.
Run the command for your OS below, copy the result, then paste it into your
docker-compose.yml where it says
CHANGE_ME_GENERATE_A_STRONG_RANDOM_KEY.
Then restart the container and click Next.
python3 -c "import secrets; print(secrets.token_hex(32))"
docker compose down && docker compose up -d
ChartHound needs to translate your media server's file paths to the Docker
/music mount so it can tag your physical files.
You should have already set the volume path in docker-compose.yml before running the container.
This step tells ChartHound how the two paths relate.
π Fernet (AES-128-CBC) encryption before SQLite write.
π /register locked after first user.
π« Tokens never returned to the browser.
β³ Heartbeat re-checks connections every 60s.
π buymeacoffee.com/colbycurtis
Save credentials first (encrypted immediately on save), then TEST to verify the live connection. On Linux Docker use your server's LAN IP β not localhost.
Tertiary waterfall source β mood tags and chart keyword detection. Strongly recommended for best metadata quality.
Used by The Sniffer, Bloodhound and Tracker. Grabs are tagged with ChartHound-Music / ChartHound-Movies / ChartHound-TV categories so your media server picks them up automatically.
Used by The Scout to create and push playlists to your YouTube account. Free tier: 10,000 units/day.
Excellent genre and style data β significantly improves metadata quality especially for classic rock, jazz, soul and artists where MusicBrainz tags are sparse.
Preview mode shows proposed vs current metadata. You approve before anything is written to your files.
Clears SQLite cache. Next scan fetches fresh data from MusicBrainz Β· Last.fm Β· Discogs Β· Deezer Β· ListenBrainz.
Removes ALL tracks, chart data, write logs and scan history from the database. Files on disk are not affected. Use this for a completely fresh start.
| ARTIST | TITLE | ALBUM | CURRENT GENRES | PROPOSED GENRES | MOODS | YEAR | CONF |
|---|
π‘ Results show albums for better seeds & metadata. Use GET to send to qBit, OPEN for source page, or MAGNET to copy the link.
charthound-music category. Downloads go to the path configured in The Kennel. Your media server will pick them up on its next scan. Lidarr can also import them if the artist is already in your library.
| ARTIST | TITLE | YEAR | PEAK | CHART | STATUS | ACTION |
|---|
π Local mode outputs M3U only.
No media server push available.
| ARTIST | TITLE | YEAR | β | PEAK | WEEKS | CHARTS | CONF |
|---|
| ARTIST | TITLE | TYPE | YEAR | STATUS | ACTION |
|---|
Permanently deletes all scanned track records, chart data, write logs, and scan history from the dynamic database. Your music files on disk are never affected. The static chart database is never touched. This cannot be undone.
Chart data sources loaded into the static database. Future updates will add one-click import from GitHub and Kaggle.
New to ChartHound? The setup wizard walks you through secret key configuration and path translation.