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.6.5.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.6.5-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: harmony_music-0.6.5.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.6.5.tar.gz
Algorithm Hash digest
SHA256 08c41f752ac6b13dfb3941a2ef559a8e3cfce89d699faf34b7300d4779e44f12
MD5 a7d2f630bf80c9664b212831f81f62bf
BLAKE2b-256 11edac365fcdc2c61a245a3fe436f30f09ddcde57242d52d2b64fa55225b707c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: harmony_music-0.6.5-py3-none-any.whl
  • Upload date:
  • Size: 50.8 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.6.5-py3-none-any.whl
Algorithm Hash digest
SHA256 edcae3af14fa91f62deaa7af5c9920974961aab859304c7b0a085f655be7533c
MD5 c61618cc5310139c417b5fd404b6de75
BLAKE2b-256 edb2c2cea1d998ca31a332468efe99d4ea30826383e9b798c26044b022dedb04

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