
Headphones
Automated music downloader with artist monitoring
Headphones - Automated Music Downloader
Headphones is an automated music downloader written in Python that monitors your favorite artists and automatically downloads new releases. It supports multiple download clients including SABnzbd, NZBget, Transmission, µTorrent, Deluge, and Blackhole.
What is Headphones?
Headphones is a music collection manager that:
🎵 Artist Monitoring
Track your favorite artists for new releases automatically
⬇️ Automatic Downloads
Automatically grab new albums when available
🔌 Multi-Client Support
Works with NZB and torrent downloaders
🎯 Quality Control
Specify preferred quality and audio formats
📁 Smart Organization
Automatically organize and rename files
🎼 MusicBrainz Integration
Accurate metadata from MusicBrainz database
🖼️ Album Art
Automatically download and embed album artwork
🔄 Quality Upgrades
Replace low-quality files with better versions
Python 3.11 Virtual Environment
QuickBox Pro installs Headphones in an isolated Python 3.11 virtual environment with all dependencies managed separately for maximum stability and security.
Supported Integrations
Torrent Clients
Music Sources
Audio Formats
Installation
Install Headphones
Install Headphones for a specific user:
qb install headphones -u usernameDownload Client Required
Headphones requires a download client to function. Install SABnzbd, NZBget (for Usenet), or Transmission, Deluge (for torrents) before installing Headphones.
Installation Process
During installation, QuickBox Pro will:
- Create Python 3.11 virtual environment - Isolated dependency management
- Install Node.js 18 - Required for certain functionality
- Clone Headphones repository - Latest stable version from GitHub
- Configure systemd service - Auto-start on boot
- Setup nginx reverse proxy - Secure web access
- Initialize configuration - Default settings and database
Default port: 8004
CLI Commands
Basic Operations
| Command | Description |
|---|---|
qb install headphones -u username | Install Headphones for a user |
qb reinstall headphones -u username | Reinstall Headphones (preserves config) |
qb update headphones -u username | Update to latest version |
qb remove headphones -u username | Remove Headphones completely |
Usage Examples
Install Headphones:
qb install headphones -u myuserUpdate Headphones:
qb update headphones -u myuserReinstall (fix corrupted installation):
qb reinstall headphones -u myuserRemove Headphones and clean up:
qb remove headphones -u myuserEnhanced Features
Headphones on QuickBox Pro includes several advanced features:
🐍 Python 3.11 Virtual Environment
Isolated Python environment with system site packages for optimal compatibility
🔄 Automatic Updates
Simple one-command updates with automatic dependency management
🌐 Nginx Reverse Proxy
Secure web access with SSL support and user-specific URL paths
📦 Systemd Service
Reliable service management with auto-start on boot and proper process handling
💾 Automatic Backups
Configuration and database backups on install/reinstall operations
⚡ Node.js 18 Support
Modern Node.js runtime for enhanced functionality and performance
Service Management
Headphones runs as a systemd service for reliable operation:
Check Service Status
systemctl status headphones@usernameRestart Service
systemctl restart headphones@usernameView Live Logs
journalctl -u headphones@username -fManual Service Control
Start Headphones:
systemctl start headphones@usernameStop Headphones:
systemctl stop headphones@usernameService Configuration
The Headphones service runs as your user with the working directory at /home/username/.config/Headphones for proper permissions and data isolation.
Configuration
Initial Setup
After installation, access the Headphones web interface:
https://your-server-ip/username/headphonesFirst-Time Configuration
-
Download Client Setup
- Navigate to Settings → Download Settings
- Select your download client (SABnzbd, NZBget, Transmission, etc.)
- Enter connection details (host, port, API key)
-
Music Folder Configuration
- Go to Settings → Quality & Post Processing
- Set your Destination Directory for downloaded music
- Configure Folder Format:
$Artist/$Album [$Year] - Set File Format:
$Track $Artist - $Album [$Year] - $Title
-
Search Providers
- Navigate to Settings → Search Providers
- Configure NZB indexers or torrent trackers
- Add API keys for your providers
-
Quality Settings
- Choose preferred quality (MP3, FLAC, etc.)
- Set preferred bitrate (e.g., 320kbps for MP3)
- Enable lossless if desired
Configuration Files
Adding Artists
Manual Artist Addition
- Click Add Artist in the web interface
- Search for artist by name
- Select the correct artist from MusicBrainz
- Choose albums to monitor
- Click Add Artist
Import Existing Library
- Navigate to Manage → Import
- Select your music directory
- Headphones will scan and match existing artists
- Review and confirm imports
Want List
- Headphones monitors all added artists
- Automatically searches for new releases
- Downloads based on your quality preferences
- Organizes and renames files automatically
MusicBrainz Database
Headphones uses the MusicBrainz database for accurate artist and album information. The default mirror is musicbrainz.org but you can configure alternative mirrors in settings.
Advanced Features
Automatic Post-Processing
File Renaming:
Original: 01-track_name.mp3
Renamed: 01 Artist Name - Album Name [2024] - Track Title.mp3Folder Organization:
/music/Artist Name/Album Name [2024]/Album Art Embedding:
- Automatically downloads album artwork
- Embeds art into audio files
- Saves
folder.jpgin album directory
Quality Management
Preferred Quality Options:
- Any quality (fastest downloads)
- Lossless only (FLAC)
- Specific bitrates (320kbps, V0, etc.)
- Quality upgrade automation
Search Interval
Configure how often Headphones searches for new releases:
- Default: 1440 minutes (24 hours)
- Aggressive: 360 minutes (6 hours)
- Conservative: 2880 minutes (48 hours)
Filters and Rules
Required Words:
- Force specific keywords in release names
- Example:
FLAC,WEB,Vinyl
Ignored Words:
- Exclude unwanted releases
- Example:
REPACK,PROPER,LIMITED
Official Releases Only:
- Skip bootlegs and unofficial releases
- Uses MusicBrainz official release flag
Accessing Headphones
After installation, access the web interface at:
https://your-server-ip/username/headphonesOr via your QuickBox Pro dashboard navigation.
Web Interface Sections
- Home - Overview of wanted albums
- Manage - Your artist library
- Upcoming - New releases from monitored artists
- History - Download history
- Settings - Configuration options
- Logs - Application logs and debugging
Troubleshooting
Common Issues
Headphones not starting:
# Check service status
systemctl status headphones@username
# View logs
journalctl -u headphones@username -n 50
# Check Python environment
ls -la /opt/username/lib/python/Headphones/.venv/
# Reinstall if needed
qb reinstall headphones -u usernameDownloads not working:
# Verify download client is running
systemctl status sabnzbd@username # or transmission@username
# Check download client settings in Headphones
# Settings → Download Settings
# Test connection to download client
# Headphones will show connection statusArtists not being monitored:
# Check search providers are configured
# Settings → Search Providers
# Verify API keys are valid
# Check search interval isn't too long
# Settings → General → Search Interval
# Force a search
# Manage → Select artist → Force SearchPython version mismatch after update:
# Update will automatically recreate venv if needed
qb update headphones -u username
# Or reinstall to force rebuild
qb reinstall headphones -u usernamePermission errors:
# Fix permissions
chown -R username:username /home/username/.config/Headphones
chown -R username:username /opt/username/Headphones
# Or reinstall
qb reinstall headphones -u usernameIntegration with Download Clients
SABnzbd Integration
- Get SABnzbd API key from SABnzbd web interface
- In Headphones: Settings → Download Settings
- Select SABnzbd as download method
- Enter:
- Host:
localhost - Port:
8085(or your SABnzbd port) - API Key: Your SABnzbd API key
- Host:
- Test connection
Transmission Integration
- In Headphones: Settings → Download Settings
- Select Transmission as download method
- Enter:
- Host:
localhost - Port:
9091 - Username/Password: Your Transmission credentials
- Host:
- Test connection
NZBget Integration
- Get NZBget username/password
- In Headphones: Settings → Download Settings
- Select NZBget as download method
- Enter:
- Host:
localhost - Port:
6789 - Username:
nzbget - Password: Your NZBget password
- Host:
- Test connection
Download Client Configuration
Ensure your download client is properly configured with a completed download directory that Headphones can access for post-processing.
Use Cases
Automated Music Collection
Monitor your favorite artists and automatically download new releases:
- New Album Releases - Get albums as soon as they’re available
- Back Catalog - Automatically fill gaps in your collection
- Quality Upgrades - Replace low-quality files with better versions
Smart Organization
Keep your music library organized:
- Consistent Naming - All files follow the same naming pattern
- Proper Metadata - Accurate artist, album, and track information
- Album Artwork - Beautiful album art for all releases
Quality Control
Maintain a high-quality music library:
- Lossless Priority - Prefer FLAC over lossy formats
- Bitrate Standards - Enforce minimum quality requirements
- Format Conversion - Optional transcoding to preferred formats
Tips & Best Practices
Do
- Configure multiple search providers for better availability
- Set up daily checks for active artists you follow
- Use consistent folder structure for your music library
- Enable lossless (FLAC) for archival quality collections
- Review wanted albums weekly and check for failed downloads
- Test download client connections after configuration changes
Don't
- Don't set search intervals too aggressive (server load)
- Don't mix lossy and lossless in the same library without organization
- Don't skip configuring quality preferences before adding artists
- Don't ignore failed downloads - check provider API keys
- Don't run multiple instances pointing to same music directory
- Don't forget to configure post-processing paths correctly
Optimize Search Settings
Configure multiple search providers:
- Use both NZB indexers and torrent trackers
- More sources = better availability
- Redundancy for hard-to-find releases
Adjust search interval:
- Daily checks for active artists
- Weekly for back catalog searches
- Balance between timely downloads and server load
Library Management
Use consistent folder structure:
Regular maintenance:
- Review wanted albums weekly
- Check for failed downloads
- Update search providers as needed
Quality Settings
For archival quality:
- Enable lossless only (FLAC)
- Set minimum bitrate to 1000kbps
- Enable album art embedding
For balanced storage:
- Prefer 320kbps MP3 or V0
- Allow FLAC with transcoding
- Set reasonable quality buffers
Additional Resources
Related Applications
Torrent Clients
Music Management
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.