tunelog
Self-hosted music recommendation that learns your taste from skips and replays no ratings needed.
What is it?
What it is
TuneLog is a self-hosted music recommendation system for Navidrome that learns from listening behavior (skips, partial plays, full plays, repeats) to generate personalized playlists and improve search results.
Why it exists
It exists to provide personalized, adaptive playlists that counteract overplayed songs dominating recommendations, integrate listening data from Navidrome and ListenBrainz, support accurate playback reporting via Navidrome 0.62.0's playbackReport API, and offer optional proxy-enhanced search and collaborative filtering for better music discovery.
Who should use it
Teams building with TypeScript who want an open-source, self-hosted option.
Who should avoid it
Teams that need a fully managed SaaS with enterprise SLAs out of the box.
How it works
A quick walkthrough in plain English
How tunelog works
Step 1 of 3
You interact with it
Open tunelog, send a request, or connect it to your stack.
Features
Advantages
- Self-hosted, keeping listening data private
- Personalized playlists based on implicit feedback (skips, plays, repeats)
- Improved tracking with Navidrome 0.62.0 playbackReport API
- Integration with ListenBrainz for starred song sync and collaborative filtering
- Dynamic scoring system prevents overplayed songs from dominating playlists
- Optional proxy layer enhances search and ranking in clients
- Web dashboard provides jam session with queue control and chat
- Supports CSV playlist import and export
- MIT licensed, open source
Disadvantages
- Requires a running Navidrome instance
- Setup may involve Docker or manual backend/frontend installation
- Recommendation quality depends on library metadata accuracy
- Some features (e.g., lyrics-aware search) may be affected by lyrics plugins slowing sync
- Real-time jam chat is not end-to-end encrypted
- Primarily targeted at TypeScript/Python developers for customization
Installation
docker
mkdir tunelog && cd tunelog curl -o.env https://raw.githubusercontent.com/adiiverma40/tunelog/main/.env.example curl -o ghcr-compose.yaml https://raw.githubusercontent.com/adiiverma40/tunelog/main/ghcr-compose.yaml docker compose -f ghcr-compose.yaml up -d
native
Backend: cd backend pip install -r requirements.txt python3 main.py Frontend: cd frontend npm install npm run dev
compose
mkdir tunelog && cd tunelog curl -o.env https://raw.githubusercontent.com/adiiverma40/tunelog/main/.env.example curl -o ghcr-compose.yaml https://raw.githubusercontent.com/adiiverma40/tunelog/main/ghcr-compose.yaml docker compose -f ghcr-compose.yaml up -d
FAQ
What is tunelog?
tunelog is an open-source project licensed under MIT.
What language is tunelog built with?
Primary language: TypeScript.
Is it free to use?
Yes. Licensed under MIT. Check the license for commercial use.
Featured in Videos
YouTube tutorials and walkthroughs for tunelog
Alternatives
Similar projects ranked by category, topics, and text overlap.