musicmeta tags audio files in songs/, moves finished files to meta-enriched/, and can add lyrics automatically.
songs/: input filesmeta-enriched/: successful outputlyrics/: generated lyric cache and missing-lyrics reports
git clone https://github.com/chaoticsponge/musicmeta
cd musicmeta
python3 -m pip install -r requirements.txt
brew install ffmpegPut your audio files in songs/, then run:
python3 metadata_update.py
python3 add_lyrics.pyFiles that are tagged successfully are moved to meta-enriched/. Files that fail stay in songs/ so you can fix the names and try again.
.opus, .m4a, .mp3, .flac, .ogg
Lyrics are fetched automatically and embedded into the file.
- MP3: ID3
USLTandSYLT - M4A/AAC: Apple
©lyr - Cached sidecar lyrics are written to
lyrics/
Already-tagged lyrics are skipped by default. Use --force or --refresh to reprocess them.
Fast run on a typical Mac:
python3 add_lyrics.py --jobs 4Skip cover art:
python3 metadata_update.py --no-coverMove output somewhere else:
python3 metadata_update.py --output /path/to/outputVerify the library:
python3 misc/metadata_test.py --verify
python3 misc/metadata_test.py --verify --strict-v4For best results, keep filenames close to Title_Artist.ext. The updater will do some cleanup, but clearer names produce better MusicBrainz matches.