Skip to main content

An open souce music streamer based on MPV.

Project description

🎶 Harmony Music

Stream music from your terminal without compromising your privacy.


📖 Table Of Contents

❔ What's this?

Harmony is a command-line music player that streams audio directly from JioSaavn without data collection or user tracking. It uses the JioSaavn API to fetch search results and stream music through your terminal.

🎧 Features

  • Low resource usage - Runs with 1-5% CPU usage during playback
  • Privacy focused - No data collection or user tracking
  • High-quality audio - 320 kbps bitrate streaming
  • Synchronized lyrics - Real-time lyrics display
  • Session persistence - Queue saves automatically between sessions
  • Local playlists - Create and manage playlists stored on your device
  • Spotify integration - Import tracks, albums, and playlists from Spotify URLs
  • Trending music - Browse currently trending tracks
  • Last.fm scrobbling - Optional Last.fm integration for tracking listening history. See Last.FM Integration for more information.

📜 Requirements

  • mpv - Media player for audio playback
  • Linux system (Windows binaries not yet available)

💻 Installation

Download the latest binary from the releases section or install directly:

sudo wget https://github.com/ZingyTomato/harmonymusic/releases/latest/download/harmony -O /usr/local/bin/harmony
sudo chmod a+rx /usr/local/bin/harmony

👨‍🔧 Usage

Track Selection

Single track:

1. Track1 - Artist1 (02:59)
2. Track2 - Artist2 (03:33)
3. Track3 - Artist3 (03:30)
4. Track4 - Artist4 (03:01)

[(P)lay, (S)how queue, (Q)uit, (E)dit, (C)lear, (V)iew playlists]: 1

Multiple tracks:

[(P)lay, (S)how queue, (Q)uit, (E)dit, (C)lear, (V)iew playlists]: 1 2 3

Range selection:

[(P)lay, (S)how queue, (Q)uit, (E)dit, (C)lear, (V)iew playlists]: 1..3

Selects tracks 1, 2, and 3

Command-line Options

usage: harmony [-h] [-t] [-p] [-v] [-dl] [query ...]

Harmony - Terminal-based music streamer powered by MPV
https://github.com/ZingyTomato/Harmony-Music

positional arguments:
  query                 Search query (e.g., 'harmony Never Gonna Give You Up')
                        or Spotify URL (e.g., 'harmony https://open.spotify.com/xxxx')

options:
  -h, --help            show this help message and exit
  -t, --trending        show top 20 trending tracks worldwide
  -p, --playlist        manage playlists (view existing or create new)
  -v, --version         display program version
  -dl, --disable-lyrics disable synchronized lyrics in MPV

🔨 Configuration

Harmony creates a config file at ~/.config/harmony on first run. All settings can be modified in this file or overridden with command-line arguments.

Configuration Options

Setting Description Default
SHOW_SYNCED_LYRICS Display synchronized lyrics in MPV false
PERSISTENT_QUEUE Save queue between sessions true
LOOP_QUEUE Loop tracks in queue false
LASTFM_API_KEY Last.fm API key for scrobbling null
LASTFM_API_SECRET Last.fm API secret null
LASTFM_USERNAME Last.fm username null
LASTFM_PASSWORD Last.fm password null

Last.fm Integration

To enable Last.fm scrobbling:

  1. Create a Last.fm API account
  2. Add your credentials to the config file
  3. View existing API keys

🏥 Contributing

Bug reports and feature requests are welcome. Please open an issue to discuss any problems or suggestions.

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

harmony_music-0.7.0.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

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

harmony_music-0.7.0-py3-none-any.whl (50.4 kB view details)

Uploaded Python 3

File details

Details for the file harmony_music-0.7.0.tar.gz.

File metadata

  • Download URL: harmony_music-0.7.0.tar.gz
  • Upload date:
  • Size: 45.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for harmony_music-0.7.0.tar.gz
Algorithm Hash digest
SHA256 f1550574acb563e81666603321bb2da4bbaf125aa5a739a82466a498a0e8be31
MD5 2cfbaef82a496153a21b33e877f7d280
BLAKE2b-256 a2a935971f6a467b610c802604f34ac3396b43c9e46e80ce9051dfcc3ca75c1f

See more details on using hashes here.

File details

Details for the file harmony_music-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: harmony_music-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 50.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for harmony_music-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 09c03fbe4344c4ca5ed4dfb8097ac3d318927ede1274dd78677346a7bd72ac31
MD5 5e93c3f8f8e4a7d42d63389ca36a8af4
BLAKE2b-256 60f19b07ea50960680a94acd6fae67216d2fa7d8d6ed33ef102cc480ba32f15c

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