CHARTHOUND

THE NEW WORLD Β· v1.0
Developed by Colby R. Curtis Β· β˜• Buy Me a Coffee Β· Claude.ai code support
↓ CREATE ACCOUNT
β˜• buymeacoffee.com/colbycurtis

πŸ• WELCOME TO CHARTHOUND

Let's get you set up in just a few steps. You can skip anything you don't need and set it up later in The Kennel.

1
What do
you want?
2
Secret
Key
3
Media
Server
4
Music
Path
5
Optional
Services
6
Ready!

Check everything you plan to use. ChartHound will only show setup steps for what you need. You can always enable more later.

🏷 Tag my music filesClean up Genre, Mood, Year and chart info on your FLAC/MP3 files using The Retriever. No media server required.
πŸ“Ί Use a media server (Plex / Emby / Jellyfin)Push playlists, trigger library refreshes after tagging, and browse your library inside ChartHound.
πŸ“‘ Find and download missing musicUse The Sniffer and Bloodhound to find chart hits and artist albums you don't have, then grab them via Prowlarr.
🎬 Hunt missing movies & TV (Radarr / Sonarr)Use The Tracker to automatically search for missing content from your Radarr and Sonarr want lists.
β–Ά Create YouTube playlistsUse The Scout to build YouTube playlists based on charts, genres, or artists.

ChartHound encrypts all your API tokens and passwords before storing them. To do this it needs a SECRET_KEY β€” a long random password that only you know.

Open a terminal on your server and run the command for your operating system below. Copy the result and paste it into your docker-compose.yml file where it says CHANGE_ME_GENERATE_A_STRONG_RANDOM_KEY. Then restart the container.

Linux
Mac
Windows (PowerShell)
Windows (CMD)
Synology
QNAP
Unraid
TrueNAS
Proxmox
python3 -c "import secrets; print(secrets.token_hex(32))"
⚠ Never share your SECRET_KEY or your docker-compose.yml file. If you believe your key has been compromised, generate a new one and restart the container. Treat it like a master password.
Once you have updated docker-compose.yml and restarted the container, come back and click Next.

Connect at least one media server. You don't need all three β€” just the one you use. You can set up the others later in The Kennel.

β„Ή You can skip this step entirely if you only want to tag files without a media server. Not all features will be available.
Plex
Emby
Jellyfin
Usually http://localhost:32400 if Plex is on the same machine as Docker. Replace localhost with your server's IP address if it's on a different machine.
Default: http://localhost:32400 β€” change to your server IP if needed
In Plex, go to Settings β†’ Troubleshooting β†’ click "Show XML" next to any item. Look for X-Plex-Token in the URL bar and copy the value after the = sign.
Usually http://localhost:8096. Replace localhost with your server IP if Emby is on a different machine.
Default: http://localhost:8096
In Emby, go to Dashboard β†’ API Keys β†’ click the + button to create a new key. Give it a name like "ChartHound".
In Emby, go to Dashboard β†’ Users β†’ click your username. Look at the browser URL bar β€” the long string of letters and numbers at the end is your User ID.
Usually http://localhost:8096. Replace localhost with your server IP if Jellyfin is on a different machine.
Default: http://localhost:8096
In Jellyfin, go to Dashboard β†’ API Keys β†’ click the + button to create a new key.
In Jellyfin, go to Dashboard β†’ Users β†’ click your username. The User ID is shown on that page or in the browser URL bar.

ChartHound runs inside Docker and needs to know how to find your music files. Your media server uses one path β€” Docker uses another. This translator bridges the two.

This is the path your media server (Plex/Emby/Jellyfin) uses to find your music. You can find this by looking at any track's file info in your media server and copying everything up to (but not including) the artist folder name.
Example: /media/colby/NAS1/MUSIC TAGGED β€” everything before the artist folder
This is the path inside the Docker container where your music is mounted. Unless you changed the docker-compose.yml volume mapping, leave this as /music.
Usually /music β€” only change if you edited the volume in docker-compose.yml
Enter a path above to see the translation.

Set up any additional services you selected. Everything here is optional β€” click Skip if you want to set these up later in The Kennel.

LAST.FM β€” MOOD TAGS
Last.fm API keys are completely free. Visit last.fm/api/account/create and sign up. No credit card needed. The key will be emailed to you instantly.
Free at last.fm/api/account/create β€” no credit card needed
PROWLARR β€” INDEXER MANAGER
Usually http://localhost:9696 if Prowlarr is on the same machine. Replace localhost with your server IP if it's on a different machine.
In Prowlarr, go to Settings β†’ General. Your API key is shown at the top of the page.
RADARR & SONARR β€” THE TRACKER
Usually http://localhost:7878. Found in Radarr β†’ Settings β†’ General β†’ API Key.
Usually http://localhost:8989. Found in Sonarr β†’ Settings β†’ General β†’ API Key.
πŸ•
YOU'RE READY!
ChartHound is configured and ready to go. You can update any connection at any time from The Kennel tab.

CHARTHOUND

THE NEW WORLD Β· METADATA ENGINE
Developed by Colby R. Curtis Β· β˜• Buy Me a Coffee Β· Claude.ai code support
PLEX
EMBY
JF
LFM
PWL
NAVIGATION
πŸ”‘
THE KENNEL
Connections & encrypted API vault
🏷
THE RETRIEVER
Write metadata to physical files
πŸ“‘
THE SNIFFER
Find missing chart hits & grab them
βœ‚οΈ
THE GROOMER
Build playlists from what you own
πŸ”
THE BLOODHOUND
Hunt every album by any artist
🎯
THE TRACKER
Radarr/Sonarr missing & cutoff hunter
β–Ά
THE SCOUT
YouTube playlist creator
🎬
THE LOOKOUT
Local music video manager
⟳ β€”
v1.0.0 Β· MILESTONE 3
VAULT STATUS
Plex
NOT VERIFIED
Emby
NOT VERIFIED
Jellyfin
NOT VERIFIED
Last.fm
NOT VERIFIED
Prowlarr
NOT VERIFIED
Radarr
NOT VERIFIED
Sonarr
NOT VERIFIED
Download Client
NOT VERIFIED
PATH TRANSLATOR
The path your media server uses for your music library. Find it by looking at any track's file info in Plex/Emby/JF and copying everything up to the artist folder.
The path inside Docker where your music is mounted. Unless you changed the docker-compose.yml volume, leave this as /music.
Enter a path above to preview the translation.
SECURITY

πŸ” 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

API CONNECTIONS β€” THE VAULT

Save credentials first (encrypted immediately on save), then TEST to verify the live connection. Only connect the services you use.

🟧 PLEX MEDIA SERVER
NOT VERIFIED
Usually http://localhost:32400 if Plex is on the same machine as Docker. Replace localhost with your server's IP (e.g. http://192.168.1.100:32400) if it's on a different machine.
Default: http://localhost:32400
In Plex, go to Settings β†’ Troubleshooting β†’ click "Show XML" next to any media item. Look at the browser URL bar and copy the value after X-Plex-Token=
Find yours: Plex Settings β†’ Troubleshooting β†’ Show XML β†’ copy from URL bar
🟩 EMBY
NOT VERIFIED
Usually http://localhost:8096. Replace localhost with your server IP if Emby is on a different machine.
Default: http://localhost:8096
In Emby, go to Dashboard β†’ API Keys β†’ click the + button to create a new key for ChartHound.
Find yours: Emby Dashboard β†’ API Keys β†’ create new
In Emby, go to Dashboard β†’ Users β†’ click your username. The User ID is the long string of letters and numbers shown in the browser URL bar after /users/
Find yours: Emby Dashboard β†’ Users β†’ click your name β†’ copy ID from URL bar
🟦 JELLYFIN
NOT VERIFIED
Usually http://localhost:8096. Replace localhost with your server IP if Jellyfin is on a different machine.
Default: http://localhost:8096
In Jellyfin, go to Dashboard β†’ API Keys β†’ click the + button to create a new key for ChartHound.
Find yours: Jellyfin Dashboard β†’ API Keys β†’ create new
In Jellyfin, go to Dashboard β†’ Users β†’ click your username. The User ID is shown on the page or in the browser URL bar.
Find yours: Jellyfin Dashboard β†’ Users β†’ click your name
πŸ”΄ LAST.FM
NOT VERIFIED
Last.fm API keys are completely free. No credit card needed. Visit last.fm/api/account/create, sign up with a free account, and your API key will be shown immediately.
Free at last.fm/api/account/create β€” no credit card Β· no URL needed

Tertiary waterfall source β€” used for crowdsourced mood tags and chart keyword detection only.

🟣 PROWLARR
NOT VERIFIED
Usually http://localhost:9696. Replace localhost with your server IP if Prowlarr is on a different machine.
Default: http://localhost:9696
In Prowlarr, go to Settings β†’ General. Your API key is displayed at the top of that page.
Find yours: Prowlarr β†’ Settings β†’ General β†’ API Key
🎬 RADARR
NOT VERIFIED
Usually http://localhost:7878. Replace localhost with your server IP if Radarr is on a different machine.
Default: http://localhost:7878 β€” used by The Tracker
In Radarr, go to Settings β†’ General. Your API key is shown at the top of the page.
Find yours: Radarr β†’ Settings β†’ General β†’ API Key
πŸ“Ί SONARR
NOT VERIFIED
Usually http://localhost:8989. Replace localhost with your server IP if Sonarr is on a different machine.
Default: http://localhost:8989 β€” used by The Tracker
In Sonarr, go to Settings β†’ General. Your API key is shown at the top of the page.
Find yours: Sonarr β†’ Settings β†’ General β†’ API Key
⬇ DOWNLOAD CLIENT
NOT VERIFIED

Used by The Sniffer, Bloodhound and Tracker to push grabs using the ChartHound-Music / ChartHound-Movies / ChartHound-TV categories.

Select your torrent client. qBittorrent is the most common. All three work the same way β€” ChartHound sends grabs using ChartHound category tags so you can set custom download paths per category.
The web UI address of your torrent client. qBittorrent default is http://localhost:8080, Deluge is http://localhost:8112, Transmission is http://localhost:9091.
qBittorrent: :8080 Β· Deluge: :8112 Β· Transmission: :9091
Your torrent client web UI username. qBittorrent default username is "admin".
Your torrent client web UI password. This is stored encrypted in ChartHound's database.
🏷
THE RETRIEVER
METADATA FILE WRITER
MusicBrainz β†’ iTunes β†’ Last.fm waterfall engine.
Writes Genre Β· Mood Β· Year Β· Peak Chart Comments
directly to physical FLAC/MP3 files via Mutagen.
Preview mode Β· Auto-Pilot Β· Pause/Stop Β· Subfolder scanning.
MILESTONE 4
πŸ“‘
THE SNIFFER
CHART-HIT PLAYLIST CREATOR
Scan 15+ charts β€” Hot 100 Β· Adult Pop Β· UK Β· CCM Β· Gospel Β· Rock Β· R&B.
Compare against your library Β· Find what's missing.
Search Prowlarr Β· Push grabs with ChartHound-Music category.
Push playlists to Plex Β· Emby Β· Jellyfin.
MILESTONE 5
βœ‚οΈ
THE GROOMER
PLAYLIST BUILDER
Build playlists from tracks you already own.
Filter by chart Β· genre Β· era Β· peak position Β· mood.
Push directly to Plex Β· Emby Β· Jellyfin.
MILESTONE 6
πŸ”
THE BLOODHOUND
ARTIST & ALBUM HUNTER
Search any artist β€” get every album from MusicBrainz.
Select what you want Β· Search via Prowlarr.
Push grabs with ChartHound-Music category.
Background monitoring for new releases.
MILESTONE 7
🎯
THE TRACKER
RADARR / SONARR HUNTER
Automatically hunts missing movies & TV episodes.
Reads your Radarr & Sonarr want lists Β· Searches via Prowlarr.
Grabs with ChartHound-Movies & ChartHound-TV categories.
Scheduled background hunting β€” runs while browser is closed.
MILESTONE 8
β–Ά
THE SCOUT
YOUTUBE PLAYLIST CREATOR
Search YouTube by chart Β· genre Β· artist Β· quality.
Build YouTube playlists and push to your account.
Encrypted YouTube credentials stored in The Kennel.
MILESTONE 9
🎬
THE LOOKOUT
LOCAL MUSIC VIDEO MANAGER
Scan your server's music video collection.
Filter by quality Β· artist Β· genre Β· chart.
Build MV playlists and push to Plex Β· Emby Β· Jellyfin.
MILESTONE 10