To speed up my music library management, I started using the command line.
Among the alternatives there is eyeD3, an actively maintained, Python-driven command-line utility
Here are some suggestions and ready-made commands to start with eyeD3.
Installation
eyeD3 is available on most major package managers. On macOS, you can install it using Homebrew:
brew install eye-d3
Inspecting Tags
To view existing metadata, simply pass a file or folder wildcard to eyeD3:
# View tags for a single track
eyeD3 song.mp3
# View tags for all MP3s in the current folder
eyeD3 *.mp3
eyeD3 prints a clean breakdown containing artist info, album titles, track numbers, embedded images, and audio details (like bitrate and sample rate).
Updating Metadata (Album, Artist, Track Info)
You can edit individual files or apply changes across an entire directory in place.
Batch-Set Album and Artist Name
Apply album-wide tags across all .mp3 files in your working directory:
eyeD3 -A "Random Access Memories" -a "Daft Punk" -Y 2013 *.mp3
Set Specific Track Info
Update single-track metadata like title and track position:
eyeD3 -t "Get Lucky" -n 8 track08.mp3
I didn't even know how helpful can be to specify the track position!
Adding or Replacing Album Art
Embedding cover art (JPEG or PNG) directly into your files is simple with eyeD3.
Place your cover image in your album folder and run:
eyeD3 --add-image cover.png:FRONT_COVER *.mp3
Managing Existing Images
If you want to clear out old or low-resolution artwork before adding a new cover:
# Remove existing artwork frames
eyeD3 --remove-images *.mp3
# Embed the new front cover
eyeD3 --add-image cover.png:FRONT_COVER *.mp3
Stripping Tags Completely
If a set of files has corrupted or unwanted metadata, you can wipe all ID3 frames to start fresh:
eyeD3 --remove-all *.mp3
Note for Legacy id3v2 Users
If you are accustomed to the classic id3v2 command-line utility, you might have run into issues when attempting to embed album artwork, often seeing errors like:
()[, 0]: , 0 bytes
This occurs because the original id3v2 tool lacks proper handling for modern PNG/JPEG headers and binary APIC frames.
Transitioning from id3v2 to eyeD3 requires minimal adjustment to your workflow. Basic flags like -A (Album), -a (Artist), and -Y (Year) work identically, but eyeD3 provides a dedicated --add-image flag that safely writes image data without corrupting file headers.
Quick Syntax Reference
| Operation | Command |
|---|---|
| Inspect Files | eyeD3 *.mp3 |
| Set Album | eyeD3 -A "Album Name" *.mp3 |
| Set Artist | eyeD3 -a "Artist Name" *.mp3 |
| Set Year | eyeD3 -Y 2026 *.mp3 |
| Set Track Title | eyeD3 -t "Track Title" song.mp3 |
| Add Cover Art | eyeD3 --add-image cover.png:FRONT_COVER *.mp3 |
| Remove Images | eyeD3 --remove-images *.mp3 |
| Wipe All Tags | eyeD3 --remove-all *.mp3 |