CLI music player with synchronized lyrics (LRC) support
Project description
RhythmSync
CLI audio player that plays music while displaying synchronized lyrics (LRC).
Features
- Play audio files in various modes
- Display synchronized lyrics during playback
- Show song metadata tags
- Styled terminal music player UI
- Convert audio files to other formats using FFmpeg
- Player controls
- Pause (
SPACE) - Next (
RIGHT Arrow) - Previous (
LEFT Arrow)
- Pause (
Requirements
- Python 3.8+
- FFmpeg (optional, for conversion feature)
Compatibility
RhythmSync is currently intended for UNIX-based systems (Linux/macOS). All versions after 1.0.0 don't work with non-UNIX systems
Installation and Usage
- PyPI page: Click here
- Install the CLI application
pip install rhythmsync
- Launch the CLI application:
rhythmsync
Supported Audio Formats
.mp3.flac.wav.ogg
Notes
- Other audio formats might work, but full functionality is not guaranteed.
Lyrics Sync
RhythmSync reads embedded lyric metadata from audio files.
Supported tags include:
SYLT,SYLT::engLYRICS,LYRICS:engLYRICS-ENG,LYRICS_ENLYRICS_SYNCED,SYNCEDLYRICS
LRC Format
[00:12.34] First line
[00:15.67] Second line
[00:18.90] Third line
- Format:
[mm:ss.xx] Line
Notes
- If no lyrics are found, a placeholder message is shown.
Commands
General
help- Lists all available commands.ls- Lists all files and directories in the current working directory.ls {path}- Lists all files and directories in the specified directory.cd {path}- Changes the current working directory to the specified directory.clear- Clears the terminal.
Playback
play {path}- Plays a single audio file once.play -r {path}- Plays a single audio file in a loop until stopped (Ctrl+C).play -d {directory}- Plays all supported audio files in the specified directory (non-recursive) in alphabetical order.play -dr {directory}- Plays all supported audio files in the specified directory (non-recursive) in alphabetical order and loops until stopped (Ctrl+C).play -ds {directory}- Plays all supported audio files in the specified directory (non-recursive) in shuffled order and loops until stopped (Ctrl+C).play -D {path}- Plays all supported audio files in the specified directory (recursive) in alphabetical order.play -Dr {path}- Plays all supported audio files in the specified directory (recursive) in alphabetical order and loops until stopped (Ctrl+C).play -Ds {path}- Plays all supported audio files in the specified directory (recursive) in shuffled order and loops until stopped (Ctrl+C).
Metadata
info {path}- Displays all available metadata.info {path} [tags]- Displays only given metadata tags.
Converter
convert {input path} {output path}- Converts an audio file to another format (FFmpeg required).
Notes
- Paths containing spaces must be wrapped in quotes or escaped with backslashes:
play "My Music/song.mp3"
play My\ Music/song.mp3
-
The convert command uses FFmpeg and may alter or corrupt metadata
-
Use
Ctrl+Cto stop playback or exit the app
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rhythmsync-1.1.0.tar.gz.
File metadata
- Download URL: rhythmsync-1.1.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8d470b18822526ae30270a3d6adf9aa0153fcd24246b47a07d96141b20f75b8
|
|
| MD5 |
050fd4f7b314d867f225adce55a59780
|
|
| BLAKE2b-256 |
6b32eaa22da0fb3a90bb18ff5a7bf3e25867dfeca7ec4084b0b3b49020b0e11f
|
File details
Details for the file rhythmsync-1.1.0-py3-none-any.whl.
File metadata
- Download URL: rhythmsync-1.1.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
294c933bc4032d74b365927792b02300fbf33e963f4c41b438497243f780138d
|
|
| MD5 |
5dc04f4b6fcb6ca2412b93306bc89ada
|
|
| BLAKE2b-256 |
20bcdfb359bb5e7f905450c54f50e946ebbf433e8f579e6ac17310d986b4861f
|