1
0
Fork
You've already forked RLF
0
Ray's Lyric Finder
  • Java 100%
2026年06月08日 20:17:43 +01:00
src/main/java/org/rayhl hotfix fix if user doesnt specify output directory and -l is a file error while saving lrc file 2026年06月08日 20:17:43 +01:00
.gitignore initial comit 2026年06月08日 18:10:55 +01:00
LICENSE initial comit 2026年06月08日 18:10:55 +01:00
pom.xml hotfix fix if user doesnt specify output directory and -l is a file error while saving lrc file 2026年06月08日 20:17:43 +01:00
README.md update readme for -ovr flag 2026年06月08日 20:01:39 +01:00

RLF

aka Ray's Lyric Finder.

What is this?

I built RLF because I like having lyrics with my songs.

My navidrome server is great, especially with substreamer on my phone which supports synced .lrc files. However, trying to get lrc files by hand is annoying.

I made this so that I can simply find lyrics and have it automatically save them to my server.

I'm using lrclib's API for this project, however I'm sure that this could be modified for other's.

Note

This project probably won't get every single lrc file for every single one of your songs.

I've noticed that with some of my songs, especially niche songs/artists, don't work.

While I'm sure this could probably be made less of a problem by using different or more libraries, I didn't figure it was worth it.

How to isntall

Either use the latest release in the releases tab on the repo or compile yourself! I used maven for this as I have the most experience w that.

How to use

It's a java app. So java -jar RLF-v.jar <flags>.

You will probably need to have this saved somewhere you know it is so that you can continuously use it.

There are required flags for use:

-l <dir> location - This is required and can either be a directory or single file.

Optional flags include:

-od <dir> output directory - This is if you want lyrics to be saved to a specific directory. For example maybe your songs are in ~/Music/flacs but you want lyrics to be saved in ~/Music/lrcs.

-v verbose - This was mostly for testing, however it gives you some more info about whats going on while finding lyrics.

-r Recursive - If you specify a directory, then you may want it to go inside folders. For example, ~/Music may contain ~/Music/artistx, ~/Music/artisty and ~/Music/artistz. Using this flag will make it also do the files in those folders.

-ovr Overwrite Bypass - If you already have lrc files with the same name as a song in your output directory, then it will not write it to avoid overwriting data. Using -ovr in your command will ignore these and write the file anyway.

Example Time

java -jar RLF-1.jar -l . -od lrcs/ -v

This targets the files in the current directory, saves the lyrics in ./lrcs and sends verbose output

sadljfhsdjklfhsdkjlf

I've not personally tested if this works with mounted SMB shares or network drives. I have just used this by sshing to my servers and using it there.

If you try it and it works, cool! Lmk how! (ray@ray-y.org ;3)

If not then that's sad. I'm sure I could find a way but that feature is not coming for a while.

Why java ewwwwewewewww

I just wanted a project that worked. And from my programming knowledge, spinning smth up in java will probably save me more braincells then me trying to use smth else.

I'm sure this could be done in python, c++, c, rust, your own language you made or whatever else. It's literally just contacting an API in a way that I wanted.

I don't really care if it's bloated being in Java, it most def is for this kind of thing lol. I just knew java the most for this kinda thing. So deal with it or don't use it

I've found an issue!

Of course you have. It's my programming we're talking about.

You can make an issue in the Issues tab and I'll hopefully fix it.

license

Check LICENSE or refer to gpl-2