Skip to main content

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)

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


  • 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::eng
  • LYRICS, LYRICS:eng
  • LYRICS-ENG, LYRICS_EN
  • LYRICS_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+C to stop playback or exit the app

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

rhythmsync-1.1.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

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

rhythmsync-1.1.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

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

Hashes for rhythmsync-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b8d470b18822526ae30270a3d6adf9aa0153fcd24246b47a07d96141b20f75b8
MD5 050fd4f7b314d867f225adce55a59780
BLAKE2b-256 6b32eaa22da0fb3a90bb18ff5a7bf3e25867dfeca7ec4084b0b3b49020b0e11f

See more details on using hashes here.

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

Hashes for rhythmsync-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 294c933bc4032d74b365927792b02300fbf33e963f4c41b438497243f780138d
MD5 5dc04f4b6fcb6ca2412b93306bc89ada
BLAKE2b-256 20bcdfb359bb5e7f905450c54f50e946ebbf433e8f579e6ac17310d986b4861f

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