LRCGET: mass-downloading synced lyrics for a local music library
Utility for mass-downloading LRC synced lyrics for your offline music library.
At a glance
- What is it?
- A Tauri desktop app that scans a music folder, fetches synced lyrics from the LRCLIB service, and writes LRC files next to the audio. It is the official LRCLIB client, and version 2.2.0 added export and download filtering.
- Who is it for?
- LRCGET is built for one job and does it well: if you have a folder of music and want timed lyrics beside every track, the scan-and-fetch loop is the fastest route, and the official-client relationship to LRCLIB means the search endpoint is the one the library's own maintainers expose.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 34 days ago.
- What is it written in?
- Mainly Vue, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 9, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What the app actually does to your music folder
The README's core description is short enough to quote nearly in full: LRCGET scans every file in a directory you choose for music files, then tries to download lyrics to an LRC file with the same name, saved into the same directory as the music. That is the whole contract, and it is a file-in, file-out design rather than a music player integration.
The service behind it is LRCLIB, and the README states that LRCGET is the official client of that service. That relationship matters for how you read the project: the lyric source is a shared community library with its own API, so match quality depends on how well the track metadata in your files lines up with what contributors uploaded. A badly tagged album will produce badly matched lyrics no matter how the client behaves.
The app is built with Tauri, and the repository tree matches the two halves of that choice: `src-tauri/` holds the Rust side, while `src/` plus `vite.config.js`, `index.html` and `tailwind.config.cjs` hold a Vue 3 frontend. The project publishes with the default branch `main` and was last pushed on 2026-09-05.
Package downloads across four platforms
The README's install section is mostly a list of release artifacts, and the most recent release is v2.2.0. On Windows there is an EXE installer marked as recommended and an MSI installer for `en-US`. On Linux, a Flatpak build is the recommended route for most distributions, and there are also deb packages for Ubuntu 24.04 and Linux Mint 22, RPM packages for Fedora and openSUSE, and an AppImage for most other distributions. On macOS there are two disk images, one for Intel x64 and one for Apple Silicon.
So the answer to whether there is a Linux build is not a single yes. There are four, and choosing between them is really a choice about how much you want the app sandboxed and how new your distribution is.
sudo apt install pipewire-alsaThat command is not part of installation. It is the fix for the most common Linux complaint in the README, where audio cannot be played, and it belongs here because it tells you the app plays audio through the PipeWire ALSA bridge rather than talking to hardware directly.
Version 2.2.0 adds export and narrower download scopes
The 2.2.0 changelog, published on 2026-09-05, is the release to read if you are deciding whether to upgrade. Its biggest item is optional automatic lyrics export after bulk downloads, scoped to your entire library, individual albums, or artists. You choose between plain lyrics as a `.txt` file, synced lyrics as a `.lrc` file, or embedding the lyrics into supported MP3 and FLAC files. Two defaults matter here: automatic export is off until you turn it on, and embedding still requires enabling an experimental option in Settings.
The same release adds download options directly to the Download popup, so you can fetch lyrics for all tracks, only for tracks without synced lyrics, or only for tracks without any lyrics at all. That third option is quietly the useful one, because it turns a bulk operation into an incremental top-up. Preferred export formats are now remembered across restarts.
Earlier releases show the direction of travel. Version 2.0.1 moved the mass exporter onto a background queue, so you can close the export modal and reopen it later from the header button to check progress, and it reduced memory overhead during mass operations by limiting log buffers and removing reactive arrays that were leaking. Version 2.1.0 added database indexes to speed up the Albums and Artists tabs.
The lyrics editor and word-level syncing
Beyond downloading, the app includes a lyrics editor with a word-by-word syncing workflow, and 2.2.0 improved it: pressing `Z` syncs the selected word boundary and advances, letting you walk through a track a word at a time.
Version 2.0.1 added the import side of the editor, accepting synced lyrics from an `.lrc` file through a file picker or straight from the clipboard, and it stopped the editor from blocking saves when both plain and synced lyrics were empty.
This is where the LRCGET source gets interesting technically. The dependency list in `package.json` includes `lrc-kit` as a GitHub dependency, which is the same author's separate library, along with `codemirror` and `vue-codemirror` for the text editing surface. A repository also contains `LYRICSFILE_CONCEPT.md` at the root, a document about how lyrics files are handled that is not summarised in the README.
Running from source with the Tauri toolchain
Building from source needs the Tauri prerequisites for your operating system first. On Windows the README lists the specific components: Microsoft Visual Studio C++ Build Tools, Rust 1.81.0 or higher, and NodeJS v16.18.0 or higher.
cd lrcget
npm install
npm run tauri devThat launches a development window with live reloading. The production build swaps one script:
cd lrcget
npm install
npm run tauri buildBinaries land in the Rust target directory:
./src-tauri/target/release/The `package.json` scripts show the wider toolchain around the build: `dev`, `build` and `preview` drive Vite directly, `lint` and `lint:fix` run ESLint, `format` and `format:check` run Prettier, and `test` runs Vitest. Note that `package.json` still carries the placeholder version `0.0.0` while releases are tagged `2.2.0`, so the version in the manifest is not something to cite as the app version.
Two platform failures worth knowing before you install
The troubleshooting section is short and specific, which makes it useful. The first entry is the Linux audio problem above, fixed by installing `pipewire-alsa`.
The second is a Windows startup failure tied to WebView2. If you are on Windows 10 LTSC, or you have run scripts that debloat Windows 10 and removed Microsoft Edge along with its webview component, the app will not open, because LRCGET depends on WebView2. Reinstalling Microsoft Edge is the suggested fix. This is a direct consequence of the Tauri choice: the frontend is a web view, so the app inherits web view runtime dependencies.
The third entry is cosmetic and unresolved. An invisible scrollbar on KDE Plasma 5 and 6 has an unknown cause, worked around by switching the GNOME and GTK application style away from Breeze in the system appearance settings.
What is absent from the README matters too. There is no documentation of a headless or command-line mode, even though searches for an LRCGET CLI turn up, and no Docker path is mentioned either. On an ARM Linux box, the published artifacts are amd64, so the Flatpak build is the one most likely to resolve the architecture for you.
Editorial conclusion
LRCGET is built for one job and does it well: if you have a folder of music and want timed lyrics beside every track, the scan-and-fetch loop is the fastest route, and the official-client relationship to LRCLIB means the search endpoint is the one the library's own maintainers expose. It is the wrong tool if your library is synced through a music player that manages lyrics itself, since LRCGET only writes files to a directory you choose and never touches your player's database. Watch the two documented rough edges, a WebView2 dependency on Windows and an audio stack that needs `pipewire-alsa` on Linux. Start with the Flatpak build on Linux or the EXE installer on Windows, then turn on automatic export once you trust the metadata matching, since embedding into MP3 and FLAC files is still behind an experimental setting.
Frequently asked questions
How do I install LRCGET?
Grab a release artifact rather than building from source. On Windows there is an EXE installer marked as recommended plus an MSI package. On Linux the recommended route is the Flatpak build, with deb, RPM and AppImage also published. On macOS there are separate disk images for Intel and Apple Silicon.
Where does LRCGET get its lyrics from?
From the LRCLIB service, and the README states that LRCGET is the official client of that service. Because the library is community-contributed, the quality of a match depends on how well your track metadata lines up with what was uploaded for that song.
What is an LRC file and how do players use it?
An LRC file is a plain text lyrics format that stores each line of lyrics with a timestamp, which is what makes a line highlight as the song plays. LRCGET writes these files into the same directory as your music, using the same base name, so most players find them automatically. The app also supports exporting as plain `.txt` lyrics or embedding lyrics into MP3 and FLAC files.
What software opens LRC files?
LRCGET itself does: version 2.0.1 added importing synced lyrics from an `.lrc` file through a file picker or from the clipboard into its editor. It also writes `.lrc` files next to your audio, which most music players pick up automatically, so you can use either approach.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/tranxuanthang-lrcget)