Mopidy-Local / Question about track metadata

Hey community!

I have a small question regarding music-file metadata that I would like to get some insight on. My programming skills are not quite there yet to try to understand the source-code myself…

I have Mopidy running on an Raspberry Pi, and have a bunch of local music files on my hard-drive that I’ve gathered over the years. Ever since I discovered ‘beets’ music library organizer I’ve used it extensively to get the id3-tags right and files sorted nicely. Currently, I’m quite happy with how everything is neatly in place, and more importantly, automated.

I’ve been wondering how I could have the “full” id3-information available through Mopidy, for example the Label/Publisher information, since I use this extensively to navigate through my music collection.

Am I correct in assuming that in it’s current implementation, the label/publisher field doesn’t get through into the Mopidy local music database? At least querying from the web-frontend (Iris) doesn’t seem to give results based on Publisher/Label information.

I also tried to get the metadata through the Mopidy-Beets interface via setting up a separate beets webserver (beets-web) and passing on the info that way, but to no avail. This seems to be an issue with beets-web and not mopidy-beets though ( the label-info is not accessible through the web-interface either ).

Would anyone with more experience regarding Mopidy inner workings wanna shed some light / insights / ideas on the topic?

Here’s an example how the full metadata might look like from different perspectives:

ffprobe [file]

Metadata:
title : Smile And Distrust
artist : tot
track : 6/11
album : Kommando Kompilation
disc : 0/1
date : 2017
TBPM : 0
compilation : 0
TDOR : 0000
lyrics-XXX :
album_artist : Various Artists
publisher : AMOK Tapes
CATALOGNUMBER : AMOK010
MusicBrainz Artist Id: 57950
MusicBrainz Album Id: 10412875
MusicBrainz Album Type: Compilation
MusicBrainz Album Artist Id: 5811204
comment : Visit http://amoktapes.bandcamp.com
MusicBrainz Album Release Country: Germany
Duration: 00:05:24.21, start: 0.025056, bitrate: 286 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 283 kb/s
Metadata:
encoder : LAME3.99r
Side data:
replaygain: track gain - -3.700000, track peak - unknown, album gain - unknown, album peak - unknown,
Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 700x700 [SAR 72:72 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
Metadata:
title : cover
comment : Cover (front)

python3 /usr/lib/python3/dist-packages/mopidy/audio/scan.py [file]

uri HIDDEN
mime None
duration 324205
playable True
seekable True
tags
title [‘Smile And Distrust’]
artist [‘tot’]
track-count [11]
track-number [6]
album [‘Kommando Kompilation’]
album-disc-count [1]
datetime [‘2017’]
beats-per-minute [0.0]
private-id3v2-frame [b’TCMP\x00\x00\x00\x02\x00\x00\x030’, b’TDOR\x00\x00\… album-artist [‘Various Artists’]
publisher [‘AMOK Tapes’]
musicbrainz-artistid [‘57950’]
musicbrainz-albumid [‘10412875’]
musicbrainz-albumartistid [‘5811204’]
comment [‘Visit http://amoktapes.bandcamp.com’]
image [b’\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00H\x… container-format [‘ID3 tag’]
has-crc [False]
channel-mode [‘joint-stereo’]
audio-codec [‘MPEG-1 Layer 3 (MP3)’]

Thank you in advance for any input!

As you’ve helpfully shown, the publisher field is discovered by our (GStreamer’s) metadata scanner. But you will see that Mopidy’s Track model does not support it. You could submit a Mopidy Core PR to add it but then you’d also need to modify whatever backend(s) and client(s) you are using, to make use of it.

Hey @kingosticks!

Thanks for getting back on the topic and for the information!

I see. I’m not quite a programmer myself, so I’m sceptical that I would be able to ‘pull off’ a PR modifying the Mopidy core… This would be a dream come true obviously, but not quite realistic yet I’m afraid.

If there’s no one else in support of this feature to be added, or some other feature that would benefit from this and thus suitable developers found, it sounds like at the moment there’s not much that I can do besides accepting the fact!

I’ll see if I can come up with some sort of a work-around that doesn’t require me to learn to become a Python Developer quite yet!