A simple, user-friendly Python CLI tool that generates MusicBrainz Picard file naming scripts through an interactive menu-driven interface.
No scripting knowledge required! Just answer a few simple questions, and get perfectly formatted Picard scripts ready to use.
MusicBrainz Picard is a powerful music tagger that can automatically organize your music library. However, creating custom file naming scripts requires learning Picard's scripting language and can be complex and error-prone.
This tool solves that problem. It provides:
- 🎯 Simple interactive menus - No coding required
- 📦 6 ready-to-use preset templates - Common configurations already built
- 🔧 Full customization - Fine-tune every detail if you want
- ✅ Guaranteed valid output - Generated scripts use only real Picard variables and proper syntax
- 👀 Live preview - See examples before saving
- 💾 One-click export - Save and import directly into Picard
Creating Picard file naming scripts can be complex and time-consuming. This tool simplifies the process by letting you make simple selections and choices, then automatically generates the correct Picard scripting code for you.
✨ Save Time - Create complex scripts in minutes, not hours
🛡️ Error-Free - No syntax errors, all variables are real and validated
📚 Learn by Example - See how Picard scripts work by examining the output
🎨 Flexible - From simple to advanced configurations
🔄 Reusable - Save and share your configurations
The interactive main menu offers quick access to presets, custom building, help, and more.
Choose from 6 professionally designed presets, each with example output.
Compare all available presets at a glance with their formats and examples.
Step 1: Configure your folder structure preferences.
Step 2: Customize album folder details and metadata.
Step 3: Set up multi-disc album handling.
Step 4: Define filename format and track numbering.
Step 5: Configure special handling for Various Artists and soundtracks.
Preview the generated Picard script before saving.
Built-in help provides guidance on Picard scripting concepts.
- Python 3.8 or higher
- pip (Python package installer)
- Git (optional, for cloning)
-
Clone the repository
git clone https://github.com/WB2024/WBs-Picard-Filenaming-Script-Generator.git cd WBs-Picard-Filenaming-Script-GeneratorOr download the ZIP file from GitHub and extract it.
-
Install dependencies
pip install -r requirements.txt
This will install:
rich- For beautiful terminal outputquestionary- For interactive menus
-
Verify installation
python picard_script_generator.py
You should see the main menu appear.
Run the generator from the command line:
python picard_script_generator.pyThen follow the interactive prompts to build your script.
- Run
python picard_script_generator.py - Select "🚀 Quick Start - Use a preset template"
- Choose a preset that matches your needs
- Preview the example output
- Choose "✓ Generate this script"
- Save the script
- Import into Picard
- Run the generator
- Select "🚀 Quick Start - Use a preset template"
- Choose a starting preset
- Select "📝 Customize this preset"
- Modify settings interactively
- Preview and save
- Run the generator
- Select "🔧 Custom Build - Configure everything step by step"
- Answer the wizard questions:
- Folder structure (Artist? Album?)
- Album details (Year? Label? Catalog?)
- Multi-disc handling (Subfolders? Numbering?)
- Filename format (Track numbers? Featured artists?)
- Special handling (Various Artists? Soundtracks?)
- Preview and save
Here's what your files might look like with different presets:
Music/
├── The Beatles/
│ └── [1969] Abbey Road/
│ ├── 01. Come Together.mp3
│ ├── 02. Something.mp3
│ └── 03. Maxwell's Silver Hammer.mp3
└── Pink Floyd/
└── [1973] The Dark Side of the Moon/
├── 01. Speak to Me.mp3
└── 02. Breathe.mp3
Music/
├── B/
│ └── Beatles, The/
│ └── [1969] Abbey Road (Remaster)/
│ └── Disc 1/
│ ├── 01. Come Together.mp3
│ └── 02. Something.mp3
└── P/
└── Pink Floyd/
└── [1973] The Dark Side of the Moon/
└── Disc 1/
└── 01. Speak to Me.mp3
Music/
└── Various Artists/
└── [2020] Now That's What I Call Music 75/
├── 01. Artist A - Track Title.mp3
├── 02. Artist B - Track Title.mp3
└── 03. Artist C - Track Title.mp3
The generated script will be saved as my_picard_script.pts (or your custom name) in the same directory as the generator.
- Open MusicBrainz Picard
- Go to Options → Options → File Naming
- Click "Import" and select your generated
.ptsfile - Enable "Rename files when saving"
- Click OK
Your files will now be organized according to your custom naming scheme!
- Simple -
Artist/[Year] Album/01. Title - Organized -
A/Artist/[Year] Album/Disc 1/01. Title - Detailed -
A/Artist/[Year] Album [Label] {Cat#}/01. Title - Flat -
Artist/[Year] Album/1-01. Title(no disc subfolders) - Minimal -
Album/01. Artist - Title(no artist folders) - Audiophile -
B/Beatles, The/[Year] Album [FLAC]/01. Title
All generated scripts include:
- ✅ Valid Picard TaggerScript syntax
- ✅ Real MusicBrainz variables (verified, no made-up variables)
- ✅ Proper fallback values for missing metadata
- ✅ Windows/Linux/macOS compatible character handling
- ✅ Multi-disc album support
- ✅ Various Artists handling
- ✅ Featured artists detection
- ✅ Configurable track number padding
- ✅ Optional year, label, catalog number, format display
Import Error: Missing packages
pip install --upgrade rich questionaryScript doesn't start
- Ensure you're using Python 3.8 or higher:
python --version - Try using
python3instead ofpythonon some systems
Generated script has errors in Picard
- The generator only uses valid Picard syntax and real variables
- If issues occur, please report them on GitHub Issues
If you find this tool useful, consider supporting its development:
Your support helps maintain and improve this project. Thank you! ☕
Contributions are welcome! Feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Add new preset templates
MIT License