Language tag - Title language or Lyrical language?

MusicBrainz makes a distinction between a release’s

  • title language, and its
  • lyrical language

See: https://musicbrainz.org/doc/Release

This is probably because they can differ, and I recently found out that it happens more often than I thought.

I believe beets currently fetches the release’s title language as opposed to the work’s lyrical language, although the latter would be more useful – I like to classify my music by lyrical language first, then by genre; the title language almost never matters.

In other words, I would like to avoid having beet move non-English songs in the English directory based on their English title, and have it refer to the work’s lyrical language instead.

Is this tag already implemented in beets? If not, where can I implement it myself?

Not currently implemented, no. I’m glad you’re interested in trying to add it! The place where we pull stuff out of the MB web service is in mb.py:

For example, here’s where we get the current language field:

This is actually an ever-going question on MusicBrainz. I’m also an editor there and mainly use Picard for tagging.

There is the release’s (album’s) language and script, which denotes the language and script the titles are written in on the cover/booklet.

Then there is the language field per track that denotes the language sung in the song (i.e., lyrics), an ISO-639-3 terminological 3-letter code (i.e., “deu” for German). These codes have been extended by the four special codes [mis], [mul], [und], [zxx] to be used for uncoded language, multiple languages, undetermined and instrumental.

The latter are usually coded in the work, and (sadly) often not available in MusicBrainz. These would go into the “item” (i.e., track) in beets and could be multivalue fields (i.e. separate tags multiple times in Ogg Vorbis comments and ID3v2.4, or separated by the selected separation character(s) in ID3v2.3 (i.e. “deu; eng”, “deu/eng”, “deu,eng”, “deu(NUL)eng”, etc. for a song that contains both German and English lyrics—using “mul” is sometimes not wanted).

If they aren’t available (yet) in MusicBrainz, I usually tag these manually when tagging a new album, because I sometimes need search functionality like “1990s songs sung in Swedish from a female-fronted Swedish hard rock group”.

So yes, it’d be great if beets would support the (lyrics) language(s) per track!

I advise not to blindly overwrite existing language tags from the MusicBrainz data—this could easily destroy collections like mine (almost 150,000 tracks, about 80-85% language-tagged, where MusicBrainz would only deliver about 10-15% of the language tags).

2 Likes

@adrian: Should this be in MediaFile? I could probably come up with a PR adding the track (=lyrics) language tags.

EDIT: Oops, already in there, it seems. :grin:

1 Like