MP3: Remove Lyrics3 tags

Removing the (nowadays more or less obsolete) Lyrics3 tags from MP3 files still seems an issue in 2019.

Although they can be cleanly removed using Mp3tag by setting your tagging options correctly, removing all tags and immediately doing an Undo, this can be a little scary for some, especially if you have real large libraries (mine is about 150,000 tracks in total). (Personally, I never had problems with this method, kudos to Florian for a great software!)

This is why I wrote a little Python tool to remove Lyrics3 and Lyrics3v2 tags from MP3 files, called rmlyrics3. It also has a "dry-run" option so you can check before actually modifying your valuable files.

The little tool is free and open source software and available on GitHub:

For those interested, there’s also some more technical documentation there.

@LyricsLover asked if an executable (.exe) Windows version could be made, for Windows systems that have no preinstalled Python.

The wish has been granted! :slight_smile:
In the repository’s dist/ folder, there is now a rmlyrics3.exe executable that should run on Windows 7 and above.

1 Like

Thank you very much for the windows version @Moonbase.
Just my 2 cents:
Could you add some statistics at the end of the execution? Something like "123 files checked, 0 lyricsv3 removed, 2 files corrupt" or something similar? Maybe as additional option?
(This version doesn't show actually if the tool has nothing to do or just not found any file)

You’re welcome.

  1. You might want to update the exe, I just added a shell glob simulation for Windows, so things like "*.mp3" without the "-r" recursive option work.

  2. Hmmmm, I wouldn’t really like to, the Linux way would be to simply "rmlyrics3 something something_else | wc -l" to get the number of files changed. Typically, Linux also outputs nothing if nothing happened. Let me think about it … maybe an option …

In any case (as mentioned on the page), you should write rmlyrics3’s output to a text file, so you could check which files were modified in case something goes wrong … also easier to look for the "WARNING: " messages for corrupt files in a text file. I did mention "no guarantees" and "have a backup", right? :wink:

1 Like

Well, I’m not unreasonable … new -s (--stats) option added.
Happy testing! :slight_smile:

Much better, thanks @Moonbase for the super fast addition!

There seems to be something broken with -r (recursive).
Neither rmlyrics3.exe -r -s *.mp3 nor rmlyrics3.exe -s *.mp3 scans all current and all subdirs on Windows 10.
If I use some nested directories:
C:\Temp\Dir1\Subdir1\subsubDir1\subsubsubDir1\1.mp3
or
C:\Temp\A\A R I Z O N A\ASYLUM\2019\01 - Let Me Know.mp3
and start rmlyrics3.exe from C:\Temp this subdirectories will not be scanned (what your new -s confirms). Only the *.mp3 on C:\Temp will be analyzed.

But wait....
If I use the unusual window syntax:
rmlyrics3.exe -r -s *.mp3 .
(with a space and dot at the end of the command to say "actual directory", it seems to work and returns 220 files checked, 0 files modified, 0 files are corrupt

That’s intentional. You’d typically specify one (or more) single directories like

rmlyrics3 "C:\Temp\Newfiiles\*.mp3"

(which would only scan exactly the specified files in this directory and not in any subdirectories)

–or–
something like "all my new files (recursively)"

rmlyrics3 -r "C:\Temp\Newfiles" "C:\Folder with blanks\More MP3s"

(which would scan C:\Temp and the other one and all their subdirectories for MP3 files).

That said, a single dot . denotes "this directory" (the one I’m in) and would work like *.mp3.

"path" arguments in general follow the Linux shell globbing rules.

If you said (without quotation marks):

rmlyrics3 C:\Temp\A\A R I Z O N A\ASYLUM\2019\01 - Let Me Know.mp3

the program would actually try to scan the files

C:\Temp\A\A
R
I
Z
O
N
A\ASYLUM\2019\01
-
Let
Me
Know.mp3

You need quotation marks around the file name(s) in this case (as is normal in Windows for other software, too):

rmlyrics3 "C:\Temp\A\A R I Z O N A\ASYLUM\2019\01 - Let Me Know.mp3"

Just remember it doesn’t split file paths, so you’d specify folder paths just using the folder name (no "*.mp3" appended!). rmlyrics3 automatically scans for *.mp3 internally (case-insensitive, so *.MP3 is also okay on Windows).

In your first example above (scanning the current directory), you’d either use:

rmlyrics3 -r -s .

(scans this directory and all subfolders), or:

rmlyrics3 -s *.mp3

(scans all MP3s in this directory and no subfolders).

Good luck!

1 Like