github tranxuanthang/lrcget 2.0.0

8 hours ago

Changelog

Say hello to Lyricsfile — an open, extensible lyrics format

Lyricsfile(1)

Lyricsfile is a new lyrics format built from the ground up to be open, human-readable, and extensible. Unlike other formats, Lyricsfile uses YAML and is designed to be fully documented so the community can contribute to its development. It is officially supported and endorsed by both LRCGET and LRCLIB.

Key features:

  • Word-by-word sync: Full support for karaoke-style word-level timing, enabling precise highlighting as lyrics play
  • Future-extensible: The format supports adding new metadata fields (e.g., vocalists, language, multiple translations) without breaking compatibility
  • Human-readable: Stored as plain YAML, so you can read and edit it with any text editor
  • Machine-readable: Easy to parse or create in any programming language using a YAML parser library, without needing to write a specialized parser

Note: This is a new format; expect breaking changes in future versions as the specification is refined.

Brand new lyrics editor with word-by-word sync support

lrcget-v2-word-sync.mp4

The new lyrics editor brings a complete redesign of the lyrics editing experience:

  • Interactive sync UI: Click to add timings, drag to adjust — no more typing timestamps manually
  • Word-by-word sync: Split lines into individual words, drag word boundaries to fine-tune timing with keyboard shortcuts for quick editing
  • Multiple simultaneous lines: Support for overlapping lyrics (e.g., vocal duets, call-and-response)
  • Set line end times: Control when each line exits to create smooth transitions
  • Plain lyrics editor: Edit plain lyrics separately from synced lyrics, and add labels like [verse] or [chorus] without affecting the synced version
  • Mark track as instrumental: Clearly mark tracks as instrumental when they have no vocals
  • Publish lyrics: Publish your word-by-word synced lyrics back to your favorite LRCLIB instance

Incremental scanning support

lrcgetv2scan.mp4

Library scanning has been completely rebuilt:

  • Fingerprint-based change detection: Uses file modification time and content hash to detect moved/renamed tracks
  • Skips processing unchanged files: Only processes files that have actually changed, dramatically speeding up large libraries
  • Reattach orphaned Lyricsfiles: Automatically reattaches Lyricsfiles to tracks when you rescan after adding new files
  • Force full rescan option: Added an option to trigger a complete library rescan when needed (in Settings modal)

Export lyrics is now optional

image

How lyrics storage works has been changed:

  • Internal storage: Lyrics are now saved in LRCGET's internal storage as new Lyricsfile format
  • No more sidecar behavior: LRCGET will no longer automatically create or modify .lrc files in your music library
  • Your library stays untouched: Unless you explicitly use the export feature, files on your drive remain unchanged
  • Export on demand: Use the mass-export or per-track export feature when you want lyrics saved externally

Other changes

LRCLIB integration:

  • The LRCLIB browser tab now includes the new lyrics editor
  • Choose an arbitrary track file from your library or computer as reference for playback while editing lyrics

Lyrics viewer improvements:

  • Support for overlapping vocals: Multiple vocal lines can display and highlight simultaneously
  • Word-by-word highlighting is now shown in the Now Playing lyrics viewer

Bug fixes and refinements:

  • Volume slider now persists across app restarts ✨
  • Confirmation dialog when closing the lyrics editor with unsaved changes 🤯
  • Settings modal improvements
  • Improved rendering of track, album, and artist lists
  • Added ESLint and Prettier for code quality
  • Icon refactoring: removed mdue, added unplugin-icons and @iconify-json/mdi
  • Upgraded lofty, kira, tauri and other libraries to their newest versions
  • Other minor enhancements

Last notes

v2.0 is here to celebrate 2K stars 🎉 Thank you to all our sponsors and everyone who has shown interest in this project!

Behind the scenes, lrclib.net has been growing faster than I expected (#294 (comment) - tranxuanthang/lrclib#91 (comment) - tranxuanthang/lrclib#85 (comment)). The server is now handling around 700 requests per second at peak times — pretty intense for infrastructure that started out as a lean, single-process setup. I recently upgraded to a dedicated server and applied stricter rate limiting to keep things stable.

Donations are keeping up for now, but as traffic keeps climbing, we'll need more resources before long. If you enjoy using LRCGET or LRCLIB and want to help us keep the lights on, sponsoring or donating makes a real, direct difference!

This is our biggest release yet, and I can't wait to see what you create with the new lyrics editor and Lyricsfile format. If you run into anything weird or have ideas, open an issue or stop by the discussions!

Don't miss a new lrcget release

NewReleases is sending notifications on new releases.