Ultimate Lyrics
Amarok 2.x Scripts
Description:

A configurable script that fetch lyrics from various sites.

  • Features:
    - Multiple site search (reload button can change site source)
    - Google search suggestions
    - Sites arranged by priority
    - Adequate charset support
    - Automatic (omitting track numbers, bracket, parenthesis, feat) and manual adjustment for artist and song name
    - Localizable GUI settings (cache, display mode, sites...)
    - Display modes: rich text, plain text
    - File cache (with expire period)

  • Supported web servers:
    wikia.com, lyricsplugin.com, lyricstime.com, lyricsreg.com, metrolyrics.com, seeklyrics.com, azlyrics.com, jamendo.com, darklyrics.com, mp3lyrics.org, songlyrics.com, elyrics.net, lyricsdownload.com, lyrics.com, lyriki.com, lyricsmode.com, lyricsbay.com, loudson.gs, lyricsfreak.com, sing365.com, allreggaelyrics.com, stixoi.info, teksty.org, tekstowo.pl, vagalume.uol.com.br, google.com

  • Translated into:
    - Czech
    - English
    - French (needs updating)
    - German
    - Italian
    - Lithuanian (needs updating)
    - Portuguese
    - Russian
    - Serbian
    - Spanish
    If you want to help translating the script in your language or update an existent translation follow the instructions from README inside script directory.
    Note that comment from script.spec is also translatable.

  • Notice:
    - It's suggested to turn off other lyric scripts like default LyricWiki.
    - Some ideas (codes) are taken from Glyrics, LyricWiki, Lyrix and Wiki-Lyrics.
    - Serially web sites change themselves, which can cause the script stops working for the site. Script adaptations are required when a site changes its "template".
    - Script can automatically (without google support) search only sites which URL can be constructed solely by artist and title.
    - The script is usually installed in ~/.kde/share/apps/amarok/scripts/ultimate_lyrics/ or in ~/.kde4/share/apps/amarok/scripts/ultimate_lyrics/
    - It's possible to disable loading of Ultimate Lyrics in ~/.kde/share/config/amarokrc or by removing Ultimate Lyrics installation folder
    - Defaults settings can be changed in main.js when GUI settings doesn't work.
    - The script is not automatically updatable. Occasionally you have to update the script manually from Tools->Script Manager->Get More Scripts->Update

  • To do:
    nothing planned

  • Known issues:
    - The script uses system language settings (chosen by GDM) instead of kde regional settings (can be altered in main.js).
    - The script should work properly with Qt framework 4.5.x or 4.6.x, but may have problems (like missing GUI settings) with an older version.

  • Last changelog:

    7 years ago

    * 2.06 (2010-8-01)
    - [Translations] Czech updated
    - [Fix] capitalization bug (thanks to w0lfx)
    * 2.05 (2010-7-26)
    - [Translations] Spanish included
    - [Change] options for longer lyrics
    * 2.04 (2010-7-7)
    - [Translations] Portuguese included
    - [Fix] lyricsplugin.com - url changed for better performances
    * 2.03 (2010-6-3)
    - [Translations] Russian included
    * 2.02 (2010-5-02)
    - [New] statusbar in search dialog
    * 2.01 (2010-3-28)
    - [Translations] Czech included
    * 2.0 (2010-3-26)
    - [New] search dialog
    - [Change] delay loading *.ui until first request
    * 1.85 (2010-1-29)
    - [Fix] possible fix for crashing bug. Order has been changed. Importer.loadQtBinding("qt.core");Importer.loadQtBinding("qt.network"); (thanks to InnocentElias)
    * 1.8 (2009-11-24)
    - [Fix] Respect the newest request when there are multiple requests (optimize responsiveness by preemption)
    - [Fix] Display lyrics only for a current track, and discard lyrics for previous one (escape to Amarok caches a wrong lyrics)
    ...

    HardinComp

    5 months ago

    I have several songs that I've manually added lyrics to and every time Amarok plays them my manual edits get blown away. Is there a way to set a flag to not look for lyrics if there are already lyrics for the song available?

    Report

    evgom

    1 year ago

    You need edit sites.js

    and replace the "exclude" line at lyrics.wikia.com section with:

    exclude: [["(function() ","s.parentNode.insertBefore(r,s)};}})();"]],

    Report

    dundee

    3 years ago

    If you want the script to work properly with teksty.org and tekstowo.pl, you should to replace sections for these sites in sites.js file with following content:

    "teksty.org": {
    title: "{artist} - {title} - tekst",
    charset: "UTF-8",
    extract: [['<div class="tabCont originalText songTextDisplay" id="tab-top-25534-1">','</div>']],
    exclude: [['<div style="float:left"','>']],
    url: "http://www.teksty.org/{artist},{title},tekst-piosenki",
    urlFormat : [
    {rep: "-", punct: " _@,;&\\/\"-" }, // removed '
    {rep: "a", punct: "/ą/" },
    {rep: "c", punct: "/ć/" },
    {rep: "e", punct: "/ę/" },
    {rep: "l", punct: "/ł/" },
    {rep: "n", punct: "/ń/" },
    {rep: "s", punct: "/ś/" },
    {rep: "z", punct: "/ź/" },
    {rep: "z", punct: "/ż/" },
    {rep: "", punct: "'" },
    ]
    },
    "tekstowo.pl (Polish translations)": {
    title: " {artist} - {title} - ",
    charset: "UTF-8",
    extract: [['<h2>Tekst piosenki:</h2><br />','<p>&nbsp;</p>']],
    extract2: [['<div id="translation"','<p>&nbsp;</p>']],
    exclude: [['<div style="float:left"','>']],

    url: "http://www.tekstowo.pl/piosenka,{artist},{title}.html",
    urlFormat : [
    {rep: "_", punct: " _@,;&\\/'\"." },
    ]
    },

    Report

    Letto

    4 years ago

    Coul you please add support for www.versuri.ro .
    That would make me so happy. Anticipated thanks.

    Report

    bollo

    5 years ago

    Is there anybody out there who also has issues with this script in amarok 2.5?

    I am trying to get this script to work in amarok 2.5 on OpenSuSE 12.1 / KDE 4.7.4

    I deleted the folder "~/.kde4/share/apps/amarok" and any amarok related file in "~/.kde4/share/config" to start with a clean installation of amarok. Unfortunately this did not help.

    Ideas anyone? Thanks.

    Report

    OsZ

    5 years ago

    I am at openSUSE 12.1 as well recently updated to Amarok 2.5 from Packman source and all scripts that worked for 2.4.3 are not working properly any longer. Some, like "Radio Germany" give error messages that variable QPixmap cannot be found others (like this one) are just not working without stating any error message same as "Recordstreams". Even though the scripts seams to be activated in scripts management but there are no entries in the settings drop down menu either.

    Report

    bollo

    5 years ago

    There is a problem with "qt4-qtscript". The amarok script part seems to rely on this package. Unfortunately it is not available for QT 4.8

    Also see my post here:
    http://forum.kde.org/viewtopic.php?f=115&t=98488

    And this discussion:
    http://forums.opensuse.org/english/get-technical-help-here/multimedia/470399-amarok-2-5-issues.html

    Until the problem is solved (make "qt4-qtscript" compile with QT 4.8) the only way to get back your scripts is to downgrade QT.

    Cheers

    Report

    OsZ

    5 years ago

    seams to be a hot topic, thanks for your comments. also found the threads when searching for solutions. I downgraded to amarok 2.4.3. currently. strange though that from Suse's "updated KDE apps" as well as from "Packman" we get packages that are not working with current stable release of Suse but thats a different story. thanks for your great support. Cheers, OsZ

    Report

    therealpxc

    5 years ago

    Is there any chance we could see support added for RapGenius? It's an excellent source for lyrics, even without the mass of contextual information it provides.

    Report

    nachor22

    5 years ago

    It doesn't work de plugin.
    Amarok show me "Upgrade to Lyrics Plugin version 0.4"

    Report

    LuisSilva

    6 years ago

    This scrit seems to not be working anymore. I get the following message on the lyrics widget:
    Upgrade to Lyrics Plugin version 0.4

    Report

    snayle

    6 years ago

    I have an important feature request to make! I believe it wouldn't be much work. I hope you're still on the Project, Vladimir.

    My request is: Add the ability to store the displayed lyrics to a plain text file into the music file's folder, with the same name as the music file as well. This is the most simple and compatible way to store lyrics in my opinion. I can even view the lyrics on my cheap 2005 mobile this way. Plus this way the lyrics get saved to the music folder, which is what I want when I'm up for sharing the music.

    This would be so great! No other lyrics plugin I know of does this. Thank you so much in advance!

    Report

    Mikage

    6 years ago

    It seems not to work anymore with loudson.gs and feiticeira so, probably, it has some problems working with amarok 2.4

    Report

    chromatic6

    6 years ago

    Hi and thanks for this plugin.

    Are you still working on it ?
    With amarok 2.4.0 reloading lyrics don't work at all.

    Report

    Panko

    6 years ago

    Voted down... but I don't wanna do it... it's a bug from plasma "get new stuff"... I voted up, but it sends voted down...

    Report

    snvv

    6 years ago

    Hello,
    stixoi.info currently is not supported.
    It does not give an option to enable it.
    I modified the main.js but again stixoi.info does not work.
    Regards
    snvv

    Report

    vivada

    6 years ago

    Any plans to integrate MusixMatch support? They have legal (licensed) lyrics and they have an API.

    Report

    geopgeop

    6 years ago

    The multilingual support for lyrics.wikia.com is good for when multiple languages of the same song happen to be on the same page, but the site is moving towards having the translations and romanizations to their own subpages in the form "{Artist}:{Title}/roman", "{Artist}:{Title}/ja", etc.

    Have an option to prioritize the romanized versions before looking for the regular version if they don't exist.

    My sites.js looks like this:

    const siteDescriptors = {
    "lyrics.wikia.com (Romanized)": {
    title: "{artist}:{title}\/roman Lyrics - ",

    (...)

    url: "http://lyrics.wikia.com/{Artist}:{Title}/roman",

    (...)

    },
    "lyrics.wikia.com": {
    title: "{artist}:{title} Lyrics - ",

    (...)

    url: "http://lyrics.wikia.com/{Artist}:{Title}",

    (...)

    },

    (...)

    }

    Report

    shaddow2k

    6 years ago

    Hi,

    thank you very much for the great script!

    Would it be possible for the script to save the lyrics of a song to the file tag (at least for mp3 files, to ID3-tag)? Could be a killer feature :)

    Thanks!
    Pete

    Report

    LordHelmchen

    6 years ago

    I second this.
    a "save to tag" function is what would make this perfect.

    As a side-note: Does it work as intended if the lyrics are not even saved to amaroks database (where there is a "lyrics" table, referencing the unique URL [rpath] of the "tracks" table), but have to be fetched from the web each time a song is played?
    I'd hope for some misconfiguration on my side here, but I have no idea what went wrong to cause this.

    Report

    w0lfx

    6 years ago

    Ultimate Lyrics capitalizes the artist and track names incorrectly, making capital a letter which stands after a non-ascii character such as "æ" or "ș". This causes UL not to fetch the lyrics from lyrics.wikia.com for such artists or tracks.
    I've looked into a source code and found a function String.prototype.capitalize in string.js which seemed to be a most likely reason of the wrong capitalization. Then I've followed the link to the site of this function's author, where its code was most probably taken and found an updated version of that function. After replacing the function with a new version all seems to work fine for me.

    Report

    biglinux

    6 years ago

    http://www.musicas.mus.br

    Report

    berkowitz

    6 years ago

    Hi,

    I can't include musicas.mus.br because site's URL doesn't contain artist and title strings. Only site's which URL contains those strings can be searched by UL.

    Report

    SASq

    6 years ago

    Then why not add POST requests search support in the script?

    Report

    kriko

    6 years ago

    Anyone else having "lirycs are being fetched" message with newest amarok and kde 4.5 branch?

    I'ts stuck on searching forever and I cannot change preferences until I restart amarok

    Report

    7 years ago

    * 2.06 (2010-8-01)
    - [Translations] Czech updated
    - [Fix] capitalization bug (thanks to w0lfx)
    * 2.05 (2010-7-26)
    - [Translations] Spanish included
    - [Change] options for longer lyrics
    * 2.04 (2010-7-7)
    - [Translations] Portuguese included
    - [Fix] lyricsplugin.com - url changed for better performances
    * 2.03 (2010-6-3)
    - [Translations] Russian included
    * 2.02 (2010-5-02)
    - [New] statusbar in search dialog
    * 2.01 (2010-3-28)
    - [Translations] Czech included
    * 2.0 (2010-3-26)
    - [New] search dialog
    - [Change] delay loading *.ui until first request
    * 1.85 (2010-1-29)
    - [Fix] possible fix for crashing bug. Order has been changed. Importer.loadQtBinding("qt.core");Importer.loadQtBinding("qt.network"); (thanks to InnocentElias)
    * 1.8 (2009-11-24)
    - [Fix] Respect the newest request when there are multiple requests (optimize responsiveness by preemption)
    - [Fix] Display lyrics only for a current track, and discard lyrics for previous one (escape to Amarok caches a wrong lyrics)
    ...

    File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install
    Score 50%
    50.00 Likes
    50 Dislikes
    Details
    version
    2.06
    updated Jul 26 2010
    added Jul 24 2009
    downloads
    page views 2618