Request: Have Plex use ID3-embedded lyrics automatically (alternatively: when reading files with ID3-embedded lyrics, save them automatically to an external lyrics file)

Currently, as of March 2020, Plex offers two options for lyrics:

The first link will also warn:

Note : Lyrics embedded in track metadata (such as ID3 tags) are not currently supported.

This request is to get Plex to automatically read the ID3 tags that contain embedded lyrics (either the unsynced version or the synced one — or both) as soon as a new album or track is uploaded/imported/scanned/etc. Because of backwards-compatibility, this may actually require Plex to create the .txt or .lrc files automatically — and then make sure that these are actually being read.

Note that the above task is trivial if you have access to a *nix server with bash and a moderately recent version of ffmpeg, e.g.:

for f in *.mp3 ;
do
  if [ "${f##*\.}" == "mp3" ] ; 
  then
    ffprobe -loglevel error -show_entries format_tags=lyrics-eng -of default=noprint_wrappers=1:nokey=1 "${f}" > "${f%\.*}".txt ;
  fi ;
done

Caveat: this code is just meant as a proof-of-concept; it would require changes to deal with other file extensions such as AAC, etc. Also, allegedly, since at least some of the Plex code is written in Python, it would allow Plex to possibly use the free and open-source ffmpeg-python library and run a variant of the above code, inside the app itself, without the need for requiring a bash shell to be installed (which would be the case of a Windows-based installation of Plex).

Last but not least, the current options to figure out how lyrics are presented are confusing at best; while LyricFind is available for Plex Pass users only, there seems to be some inconsistency in how Plex deals with lyrics missing on LyricFind but available as a local .txt/.lrc file. There should be some more options allowing the user to prioritise their preferences, e.g.

  1. Check if LyricFind is available (in the case of a Plex Pass user);
  2. then: check if LyricFind has lyrics for this track;
  3. if not, check if any lyrics are embedded in the file for this track;
  4. if not, check if there is an external file with exactly the same name of the track and which contains lyrics;
  5. if none of the above, then don’t display lyrics.

… and, of course, allow users to change those priorities at will (some might prefer LyricFind over external files; others might wish LyricFind to be a ‘fallback’ option when no local files/ID3-embedded lyrics are available; also, some might prefer synced over unsynced lyrics, or vice-versa; and do not forget language preferences!)

In other words: Plex, do for lyrics what you’ve done for subtitles, which was another of your weakest points!

There is already a feature request for embedded lyrics.

2 Likes