After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 463978 - Lyrics reading embedded tags
Lyrics reading embedded tags
Status: RESOLVED OBSOLETE
Product: rhythmbox
Classification: Other
Component: Plugins (other)
0.10.x
Other All
: Normal enhancement
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
: 769180 (view as bug list)
Depends on: 784634
Blocks:
 
 
Reported: 2007-08-06 12:04 UTC by Anton Vorobyov
Modified: 2018-05-24 12:45 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
display lyrics embedded in ogg/vorbis files (1.39 KB, patch)
2017-07-06 19:18 UTC, Christian Weiske
none Details | Review
display lyrics embedded in ogg/vorbis files #2 (1.59 KB, patch)
2017-07-06 20:17 UTC, Christian Weiske
none Details | Review
Fetch lyrics from tags, async (3.61 KB, patch)
2017-07-09 11:43 UTC, Christian Weiske
committed Details | Review

Description Anton Vorobyov 2007-08-06 12:04:40 UTC
I'm using Debian Lenny.
I have huge library with coverart and lyrics embedded into files (mp3 in my case), but hadn't noticed RB's ability to read both (only fetch them from internet using plugins, which hadn't had any options, configure button was dimmed).
1st is already requested as option for cover plugin (#345975), and this one will request second. Sorry, i'm not sure if lyrics getting is supported by underlaying libs and hadn't found similiar request, so i post this one.
Comment 1 Peter 2010-01-25 23:37:01 UTC
Adding self to CC list. I would be particularly interested for mp3 files with "lyrics" with mixed character sets (e.g. language course podcasts with a transcript in both languages stored in the lyrics).
Comment 2 Christian Weiske 2017-07-06 10:04:54 UTC
*** Bug 769180 has been marked as a duplicate of this bug. ***
Comment 3 Christian Weiske 2017-07-06 10:07:41 UTC
One would have to use `db.entry_request_extra_metadata` to fetch the lyrics in the plugin (LyricGrabber), and create a new metadata signal handler that reads the lyrics from the file itself.
Comment 4 Christian Weiske 2017-07-06 19:18:19 UTC
Created attachment 355042 [details] [review]
display lyrics embedded in ogg/vorbis files

The patch supports reading embedded lyrics from ogg/vorbis files using the LYRICS tag.

MP3 support is missing because gst discoverer does not return those data.
Comment 5 Christian Weiske 2017-07-06 20:17:51 UTC
Created attachment 355046 [details] [review]
display lyrics embedded in ogg/vorbis files #2
Comment 6 Jonathan Matthew 2017-07-08 10:20:07 UTC
Review of attachment 355046 [details] [review]:

are you working on making gstreamer support the mp3 lyrics tags too?

::: plugins/lyrics/lyrics.py
@@ +155,3 @@
+		print("discovering %s" % location)
+		self.discoverer = GstPbutils.Discoverer(timeout=Gst.SECOND*1)
+		info = self.discoverer.discover_uri(location)

This needs to call the discoverer asynchronously.  Doing metadata extraction synchronously on the main thread will block everything else in the UI for as long as it takes, which could be seconds for files accessed via the network.

@@ +174,3 @@
 		self.callback = callback
+
+		text = self.lyric_from_tag()

I don't think this is happening at the right point in the search process.  It should happen after the lyrics cache is checked, and should respect the cache_only flag.
Comment 7 Christian Weiske 2017-07-08 10:35:38 UTC
> are you working on making gstreamer support the mp3 lyrics tags too?

No, my C is too rusty.


> It should happen after the lyrics cache is checked

For local files, using the cache only fills the harddisk with duplicate data.

> and should respect the cache_only flag.

I thought that cache_only is to disable network access to third-party sites.
Extracting data from the file itself does not fall under that category.
Comment 8 Jonathan Matthew 2017-07-09 10:20:43 UTC
(In reply to Christian Weiske from comment #7)
> > are you working on making gstreamer support the mp3 lyrics tags too?
> 
> No, my C is too rusty.
> 
> 
> > It should happen after the lyrics cache is checked
> 
> For local files, using the cache only fills the harddisk with duplicate data.

We do the same for album art.  It's an insignificant amount of space compared to the audio files the information is extracted from.  I don't see a reason that this source of lyrics should behave any differently to the rest of them.

> > and should respect the cache_only flag.
> 
> I thought that cache_only is to disable network access to third-party sites.
> Extracting data from the file itself does not fall under that category.

I think the intention was to avoid potentially slow actions for some lookups, and I would consider metadata extraction to be potentially slow.  It's not actually used for anything, but if we're going to keep it there we might as well make it work properly.
Comment 9 Christian Weiske 2017-07-09 11:43:51 UTC
Created attachment 355205 [details] [review]
Fetch lyrics from tags, async

Patch updated. Tags are fetched async now.
Comment 10 Jonathan Matthew 2017-07-15 10:52:27 UTC
Review of attachment 355205 [details] [review]:

pushed as commit 1416e4c.
Comment 11 Jonathan Matthew 2017-07-15 10:53:18 UTC
I don't think we can really consider this complete until it works with id3 tags, so I'm leaving the bug open.
Comment 12 Christian Weiske 2017-07-17 18:56:38 UTC
Thanks for merging my patch.
Comment 13 GNOME Infrastructure Team 2018-05-24 12:45:05 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/414.