Awesome
syncedlyrics
Get an LRC format (synchronized) lyrics for your music.
Installation
pip install syncedlyrics
Usage
CLI
syncedlyrics "SEARCH_TERM"
By default, this will prefer time synced lyrics, but use plaintext lyrics, if no synced lyrics are available.
To only allow one type of lyrics specify --plain-only
or --synced-only
respectively.
Available Options
Flag | Description |
---|---|
-o | Path to save .lrc lyrics, default="{search_term}.lrc" |
-p | Space-separated list of providers to include in searching |
-l | Language code of the translation (ISO 639-1 format) |
-v | Use this flag to show the logs |
--plain-only | Only look for plain text (not synced) lyrics |
--synced-only | Only look for synced lyrics |
--enhanced | Searches for an Enhanced (word-level karaoke) format. If it isn't available, search for regular synced lyrics. |
Python
# This simple
lrc = syncedlyrics.search("[TRACK_NAME] [ARTIST_NAME]")
# Or with options:
syncedlyrics.search("...", plain_only=True, save_path="{search_term}_1234.lrc", providers=["NetEase"])
# Get a translation along with the original lyrics (separated by `\n`):
syncedlyrics.search("...", lang="de")
# Get a word-by-word (karaoke) synced-lyrics if available
syncedlyrics.search("...", enhanced=True)
Providers
- Musixmatch
Deezer(Currently not working anymore)- Lrclib
- NetEase
- Megalobiz
- Genius (For plain format)
Lyricsify(Broken duo to Cloudflare protection)
Feel free to suggest more providers or make PRs to fix the broken ones.
License
Citation
If you use this library in your research, you can cite as follows:
@misc{syncedlyrics,
author = {Momeni, Mohammad},
title = {syncedlyrics},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/moehmeni/syncedlyrics}},
}