Skip to content

Aandree5/picard-web

Picard Web

Logo

Deploy Docker image  GitHub Release  GitHub last commit (branch)
Docker Image Size (tag)  Docker Pulls  GitHub License

Tag your music with MusicBrainz Picard, right from your browser.

Picard Web is a containerized, browser-accessible version of MusicBrainz Picard, the powerful open-source music tagger. No install required, just open your browser and start organizing your library.

MusicBrainz Picard

⚠️ Disclaimer

This project is not affiliated with, endorsed by, or officially supported by the MetaBrainz Foundation or the MusicBrainz Picard team.
Picard Web is an independent wrapper designed to make Picard accessible via a browser-based container. All trademarks and copyrights remain the property of their respective owners.

⚡ Features

  • Tag with MusicBrainz - rich metadata
  • Run in browser - no install, works anywhere
  • ReplayGain tagging - loudness metadata for consistent playback
  • Lyrics fetching - synced lyrics via LRCLib
  • Clipboard support - copy and paste between Picard and browser
  • No browser whitin a browser - open URLs directly on the client browser
  • In-browser audio playback - Picard’s audio streams seamlessly to the client browser
  • Dark mode available - display app in a dark theme

🧩 Image Variants

Picard Web publishes two Docker image variants:

Variant Description
minimal Contains only the core Picard application
full Includes Picard plus additional plugins and their required libraries

✨ Getting Started

  • Docker Run

Simple run command:

docker run -p 80:5000 -p 443:5443 aandree5/picard-web

Then open https://localhost in your browser.

  • Docker Compose

More examples are available in the deployment-examples folder.

services:
  picard-web:
    image: aandree5/picard-web:latest
    container_name: picard-web
    restart: unless-stopped
    ports:
      - 80:5000
      - 443:5443
    volumes:
      - <config_dir>:/picard-web:rw
      - <music_dir>:/music:rw

Replace <config_dir> and <music_dir> with the appropriate host paths.

‼️ Temporary Workaround for Browser Integration

Picard is undergoing changes to how browser integration works, particularly in how it launches webpages. Not sure if it's going to help or not, but will try to get this to work.

  1. Open Picard Web
  2. Go to Options > Options... > Network
  3. Untick the checkbox for Browser Integration

This disables the integration and allows login via an auth code. However, some features—like Lookup in Browser may not fully work. The browser page will open, but it won’t return the match automatically.

📌 Note: For users running this locally, it's possible to forward port 8000 on docker and getting the integration to work.

  • Docker run: ... -p 8000:8000 ...

  • Docker compose:

---
ports:
  - 8000:8000

🔌 Bundled Plugins

The full variant bundles several plugins to enhance tagging workflows.

  • ReplayGain 2.0 - scans audio files to calculate ReplayGain values
  • Lyrics (LRCLib) - fetches synchronized lyrics from LRCLib
  • AcousticBrainz Tags - highlevel classifiers and tonal/rhythm tags from the AcousticBrainz database

These plugins come pre-installed and are enabled with their default configurations.
Each plugin includes configurable options available in the settings.

ReplayGain 2.0 and Lyrics (LRCLib) can be applied to either an album or an individual track by right‑clicking the item, as shown below.

ReplayGain and Lyrics plugins

🗂️ Bundled Tools

With the full variant, Xfe is included as a lightweight file manager, for easy navigation through the music library.
Accessible via the applications menu.

Applications Menu

🌙 Dark mode

Temporary workaround until v3 introduces theme management.

Enable the dark UI:

  • Open Picard Web and go to Options > Options... > User Interface.
  • Set User interface color theme to System.
  • Click Make It So! and close Picard
  • It will restart automatically and open in dark mode

Dark mode

🏷️ Versioning & Tags

This project follows Semantic Versioning and uses automated releases.

Tag Overview

Format Example Description
latest - Always the newest (full variant), may include breaking changes.
<variant>-v<major> minimal-v1 Latest stable for a major version, of the given variant. No breaking changes.
<variant>-v<major>.<minor> minimal-v1.1 Latest patch for a minor version, of the given variant. No new featues.
<variant>-v<major>.<minor>.<patch> full-v1.1.0 Fixed version, of the given variant, only changes if manually updated.

🛠️ Contributing

Contributions are welcome! Please follow these steps to get set up:

  1. Clone the repository:

    git clone https://github.com/Aandree5/picard-web.git
    cd picard-web
  2. Install pre-commit hooks (for license headers, linting, etc.):

    pip install pre-commit
    pre-commit install
  3. Follow Conventional Commits for commit messages:

    • feat: - New feature
    • fix: - Bug fix
    • docs: - Documentation changes
    • chore: - Maintenance or tooling
    • ci: - CI/CD or workflow updates
    • refactor: - Code improvements without changing behavior
    • revert: - Revert a previous commit
  4. Open a Pull Request against main.

📦 Tech Stack

📄 License

This project wraps MusicBrainz Picard, which is licensed under the GPLv2.
Picard Web itself is released under the Apache 2.0 License.

🙌 Credits & Dependencies

Picard Web builds on the work of several open-source projects. Huge thanks to these upstream tools and communities:

📚 Resources

☕ Support

If you find the project useful, consider supporting its development! Your donations help cover costs and fund future improvements.

You can support through:

Static Badge  Static Badge  Static Badge

About

Docker container to tag your music with MusicBrainz Picard, right from your browser.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors