Skip to content

A self hostable web application for rating music albums using systematic track by track evaluation. Built to replace arbitrary year end list making with consistent, meaningful album scores.

License

Notifications You must be signed in to change notification settings

trevordavies095/Tracklist

Repository files navigation

Tracklist Logo

Tracklist

Python Docker FastAPI License MusicBrainz

A self-hosted music album rating application that enables precise album scoring through track-by-track ratings.

If you find this project useful, please consider giving it a star!

Overview

Tracklist is a web application for rating and tracking music albums. It integrates with the MusicBrainz database to provide accurate metadata and uses a four-point track rating system to calculate album scores.

Demo

Click below for a quick demo

Tracklist Demo

Complete workflow: Search → Rate → Track Progress → View Stats

Features

Core Functionality

  • Search and import album metadata from MusicBrainz database
  • Track-by-track rating system with four-point scale
  • Automatic album score calculation (0-100 scale)
  • Cover art fetching and intelligent caching from Cover Art Archive
  • Artist and album relationship tracking

Collection Management

  • Advanced filtering by artist, year, rating status, and score ranges
  • Multi-criteria sorting (rating, release date, artist name)
  • Album comparison tool for side-by-side analysis
  • Bulk operations for collection organization

Analytics & Visualization

  • Comprehensive statistics dashboard with rating distributions
  • Artist performance metrics and top-rated album tracking
  • Year-based analytics and trends
  • No-skip album identification
  • Topsters-style collage generation for visual album grids

User Experience

  • Dark mode support with system-aware theming
  • Mobile-responsive interface
  • Real-time search with debouncing
  • Progress tracking for in-progress albums
  • Customizable album bonus scoring (0.1-0.4 range)

Rating System

Track ratings:

  • 0.0 - Skip: Track to be avoided
  • 0.33 - Filler: Tolerable but not noteworthy
  • 0.67 - Good: Playlist-worthy track
  • 1.0 - Standout: Exceptional track

Album scores are calculated using:
$\lfloor \left (\left (\frac{Sum of track ratings}{Total Number of Tracks} \cdot 10 \right ) + Album Bonus \right ) \cdot 10 \rfloor$

The album bonus defaults to 0.33 and can be configured between 0.1 and 0.4.

Installation

Docker Compose (Recommended)

  1. Create a docker-compose.yml file:
version: '3.8'

services:
  tracklist:
    container_name: tracklist
    image: ghcr.io/trevordavies095/tracklist:latest
    ports:
      - "8000:8000"
    volumes:
      - tracklist_data:/app/data
      - tracklist_logs:/app/logs
      - tracklist_cache:/app/static/artwork_cache
    environment:
      - DATABASE_URL=sqlite:///./data/tracklist.db
      - LOG_LEVEL=INFO
    restart: unless-stopped

volumes:
  tracklist_data:
  tracklist_logs:
  tracklist_cache:
  1. Start the application:
docker-compose up -d
  1. Access the application at http://localhost:8000

Local Development

  1. Clone the repository:
git clone https://github.com/trevordavies095/tracklist.git
cd tracklist
  1. Create a virtual environment and install dependencies:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. Initialize the database:
alembic upgrade head
  1. Run the application:
uvicorn app.main:app --reload --port 8000

Documentation

  • Web Interface: http://localhost:8000
  • API Documentation: http://localhost:8000/docs
  • OpenAPI Schema: http://localhost:8000/openapi.json
  • ReDoc: http://localhost:8000/redoc

Screenshot

Statistics Dashboard

Configuration

Environment variables:

  • DATABASE_URL: Database connection string (default: sqlite:///./data/tracklist.db)
  • LOG_LEVEL: Logging level (DEBUG, INFO, WARNING, ERROR)

Additional configuration options are available in the docker-compose.yml file for cache management, scheduled tasks, and artwork processing.

Acknowledgments

License

MIT License - see LICENSE file for details.

About

A self hostable web application for rating music albums using systematic track by track evaluation. Built to replace arbitrary year end list making with consistent, meaningful album scores.

Topics

Resources

License

Stars

Watchers

Forks

Packages