| src/main/java/org/rayhl | hotfix fix if user doesnt specify output directory and -l is a file error while saving lrc file | |
| .gitignore | initial comit | |
| LICENSE | initial comit | |
| pom.xml | hotfix fix if user doesnt specify output directory and -l is a file error while saving lrc file | |
| README.md | update readme for -ovr flag | |
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