rhythmbox lyrics WIP

revision fc92db845674d287eba23e41cd55ea61b5f2a008

raw

0-patch.diff

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
diff --git plugins/lyrics/lyrics.py plugins/lyrics/lyrics.py
index 13124b3..6bff657 100644
--- plugins/lyrics/lyrics.py
+++ plugins/lyrics/lyrics.py
@@ -32,6 +32,7 @@ import urllib.request
 import rb
 from gi.repository import Gtk, Gio, GObject, Peas
 from gi.repository import RB
+from gi.repository import Gst, GstPbutils
 
 import LyricsParse
 from LyricsConfigureDialog import LyricsConfigureDialog
@@ -146,6 +147,29 @@ class LyricGrabber(object):
        def search_lyrics(self, callback, cache_only=False):
                self.callback = callback
 
+               #location = self.entry.get_string(RB.RhythmDBPropType.MOUNTPOINT)
+               location = self.entry.get_playback_uri()
+               print("discovering %s" % location)
+               self.discoverer = GstPbutils.Discoverer(timeout=Gst.SECOND*1)
+               info = self.discoverer.discover_uri(location)
+               tags = info.get_tags()
+               print("abc")
+               if tags is not None:
+                       def fetags (list, tag):
+                               print("tag: %s" % tag)
+                       tags.foreach(fetags)
+                       (found, text) = tags.get_string_index('lyrics', 0)
+                       (found, text) = tags.get_string_index('extended-comment', 0)
+                       if found:
+                               print("found lyrics tag:\n%s" % text)
+                               self.callback(text)
+                               return
+                       else:
+                               print("no lyrics tag found")
+               else:
+                       print("no tags found")
+
+               print("abc")
                status = self.verify_lyric()
 
                if status:
 
raw

1-command.sh

1
 ./shell/rhythmbox --debug-match lyrics filename.ogg
raw

2-output.txt

(14:13:55) [0x1c7bb20] [LyricGrabber.search_lyrics] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:299: discovering file:///home/cweiske/Musik/neu/Britney%20Spears/Femme%20Fatale/Britney%20Spears%20-%20Femme%20Fatale%20-%2003%20-%20Inside%20Out.ogg
(14:13:55) [0x1c7bb20] [LyricGrabber.search_lyrics] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:303: abc
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: title
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: artist
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: album
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: datetime
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: track-number
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: track-count
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: genre
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: image
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: extended-comment
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: encoder
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: encoder-version
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: audio-codec
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: nominal-bitrate
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: bitrate
(14:13:55) [0x1c7bb20] [fetags] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:317: tag: container-format
(14:13:55) [0x1c7bb20] [LyricGrabber.search_lyrics] /home/cweiske/php/rhythmbox/rhythmbox/data/../plugins/lyrics/lyrics.py:311: found lyrics tag:
LYRICS=Said you're gonna be here in a minute
Sitting in the mirror getting pretty
Gotta look my best if we're gonna break up
Gotta look my best if we're gonna break up
raw

4-other.txt

$ gst-discoverer-1.0 file.ogg

History