tunelog logo

tunelog

Self-hosted music recommendation that learns your taste from skips and replays no ratings needed.

Developer ToolsSelf-HostedTypeScriptMIT 99 3Health 68
GitHub

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

Integration with Navidrome for library scanning and event support
FastAPI backend for API endpoints
RapidFuzz for fuzzy search capabilities
TailAdmin UI for a modern interface
Enhanced search quality based on library metadata
Playback detection that can be affected by playback speed changes
Dependent on Navidrome scanning and event support for certain features
Search quality depends on library metadata quality
Playback speed changes can affect listening detection

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.

Loading documentation…
View on GitHub

Featured in Videos

YouTube tutorials and walkthroughs for tunelog

Alternatives

Similar projects ranked by category, topics, and text overlap.

Compare
tunelog | MushyBook