No description
- Python 100%
| .github/workflows | ||
| src/syncer | ||
| .gitignore | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
Lyrics Syncer CLI
A Python CLI tool to convert unsynced lyrics (USLT) in MP3 files into synced lyrics (SYLT) by marking line start times during playback.
Functionality
- Plays an MP3 file in your terminal in accordance to the relative path you specify
- Displays unsynced lyrics line by line
- Press
xto mark the start of each line - Writes synced lyrics back to the MP3 file
- Removes original unsynced lyrics automatically
Requirements
- Python 3.11+
- VLC media player installed (matching your Python architecture)
- Windows users: ensure
libvlc.dllis in your PATH or project folder
Setup
- Create and activate a virtual environment with
uv:
uv venv
- Install your project in editable mode:
uv pip install -e .
Usage
syncer <path_to_mp3_file>
x: mark the start of the next lyric lineq: quit/abort the session- Once all lines are marked, synced lyrics are written back to the file automatically
Notes
- Assumes the MP3 file has exactly one USLT lyrics frame
- Only supports unsynced lyrics to synced conversion (SYLT)
- Cross-platform non-blocking CLI input works on Windows, macOS, and Linux