Ruby Lyric Parser 1.3

Ruby Lyric Parser is an Amarok script that can fetch lyrics.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
Creative Commons Attribution-NonCommer... 
3.0/5 5
James Gleeson
ROOT \ Multimedia \ amaroK Scripts
Ruby Lyric Parser is an Amarok script that can fetch lyrics. It is written in Ruby.

The RLP philosophy:
1) Keep the number of search engines to a minimum.
2) Use the best search engines.
3) Search effectively and efficiently.

Search Engines (in order of search priority):
1) LyricWiki - a reliable, well-maintained, and constantly updated lyric site
2) JustSomeLyrics - good for less popular music (not found on LyricWiki)

Basic Search Algorithm Description

Processing Artist/Song Data:
1) Artist and song data are first "processed"; this involves stripping any useless/junk characters that would otherwise prevent useful search results.
2) Original artist and song data are still preserved. In the event that a search with the processed info fails, we'll try it again but with the unprocessed data.
3) Adding to 2)... RLP will retry only if the following conditions hold true:
a) The processed and unprocessed song information differs
b) retry is set to true in configuration options
c) The search method itself is set to retry (as defined by me)

LyricWiki Search Methods:
1) Guess the url: This method "guesses" the url from the song/artist data. So, if the meta tags on your music are accurate, then you'll have no problems getting lyrics.
2) Google search: This method searches google using the song/artist data and grabs the first search result.

JustSomeLyrics Search Methods:
1) Google search: This method searches google using the song/artist data and grabs the first search result.

Benefits of RLP
1) I actively develop and constantly test my code (see the Test Cases suite I've included in lyric_parser.rb).
2) The general trend with lyrics scripts seems to be:
"more search engines = better results"
I disagree, and instead believe:
"more search engines = bloated and slow script that searches ineffectively"
3) I'm open to suggestions (see Contact information below).

The configuration is located at the top of lyric_parser.rb, and is quite minimal (and in my opinion, not needed).



What's New in This Release:

Fixed a bug where LyricWiki lyric pages obtained from "guessing" the song url weren't being recognized as successful (and therefore skipped)
Improved algorithm for LyricWiki google search; RLP now checks what type of page the first google hit is:

1. If it's the song page, return the lyrics on that page (this was the default behaviour before)
2. If it's the artist's main page or an album page, find the link to the song from it

Added another search method to the LyricWiki parser:
1. Guess the artist page
2. If successful, find the song link from the page

Made many more functions for my html parsing library, and improved the functionality of some already existing ones
Organized my code into more sensible file locations
Considered implementing another parser (; however, after extensive testing of the beta parser, I found that in addition to having a low lyric yield on search attempts, the way in which this site formats it's URL's and even lyric pages is extremely inconsistent

Last updated on August 18th, 2008

#fetch lyrics #lyrics parser #Amarok script #Amarok #song #lyrics #parser

Add your review!