No description
Find a file
2026-01-01 01:32:58 +05:00
.github/workflows Code quality & flake8 CI/CD 2025-12-31 22:32:29 +05:00
src/syncer Code quality & flake8 CI/CD 2025-12-31 22:32:29 +05:00
.gitignore initial commit 2025-12-31 21:48:47 +05:00
LICENSE Licensing 2026-01-01 01:32:58 +05:00
pyproject.toml Easier entrypoint 2025-12-31 22:37:12 +05:00
README.md Easier entrypoint 2025-12-31 22:37:12 +05:00

Lyrics Syncer CLI

Code quality

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 x to 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.dll is in your PATH or project folder

Setup

  1. Create and activate a virtual environment with uv:
uv venv
  1. Install your project in editable mode:
uv pip install -e .

Usage

syncer <path_to_mp3_file>
  • x: mark the start of the next lyric line
  • q: 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