Lyrics not appearing in MediaMonkey (or not embedding at all?)

Hi all. I’m brand new to Beets, so forgive me if I’m overlooking something obvious.

Beets is successfully retrieving and printing lyrics from the command line. My understanding is that it should save them to the files’ tags. I assume that would mean the lyrics would show up when I pull them up through MediaMonkey, but that’s not happening.

Am I missing a step, or does “embedding lyrics into files’ metadata” mean something other than what I figured?

Here’s my config.yaml, if that helps:

directory: C:\Dropbox\MediaMonkey Library\Music
art_filename: albumart
plugins: bpd lyrics missing follow fetchart lastgenre
pluginpath: ~/beets/myplugins

original_date: yes

per_disc_numbering: no

ui:
    color: yes

import:
    copy: no
    write: yes
    log: beetslog.txt
    resume: yes
    bell: yes
    
paths:
    default: $albumartist/$year-$month-$day $album/$disc-$track $title
    singleton: Singletons/$artist - $title
    comp: $albumartist/$year-$month-$day $album/$disc-$track $title/
    albumtype:soundtrack: $albumartist/$year-$month-$day $album/$disc-$track $title/

lyrics:
    auto: yes

Beets is successfully retrieving and printing lyrics from the command line.

Not sure what you mean by this. What command do you run? beet lyrics mysong? This shouldn’t really output the lyrics.

My understanding is that it should save them to the files’ tags.

Correct.

I assume that would mean the lyrics would show up when I pull them up through MediaMonkey,

Provided that MediaMonkey can read the lyrics tag,

but that’s not happening.

Check if the lyrics are at all embedded by doing beet info -s mysong. If they are, the issue is on the MediaMonkey side.

When I talk about printing lyrics, I’m talking about using the -p option.

So when I run beet lyrics -p sturgill clockmaker, it returns the lyrics, but they don’t show up in MediaMonkey.

When I use the info plugin, though, I don’t see any lyrics there, either:

C:\>beet info -s sturgill clockmaker
        album: Sound & Fury
  albumartist: Sturgill Simpson
          art: True
       artist: Sturgill Simpson
     bitdepth: 0
      bitrate: 128000
     channels: 2
         date: 2019-09-27
          day: 27
         disc: 1
       format: MP3
        genre: Alternative
       genres: Alternative
        label: Elektra
       length: 234.48925170068028
        month: 9
original_date: 2019-01-01
original_year: 2019
rg_album_gain: -9.41
rg_track_gain: -9.44
rg_track_peak: 0.999969
   samplerate: 44100
        title: Best Clockmaker On Mars
        track: 6
         year: 2019

So it sounds like the lyrics aren’t getting embedded? What can I do about that?

Interesting. This suggests that the lyrics are in the database but not in the tags. I would think that the lyrics don’t get embedded because you don’t have import.write on, but you do, so I have no answer. Maybe try force-fetching them.

Hello! I’d also recommend beet write, and perhaps looking at the verbose log to see if there are any interesting messages about updating the tags.

So beet write worked and embeded the lyrics, but I’m hoping to avoid that option, as I’m trying to grab lyrics and genres for several thousand files without altering any of the other metadata. (It’s not possible to beet write one tag and skip the others, is it?)

Here’s what I get with the verbose log:

C:\>beet -vv lyrics sturgill retrograde
user configuration: C:\Users\bdb484\AppData\Roaming\beets\config.yaml
data directory: C:\Users\bdb484\AppData\Roaming\beets
plugin paths: C:\Users\bdb484\beets\myplugins
Sending event: pluginload
lyrics: Disabling google source: no API key configured.
library database: C:\Users\bdb484\AppData\Roaming\beets\library.db
library directory: C:\Dropbox\MediaMonkey Library\Music
Sending event: library_opened
lyrics: lyrics already present: Sturgill Simpson - Sound & Fury - Mercury In Retrograde
Sending event: cli_exit

Is there anything unusual happening there?

Sure; I think the important signal this this:

Here’s how the plugin’s logic works. For every track, it sees if there are already lyrics. If so, it stops immediately—unless you have the plugin in -f (force) mode. Otherwise, it fetches lyrics and (if import.write is enabled) writes the resulting tags to the files. So the fact that the track already has lyrics is preventing it from (a) fetching new lyrics and (b) more relevantly, writing the tags to the file.

Can it be that @bdb484 grabbed the lyrics when he had write: no?

1 Like

I don’t think I was ever set to write: no but it’s definitely possible.

I ran lyrics again in force mode, and that moved everything into the tags as expected.

But the lyrics still didn’t show up in MediaMonkey at first. I thought that playing or editing the file in MMW would cause the updates to appear in that database, but they didn’t. For anyone else who runs into that problem, the solution was to add/rescan the updated files. Once I did that, everything worked like a charm.

Thanks, all!