Skip to content

Automatically identify and catalog tracks from DJ mixes, live streams, and audio files using audio fingerprinting. Generate formatted track lists in JSON, Markdown, and M3U formats.

License

Notifications You must be signed in to change notification settings

betmoar/tracklistify

Repository files navigation

Tracklistify banner

Tracklistify

A powerful and flexible automatic tracklist generator for DJ mixes and audio streams. Identifies tracks in your mixes using multiple providers (Shazam, ACRCloud) and generates formatted playlists with high accuracy.

Key Features

🎵 Multi-Provider Track Identification

  • Shazam and ACRCloud integration
  • Smart provider fallback system
  • High accuracy with confidence scoring
  • Support for multiple platforms (YouTube, Mixcloud, SoundCloud)

📊 Versatile Output Formats

  • JSON with detailed metadata
  • Markdown formatted tracklists
  • M3U playlists
  • CSV and XML exports
  • Rekordbox compatible format

🚀 Advanced Processing

  • Automatic format conversion
  • Batch processing for multiple files
  • Intelligent caching system
  • Progress tracking with detailed status
  • Configurable audio quality settings

⚙️ Robust Architecture

  • Asynchronous processing
  • Smart rate limiting
  • Advanced error recovery
  • Comprehensive logging system
  • Docker support

Requirements

  • Python 3.11 or higher
  • ffmpeg
  • git
  • uv (package and project manager)

Important Note:

  • Tracklistify is managed by uv, so you will need to install it.
  • Follow the uv installation guide for your platform.

Quick Start

1. Installation

# Clone the repository
git clone https://github.com/betmoar/tracklistify.git
cd tracklistify

# Install dependencies using uv
uv sync

2. Configuration

# Copy example environment file
cp .env.example .env

3. Basic Usage

# Identify tracks in a file or URL
uv run tracklistify <input>

# Examples:
tracklistify path/to/mix.mp3
tracklistify https://youtube.com/watch?v=example

Advanced Usage

Output Formats

# Specify output format
tracklistify -f json input.mp3    # JSON output
tracklistify -f markdown input.mp3 # Markdown output
tracklistify -f m3u input.mp3     # M3U playlist
tracklistify -f csv input.mp3     # CSV export
tracklistify -f all input.mp3     # Generate all formats

Batch Processing

# Process multiple files
tracklistify -b path/to/folder/*.mp3

# With specific output format
tracklistify -b -f json path/to/folder/*.mp3

Additional Options

# Show progress with detailed status
tracklistify --progress input.mp3

# Specify provider
tracklistify --provider shazam input.mp3

# Set output directory
tracklistify -o path/to/output input.mp3

Contributing

Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Automatically identify and catalog tracks from DJ mixes, live streams, and audio files using audio fingerprinting. Generate formatted track lists in JSON, Markdown, and M3U formats.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published