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)
    • Toggle main display between lyrics and info (I)

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.1.tar.gz (13.9 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.1-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file rhythmsync-1.1.1.tar.gz.

File metadata

  • Download URL: rhythmsync-1.1.1.tar.gz
  • Upload date:
  • Size: 13.9 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.1.tar.gz
Algorithm Hash digest
SHA256 826334bf74025d1e38e295a5b97383fedb847a41ff652cb307cf0e2e0342f232
MD5 eccf294ab7aae8a7e2b74e13ffcb2b4a
BLAKE2b-256 edf5a08061209fe078ad0de1bc61e61d588d08c004af1240677e416762e779e4

See more details on using hashes here.

File details

Details for the file rhythmsync-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: rhythmsync-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.3 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 252ede42516f9419a8f4d4a43dd602a1397b296e35e740ab24db2b4d50728fd2
MD5 db4547c9b22c2b47ee8505a8c1c336c0
BLAKE2b-256 8712775492142edb25eac96a234a42127e5a085d528431ff0cebd81b6846482e

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