
Wiki-Lyrics
Source (link to git-repo or to original if based on someone elses unmodified work):
Supported sites:
- Lyriki (www.lyriki.com)
- LyricWiki (www.lyricwiki.org)
- AZ Lyrics (www.azlyrics.com)
- Baidu MP3 (mp3.baidu.com)
- Dark Lyrics (www.darklyrics.com)
- Giitaayan (www.giitaayan.com)
- Jamendo (www.jamendo.com)
- Leos Lyrics (www.leoslyrics.com)
- Lyrc (lyrc.com.ar)
- Lyrics Download (www.lyricsdownload.com)
- Lyrics Mania (www.lyricsmania.com)
- Not Popular (www.notpopular.com)
- Seek Lyrics (www.seeklyrics.com)
- Sing365 (www.sing365.com)
- Terra Letras (letras.terra.com.br)
Dependencies:
- Amarok 1.4
- Ruby 1.8
- QtRuby, Ruby/GTK or Ruby/Tk
Translators wanted:
If you want to help, translate the script into your language and send me the result
(take a look at the i18n folder and ask if you need any help).
Important!!
The settings file format changed in version 0.13.2 so the old file must be removed when upgrading from versions of the script older than that one. Running the following command should take care of it:
rm $HOME/.kde/share/apps/amarok/scripts-data/wikilyrics.xml
Version 0.13.4
- [Fix] update LyricWiki plugin to match site change
- [Fix] update Jamendo plugin to match site changes
Version 0.13.3
- [Change] search dcop program on predefined locations if not found in PATH (*)
- [Fix] update Sing365 plugin to match site changes
- [Fix] bug in Jamendo plugin removed line break from lyrics
(*) Fixes the script when using Amarok 1.4 on KDE4 with Gentoo (and probably other distros too)
Version 0.13.2
- [New] the script can now spawn threads to handle Amarok messages
- [New] added option to disable using threads (Ruby threads are not battery/power friendly...)
- [New] removed all unnecessary usage of threads (parsing Amarok messages, Tk GUI backend)
- [Fix] check if song page exists before attempting to submit it (wiki plugins)
- [Fix] relogin when session expires (wiki plugins)
- [Fix] parsing of suggestions in wiki plugins
- [Fix] update Dark Lyrics plugin to match site changes
- [Fix] update Jamendo plugin to match site changes
- [Fix] update Lyrics Download plugin to match site changes
- [Fix] update Seek Lyrics plugin to match site changes
- [Change] replaced NotPopular.com plugin with LoudSon.gs plugin (NotPopular.com site lyrics now point to LoudSon.gs)
- [Change] removed Lyrc plugin as site has been down for more than a month
- [Change] removed Baidu MP3 plugin as site no longer provides lyrics
Ratings & Comments
191 Comments
Hi, I see that it has some problems with ruby1.9 I don't know ruby very well, so I can't tell you further, but seems that the cli interface is not working properly. I'm very much interested on this project because I want to use it as a swiss-army-knife for lyrics, to be used from more than just amarok! Hey, and thank you for that great code! ;)
hello, any chances this will be ported to amarok 2.x? thanks!
probably at some point in the future. many changes are required by the new scripting framework (including porting everything to JS) and I don't have the time do it right now.
What i have to do for installing it? :(
To install any Amarok script, select the "Script Manager" entry in the "Tools" menu and click the "Get More Scripts" button. You'll see a list with available scripts, select the one you wish to install and click the "Install" button. Alternately, you can download the package manually from this site and use the "Install script" button in the Script Manager to select the downloaded file.
Hi! I'm having problems to fetch lyrics of songs with special characters (In spanish: "tildes" or "acentos") in artist or song name. I'm a programmer (but not a Ruby one), so with the help of the log I discovered a workaround: comment out the line: -->Strings.titlecase!( title, true, downcase )<-- in the cleanup_title_token! function of the files lyrics_Lyriki.rb and lyrics_LyricWiki.rb . I know, I know (actually I supose it) the real solution is to fix the problem in the titlecase! function in strings.rb file, but I'm not a Ruby programmer :P I dont know if this has a downside (It just works for me). Hope it helps! Great script !!
thanks for this great script, finally I can see lyrics for which ever-down standard lyric script could never even think of! all thumbs up!
Will the script update work on an older system? I am running SuSE 10.0 and I have Wiki Lyrics v0.12.8 installed and running nicely right now and amarok-1.4.7 and ruby-1.8 installed. As for QT, I have gtk-qt-engine, and among others, qt3-3.3 installed as well as other qt apps/dependencies. The reason I'm asking is that sometimes, the script does not seem to work, or it delays and I am afraid that the script version that I am running might become incompatible with the server or something.
the script should update without problems but you'll need to remove the old script config file. doing the following should do the trick: rm $HOME/.kde/share/apps/amarok/scripts-data/wikilyrics.xml
Thanks for good script. I have one request. Does it possible to change encoding of the downloaded text? I am from Czech Republic and we have some special chars and they cause problems. Something in Ruby like " $user_defined='UTF-8' $text=set_encoding($user_defined)"; :) Thanks a lot.
The encoding for the downloaded lyrics does not depends on your locale but on the settings of the relevant lyrics site. If you are seeing garbled data then either some site is returning bad data or the corresponding plugin needs updating. Tell me which site(s) you are using and the song(s) you are having troubles with and I'll try to fix the problem.
hi! notpopular.com recently changed to www.loudson.gs and also the php code changed it would be awesome if you could update your script thanks a lot! Andrea
notpopular.com was replaced with www.loudson.gs in version 0.13.2.
thanks i didn't notice that in the changelog
note that last version was 0.13.3, not 0.13.2 :) but i started having such weird errors with 0.13.2, and persists with 0.13.3, what is broken in my system? i don't recall updating ruby or related on my system. Error loading Qt3 GUI backend: no such file to load -- Qt Error loading Qt4 GUI backend: no such file to load -- Qt Error loading GTK GUI backend: no such file to load -- gtk2 /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/plugins.rb:70:in `used_names=': undefined method `uniq' for #<String:0x2ad4aebb3ae8> (NoMethodError) from /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:119:in `read_config' from /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:398:in `exec' from /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:573 my ruby ver: 1.8.5p2
have you tried removing the script settings? rm $HOME/.kde/share/apps/amarok/scripts-data/wikilyrics.xml
thanks, renaming it helped! mv $HOME/.kde/share/apps/amarok/scripts-data/wikilyrics.xml{,.broken} however i saved broken copy as http://glen.alkohol.ee/wikilyrics.xml so you could debug and fix :)
Hi!, thanks for this script I really like it. And love how it helps contribute to the Wikilyrics quite easily. I'm an avid listener of free music from Jamendo, so I really like how it includes it in the search. Although it seems it's a bit broken since it doesn't import the carrier returns (it places the jamendo lyrics in one big line). And on a final note: How difficult would it be to add a timestamp feature? So that the lyrics would be highlighted on the line that's being sung. Thanks again for this really good script
Any chance you could port this to Amarok 2? The default lyricwiki script kinda sux :) Cheers
Would love it, Amarok 2 lyric thingies sux :(
Not in the short term. The scripting framework in Amarok has changed radically. Amongst other things, I would have to port all of the code (which is quite a lot) from Ruby to JavaScript. That's unfortunate not only because I'm not very knowledgeable of that language, but also because it seems to have many drawbacks compared to using a general scripting language. I had written the script in a way that could be interface agnostic (even though there were only an Amarok and a command line interface, adapters for other players could be written). Porting it would probably mean the script can only be used from Amarok and that's an idea I'm not completely sold on. That might change once Amarok 2 gets in a state that (IMO) justifies upgrading from 1.4.
Hi, it's realy great script, but... I discover in powertop that this script couse too many CPU wakeups: ( 98,7) ruby : do_nanosleep (hrtimer_wakeup) When the script is stoped, the interrupts disapears (i tried some other scripts but they dont generate interrupts). I hope it will help to improve and fix this script.
does installing QtRuby or RubyGTK solve this?
After instaled ruby-gtk2 its still the same: ( 99,5) ruby : do_nanosleep (hrtimer_wakeup) i have some problems with compiling ruby-qt4 so i doesnt try it now.
nothing critical, but you might want to be informed. i clicked configure plugin in amarok, and then pressed three times cancel (one for app, and two for lyrics submit) and then the script died with this log: Error loading Qt3 GUI backend: no such file to load -- Qt Error loading Qt4 GUI backend: no such file to load -- Qt Error loading GTK GUI backend: no such file to load -- gtk2 uninitialized constant REXML::Formatters /usr/share/apps/amarok/scripts/wiki_lyrics/utils/xmlhash.rb:44:in `write' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:127:in `write_config' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:158:in `on_configure' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:471:in `run_worker' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:465:in `loop' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:465:in `run_worker' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:421:in `exec' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:418:in `initialize' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:418:in `new' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:418:in `exec' /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:558/usr/share/apps/amarok/scripts/wiki_lyrics/utils/xmlhash.rb:44:in `write': uninitialized constant REXML::Formatters (NameError) from /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:127:in `write_config' from /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:132:in `on_quit' from /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:442:in `exec' from /usr/share/apps/amarok/scripts/wiki_lyrics/amarok/wikilyrics.rb:558