Skip to Content
Headphones

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
Note

QuickBox Pro installs Headphones in an isolated Python 3.11 virtual environment with all dependencies managed separately for maximum stability and security.


Supported Integrations

Usenet Clients

3
SABnzbdNZBgetBlackhole

Torrent Clients

4

Music Sources

4
NZB IndexersTorrent TrackersMusicBrainzLast.fm

Audio Formats

4
FLAC (Lossless)MP3 (320kbps)MP3 (V0 VBR)AAC/M4A

Installation

Install from the Dashboard

Open App Dashboard → Package Management (/dashboard?mode=packages), find Headphones in the catalog (browse the Automation category or search), and click Install. The dashboard streams the install log live and Headphones appears in your Application Control panel when it finishes. Reinstall and Remove are in the same Package Management panel. To update, use the amber Update badge on the Headphones row in the App Dashboard.

What you see is gated by your account: admins manage any user’s apps; regular users manage their own. See App Management for the full flow.

The installer sets up an isolated Python 3.11 virtual environment, clones the latest Headphones release, registers a systemd service for automatic startup, and configures the web UI behind your nginx reverse proxy.

Download Client Required
Important

Headphones requires a download client to function. Install SABnzbd, NZBget (for Usenet), or Transmission, Deluge (for torrents) before installing Headphones.

Install from the CLI (automation)

The CLI runs the same scripts as the Dashboard and is suited to automation and scripting:

bash
qb install headphones -u username
qb reinstall headphones -u username
qb update headphones -u username
qb remove headphones -u username

Full flag reference: CLI Reference.


Enhanced 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

bash
systemctl status headphones@username

Restart Service

bash
systemctl restart headphones@username

View Live Logs

bash
journalctl -u headphones@username -f

Manual Service Control

Start Headphones:

bash
systemctl start headphones@username

Stop Headphones:

bash
systemctl stop headphones@username
Service Configuration
Tip

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/headphones 

First-Time Configuration

  1. Download Client Setup

    • Navigate to Settings → Download Settings
    • Select your download client (SABnzbd, NZBget, Transmission, etc.)
    • Enter connection details (host, port, API key)
  2. 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
  3. Search Providers

    • Navigate to Settings → Search Providers
    • Configure NZB indexers or torrent trackers
    • Add API keys for your providers
  4. Quality Settings

    • Choose preferred quality (MP3, FLAC, etc.)
    • Set preferred bitrate (e.g., 320kbps for MP3)
    • Enable lossless if desired

Configuration Files

Headphones Configuration
Path
Description
/home/username
.config/
Headphones/
config.ini
Main configuration file
headphones.db
SQLite database
logs/
Application logs
System Configuration
Path
Description
/etc
default/
.username.headphones
Service defaults
systemd/
system/
headphones@username.service
Systemd service file
nginx/
software/
username.headphones.conf
Nginx reverse proxy config

Adding Artists

Manual Artist Addition

  1. Click Add Artist in the web interface
  2. Search for artist by name
  3. Select the correct artist from MusicBrainz
  4. Choose albums to monitor
  5. Click Add Artist

Import Existing Library

  1. Navigate to Manage → Import
  2. Select your music directory
  3. Headphones will scan and match existing artists
  4. 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
Note

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:

plaintext
Original: 01-track_name.mp3
Renamed: 01 Artist Name - Album Name [2024] - Track Title.mp3

Folder Organization:

/music/Artist Name/Album Name [2024]/

Album Art Embedding:

  • Automatically downloads album artwork
  • Embeds art into audio files
  • Saves folder.jpg in 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/headphones 

Or 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:

bash
# 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 username

Downloads not working:

bash
# 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 status

Artists not being monitored:

bash
# 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 Search

Python version mismatch after update:

bash
# Update will automatically recreate venv if needed
qb update headphones -u username
 
# Or reinstall to force rebuild
qb reinstall headphones -u username

Permission errors:

bash
# Fix permissions
chown -R username:username /home/username/.config/Headphones
chown -R username:username /opt/username/Headphones
 
# Or reinstall
qb reinstall headphones -u username

Integration with Download Clients

SABnzbd Integration

  1. Get SABnzbd API key from SABnzbd web interface
  2. In Headphones: Settings → Download Settings
  3. Select SABnzbd as download method
  4. Enter:
    • Host: localhost
    • Port: 8085 (or your SABnzbd port)
    • API Key: Your SABnzbd API key
  5. Test connection

Transmission Integration

  1. In Headphones: Settings → Download Settings
  2. Select Transmission as download method
  3. Enter:
    • Host: localhost
    • Port: 9091
    • Username/Password: Your Transmission credentials
  4. Test connection

NZBget Integration

  1. Get NZBget username/password
  2. In Headphones: Settings → Download Settings
  3. Select NZBget as download method
  4. Enter:
    • Host: localhost
    • Port: 6789
    • Username: nzbget
    • Password: Your NZBget password
  5. Test connection
Download Client Configuration
Important

Ensure your download client is properly configured with a completed download directory that Headphones can access for post-processing.


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

Additional Resources


Usenet Downloaders

2

Music Management

1

Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

  • Dedicated Support
  • Feature Previews
  • Community Configs
  • Active Discussions
Join Discord Server
Last updated on