#music #lrc #cli #command-line-tool

bin+lib cnova

A command-line tool to download lyrics for music, quickly

5 unstable releases

0.3.0 Dec 27, 2024
0.2.1 Dec 24, 2024
0.2.0 Dec 21, 2024
0.1.1 Dec 21, 2024
0.1.0 Dec 21, 2024

#158 in Audio

Download history 389/week @ 2024-12-18 193/week @ 2024-12-25

582 downloads per month

MIT license

41KB
951 lines

cnova

cnova is a command-line oriented tool to quickly obtain lyrics files for your music by going through the provided paths recursively. It uses LRCLIB API to do so

Installation

If you have Rust installed, simply execute

cargo install cnova

to obtain the latest release version. Binaries are also available on releases page.

Usage

In a typical usage scenario, you probably want to download lyrics for your music. To do so, simply point cnova to the directory with music, like so:

cnova ~/Music

cnova also supports downloading lyrics for single tracks, like so:

cnova ~/Music/track1.flac ~/Music/track2.flac

You can also mix and match directories and files.

When cnova obtains lyrics for a song, whether synced or unsynced, it will create a corresponding lrc, if not present. For example, upon download lyrics for a file ~/Music/track1.flac, Music/track1.lrc will be created. Optionally, you can force cnova to re-download lrc files, even if such files present

If cnova is unable to obtain lyrics for a song (for example, LRCLIB returns 404, or claims that a given track is instrumental), it will create an empty nolrc file, corresponding to a given track. If such file is encountered in the future, cnova won't attempt to download lyrics again, unless specified.

TODOS

  • Progress bars, ETAs
  • Caching for lyrics (to not re-download them every time, and to potentially avoid filling the filesystem with a bunch of empty .nolrc files)
  • Better tracing in general (levels that make more sense, more informational and, at the same time, less noisy error messages)
  • Testing, somehow. Nicely separated functions instead of this mess

Dependencies

~14–27MB
~401K SLoC