Project

mp3lyrics

0.01
There's a lot of open issues
No release in over a year
CLI for mp3 lyrics fetching. Uses ruby-mp3info and fetches different lyric wikis
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies
 Project Readme

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.