Skip to main content

Fetch synced .lrc lyrics from lrclib.net for beets

Project description

beets-getlrc

A beets plugin that downloads synced .lrc lyric files for your music.

What does this do?

Some digital audio players (like the walkman, HiBy R3, Shanling M0 Pro, FiiO devices, etc.) can display synced lyrics — the kind that scroll line-by-line as the song plays — but they require a separate .lrc file next to each track.

Beets already has a built-in lyrics plugin that fetches plain text lyrics and stores them in your library database. beets-getlrc fills a different gap: it fetches synced .lrc files from lrclib.net and saves them as sidecar files right next to your FLAC or MP3s.

Installation

bash
# If you installed beets with pip:
pip install beets-getlrc

# If you installed beets with pipx (recommended):
pipx inject beets beets-getlrc

Configuration

Add getlrc to your beets config and tweak the options if needed:

plugins:

  • getlrc
  • ... your other plugins

getlrc: auto: yes # Fetch lyrics automatically when importing new music overwrite: no # Don't replace existing .lrc files unless you say so timeout: 30 # Seconds to wait per request (prevents hanging) retries: 3 # How many times to retry if lrclib.net is slow delay: 0.5 # Seconds between requests (prevents rate-limit errors)

Usage

Run it manually any time with the beet getlrc command:

Command Description
beet getlrc Fetch lyrics for all tracks in your library
beet getlrc beatles Only fetch for tracks matching "beatles"
beet getlrc -a beatles Fetch for albums matching "beatles"
beet getlrc -f Force overwrite existing .lrc files
beet getlrc -p Pretend mode — shows what would be fetched without writing anything

How it Works

  1. The plugin looks for the artist and other tags in the meta data
  2. it looks for the lyrics at lrclib.net
  3. if found, it adds them to the folder using the same name structure you perfer

Example

Music/ ├── 01 Song Name.flac └── 01 Song Name.lrc <-- created by beets-getlrc

Requirements

  • beets 2.0.0 or newer
  • python 3.9 or later
  • internet

Notes

  • This only fetches synced lyrics, so if lrclib.net does not have them, then no lrc files will be created.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

beets_getlrc-0.1.3.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

beets_getlrc-0.1.3-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file beets_getlrc-0.1.3.tar.gz.

File metadata

  • Download URL: beets_getlrc-0.1.3.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for beets_getlrc-0.1.3.tar.gz
Algorithm Hash digest
SHA256 aacf534f66a65b22c6ce7c3cc49cf217df394dc889e0d4cf6f9eeadac07b041d
MD5 172374c5b28e84bd2b6f98481de28aeb
BLAKE2b-256 67144dbd4535290ecb6b23cc3dbde788ce5a533a6951564159f96691c74e125a

See more details on using hashes here.

File details

Details for the file beets_getlrc-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: beets_getlrc-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for beets_getlrc-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 672a57866dee98bfb54bd010ce3615b26c26158d7885d2b417c67d52fecf3ae1
MD5 77588ff6bc5b2569624410d1b7acd78b
BLAKE2b-256 ca30a0d866215d1dfb84770df6d90ba2537b286749c6c152f8658c3445a427df

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page