Skip to content

feat: auto-fetch synced lyrics via syncedlyrics#3

Merged
GeiserX merged 1 commit intomainfrom
feat/syncedlyrics-integration
Feb 8, 2026
Merged

feat: auto-fetch synced lyrics via syncedlyrics#3
GeiserX merged 1 commit intomainfrom
feat/syncedlyrics-integration

Conversation

@GeiserX
Copy link
Copy Markdown
Owner

@GeiserX GeiserX commented Feb 8, 2026

Summary

  • New lyrics.py module: extracts artist/title from embedded metadata (mutagen) or filename pattern, then fetches synced .lrc lyrics via syncedlyrics (Musixmatch, LRCLIB, NetEase providers)
  • Integrated into process_source_file() — lyrics are fetched after encoding, before sidecar sync so they get copied to all output directories
  • New fetch_lyrics config option (default: true) to enable/disable
  • 9 new tests for the lyrics module (88% coverage)
  • Dependencies: mutagen>=1.47.0, syncedlyrics>=1.0.0

Based on batch testing: syncedlyrics achieves ~80% hit rate (305/381 files), bringing lyrics coverage from 75.9% to 95.3%.

Test plan

  • All 103 tests pass (9 new + 94 existing)
  • Deploy and verify lyrics are fetched for new audio files
  • Verify fetch_lyrics: false disables the feature

Add automatic .lrc lyrics fetching for audio files during processing:
- New lyrics.py module extracts artist/title from embedded metadata
  (mutagen) or filename, then queries syncedlyrics providers
  (Musixmatch, LRCLIB, NetEase)
- Integrated into process_source_file() before sync_sidecars()
- New fetch_lyrics config option (default: true) to enable/disable
- 9 new tests with 88% coverage on lyrics module

Dependencies added: mutagen>=1.47.0, syncedlyrics>=1.0.0
Version bump to 0.3.0.
@GeiserX GeiserX merged commit 0103201 into main Feb 8, 2026
5 checks passed
@GeiserX GeiserX deleted the feat/syncedlyrics-integration branch February 8, 2026 21:20
GeiserX added a commit that referenced this pull request Mar 10, 2026
Add automatic .lrc lyrics fetching for audio files during processing:
- New lyrics.py module extracts artist/title from embedded metadata
  (mutagen) or filename, then queries syncedlyrics providers
  (Musixmatch, LRCLIB, NetEase)
- Integrated into process_source_file() before sync_sidecars()
- New fetch_lyrics config option (default: true) to enable/disable
- 9 new tests with 88% coverage on lyrics module

Dependencies added: mutagen>=1.47.0, syncedlyrics>=1.0.0
Version bump to 0.3.0.
GeiserX added a commit that referenced this pull request Mar 10, 2026
Add automatic .lrc lyrics fetching for audio files during processing:
- New lyrics.py module extracts artist/title from embedded metadata
  (mutagen) or filename, then queries syncedlyrics providers
  (Musixmatch, LRCLIB, NetEase)
- Integrated into process_source_file() before sync_sidecars()
- New fetch_lyrics config option (default: true) to enable/disable
- 9 new tests with 88% coverage on lyrics module

Dependencies added: mutagen>=1.47.0, syncedlyrics>=1.0.0
Version bump to 0.3.0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant