Skip to main content

A modern, elegant audio metadata manager designed specifically for classical music collectors.

Project description

OpusTag

Docker Pulls PyPI - Version

Static Badge Static Badge

OpusTag is a modern, elegant audio metadata manager designed specifically for classical music collectors. It combines a powerful local library organizer with an integrated high-resolution cover art fetcher powered by the iTunes API.

✨ Features

  • Apple Music-Inspired UI: A clean, dark-mode interface with frosted glass effects and fluid animations.
  • High-Res Cover Art: Search and download original artwork (up to 3000px+) directly from Apple's servers.
  • One-Click Embedding: Automatically match and embed cover art into your FLAC files.
  • Metadata Editing: Edit album titles, artists, years, genres, and composers with a streamlined bulk editor.
  • Local Library: Scan your local music folder and visualize your collection in a beautiful grid.
  • Dockerized: Fully containerized for easy deployment and isolation.

🚀 Getting Started

OpusTag can be installed as a Python package or run via Docker.

Prerequisites

  • A folder containing your music collection (FLAC format recommended).

Installation (Pip)

Install the latest version from PyPI:

pip install opustag

Start the application pointing to your music directory:

opustag --music-dir /path/to/your/music

This will launch the server and open your default web browser to the OpusTag interface.

Installation (Docker)

Pull and run the pre-built image from Docker Hub:

docker run -d \
  -p 8000:8000 \
  -v /path/to/your/music:/music \
  xiaoran007/opustag:latest

The application will be available at http://localhost:8000.

Development (Build from Source)

If you want to contribute or build from source:

  1. Clone the repository:

    git clone https://github.com/xiaoran007/OpusTag.git
    cd OpusTag
    
  2. Install dependencies:

    pip install -e .
    
  3. Run Development Server:

    uvicorn opustag.main:app --reload
    

    Note: For frontend development, you will also need to run the Vite dev server inside the frontend/ directory.

📖 Usage Guide

1. Searching for Artwork

  • Go to the Search tab (default view).
  • Type an artist, album, or composer name (e.g., "Karajan Beethoven 9").
  • Browse high-resolution results from Apple Music.
  • Click the Search Icon to view the full-size original image in a new tab.
  • Click the Download Icon to save the image locally.

2. Managing Your Library

  • Switch to the Library tab via the sidebar.
  • Click the Refresh button to scan your mapped music folder.
  • Your albums will appear in a grid. Albums missing covers will show a placeholder disc icon.

3. Editing & Embedding

  • Click on any album to open the Detail View.
  • Add/Replace Cover: Click "Auto-Match / Replace Cover". A search window will appear pre-filled with the album's info. Select the correct cover, and OpusTag will automatically download and embed it into all tracks of that album.
  • Edit Tags: Click "Edit Metadata" to modify the Album Artist, Title, Year, Genre, or Composer. Changes are applied in bulk to all tracks.

📝 License

This project is open-source and available under the GPL v3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opustag-0.2.0.tar.gz (111.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opustag-0.2.0-py3-none-any.whl (112.4 kB view details)

Uploaded Python 3

File details

Details for the file opustag-0.2.0.tar.gz.

File metadata

  • Download URL: opustag-0.2.0.tar.gz
  • Upload date:
  • Size: 111.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for opustag-0.2.0.tar.gz
Algorithm Hash digest
SHA256 50949a5475929f372ebfcd580fb12aa210e62f732f19579156ceb529e45d635f
MD5 292fef916698c1701cd9e45c9c7b0f1d
BLAKE2b-256 5b0ee4b89f17820feb57f236da68bf1549544a712cd563ac65c58ea848ba5997

See more details on using hashes here.

File details

Details for the file opustag-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: opustag-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 112.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for opustag-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6036e53578d930ec711e356320c3b75d943815af5644e7c61c9af7f55aadf811
MD5 c4d652da841c207e51640a5dfddaaa5c
BLAKE2b-256 989ecd9b032c6af96c649f357dee7e9025d0d774caacef67fd424a4646cd9b8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page