Skip to content

timbru31/mp3lyrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

MP3Lyrics

Ruby

Code Climate coverage Code Climate Known Vulnerabilities Dependabot Status

License

Still in Alpha, ugly and WIP :)

Info

MP3Lyrics is a tool written in Ruby (currently only CLI) to download song lyrics from AZLyrics or Genius. The lyrics are added to the mp3 file via the USLT (Unsynchronised lyric/text transcription) tag (with the power of ruby-mp3info).

Motivation

Why Ruby?

Because I wanted to try another language than Java.

Why are you not using the LyricWiki API?

Although they have got a pretty neat REST API the lyrics can't be fully retrieved, most likely due to licensing issues. They no longer offer an API since January 2016. The site has since been shut down as of October 2020.

Why are you not using musiXmatch API?

Simply because they charge me (the developer) for retrieving the lyrics.

Why are you not using MetroLyrics API?

The site has been shut down as of July 2021.

Why are you not using Genius API?

They do not offer fetching lyrics via the API (yet).

Why not iTunes Lyrics Adder, Lyrics for iTunes, iSongText, Get Lyrical, ...?

Either they were tied to iTunes and ugly DLL libraries, outdated/inactive, closed source or not cross platform. I'm mainly developing on my MacBook and my iTunes library is on my Windows system. I need something that works anywhere.

By dropping the need (and support) of iTunes running somewhere in the background, the tool is more lightweight.

Dependencies

  1. Bundler
  2. Nokogiri for HTML parsing
  3. mp3info as a MP3 library
  4. require_all for easier requiring of the wiki_api folder
  5. For testing purposes you should install rubocop, rake, minitest and optionally coverage reporters for CodeClimate

Installation

gem install mp3lyrics

Usage

mp3lyrics <dir> [-override true/false] [-use genius/azlyrics]

dir is the folder with your music, it's iterated recursively.
override is a boolean toggle to override existing lyrics (defaults to false).
use is a specific wiki to be used to download lyrics (all wikis are used by default).

Development usage

The same options as above apply, but the binary has to be invoked from

./lib/mp3lyrics.rb

Tests

To execute the tests run

bundle exec rake

Future plans // ToDo

  • Add support to other lyrics sites when 404 is returned from LyricWiki
  • GUI for easier usage (maybe)
  • Add test cases, see #1

Built by (c) Tim Brust and contributors. Released under the MIT license.