An open souce video/music streamer based on MPV and piped.

Overview

🎶 Harmony Music

An easy way to stream videos or music from Youtube from the command line while regaining your privacy.


📖 Table Of Contents

What's this?

Harmony is a command line tool to stream music and videos without worrying about prying eyes from the likes of Youtube. Instead of directly scraping Youtube, Harmony uses Piped instead. This results in not only quicker fetching of results but also prevents Youtube from seeing your IP by proxying videos, all from the comfort of the terminal.

🎧 Features

  • Minimal Resource Usage. (Around 1-2% CPU usage while streaming music and 5-10% while playing videos)
  • No requests made to Youtube to fetch results.
  • Avoid Youtube's georestrictions by using Piped's inbuilt proxy. Works with both the --song and --video flag.
  • Ability to filter search queries by music, videos, albums or playlists.
  • A proper queue system.

📜 Requirements

  1. mpv - An open source command line video player.

  2. yt-dlp - A youtube-dl fork with additional features and fixes. This is preferred over youtube-dl for a better experience.

🛑 Force mpv to use yt-dlp over youtube-dl

yt-dlp is suggested over youtube-dl as it tends to load videos, music etc. quicker and more importantly works with the --playlist flag.

The recommended way to solve this issue is to just uninstall youtube-dl and install yt-dlp instead.

However, if you would like to have both youtube-dl and yt-dlp installed on your system, add this line to ~/.config/MPV/mpv.conf

script-opts-append=ytdl_hook-ytdl_path=yt-dlp

💻 Installation

Simply download the release binary from the releases section or enter the following commands below in any Linux terminal. (No windows binaries yet!)

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

  -h, --help           show this help message and exit
  --song, -s, --s      Searches for songs based on query. Example: harmony
                       --song "Never gonna give you up"
  --video, -v, --v     Searches for videos based on the query. Example:
                       harmony --video "Never gonna give you up"
  --album, -a, --a     Searches for albums based on the query. Example:
                       harmony --album "All Over The Place"
  --playlist, -p, --p  Searches for playlists based on the query. Example:
                       harmony --playlist "All Over The Place"
You might also like...
Video-Player - Telegram Music/ Video Streaming Bot Using Pytgcalls
Video-Player - Telegram Music/ Video Streaming Bot Using Pytgcalls

Video Player 🔥 ᴢᴀɪᴅ ᴠᴄ ᴘʟᴀyᴇʀ ɪꜱ ᴀ ᴛᴇʟᴇɢʀᴀᴍ ᴘʀᴏᴊᴇᴄᴛ ʙᴀꜱᴇᴅ ᴏɴ ᴘʏʀᴏɢʀᴀᴍ ꜰᴏʀ ᴘʟᴀʏ

Play Video & Music on Telegram Group Video Chat
Play Video & Music on Telegram Group Video Chat

Video Stream is an Advanced Telegram Bot that's allow you to play Video & Music on Telegram Group Video Chat 🧪 Get SESSION_NAME from below: Pyrogram

Latest Open Source Code for Playing Music in Telegram Video Chat. Made with Pyrogram and Pytgcalls 💖

MusicPlayer_TG Latest Open Source Code for Playing Music in Telegram Video Chat. Made with Pyrogram and Pytgcalls 💖 Requirements 📝 FFmpeg NodeJS nod

A Telegram Music Tag Editor Bot that can remove almost all usernames in the music tags and add own username instead.

Music Tag Editor Bot A Telegram Music Tag Editor Bot that can remove almost all usernames in the music tags and add own username instead. It can also

📢 Video Chat Stream Telegram Bot. Can ⏳ Stream Live Videos, Radios, YouTube Videos & Telegram Video Files On Your Video Chat Of Channels & Groups !

Telegram Video Chat Bot (Beta) 📢 Video Chat Stream Telegram Bot 🤖 Can Stream Live Videos, Radios, YouTube Videos & Telegram Video Files On Your Vide

Video Stream is a telegram bot project that's allow you to play video on telegram group video chat
Video Stream is a telegram bot project that's allow you to play video on telegram group video chat

Video Stream is a telegram bot project that's allow you to play video on telegram group video chat 🚀 Get SESSION_NAME from below: Pyrogram ## ✨ Featu

VC-Music , Playing music without bot.

VC-Userbot A Telegram Userbot to play or streaming Audio and Video songs / files in Telegram Voice Chats. It's made with PyTgCalls and Pyrogram Requir

 Music bot for playing music on telegram voice chat group.
Music bot for playing music on telegram voice chat group.

Somali X Music 🎵 Music bot for playing music on telegram voice chat group. Requirements FFmpeg NodeJS nodesource.com Python 3.8+ or Higher PyTgCalls

this is an op music pyrogram music bot.

amanrajputpytgcallmusic this is an op music pyrogram music bot..... this bot user music bot can play music without being admin...... TG-MusicPlayer A

Comments
  • Playling playlists from Youtube

    Playling playlists from Youtube

    I am not able to play playlists from youtube. I think the problem happens with all playlists as youtube-dl simply do not accept piped playlists url:

    > python harmony.py --playlist "red hot chili peppers"
    
    Searching for playlists...
    
    Results for red hot chili peppers
    
    0. Red Hot Chili Peppers - Unlimited Love (FULL ALBUM) - ESSBY
    1. Best Of Red Hot Chili Peppers - Dean Cook
    2. RHCP - The Red Hot Chili Peppers - ToonsToob
    3. Red Hot Chili Peppers Greatest Hits - Joaquin Barbaglia
    4. All songs by Red Hot Chili Peppers - allSongsBy
    5. Red Hot Chili Peppers Radio - Harry
    6. Rock - best of Red Hot Chili Peppers, Nirvana, Metallica, Blur, The White Stripes, The Cranberries - What now
    7. Red Hot Chili Peppers PLAYLIST!!! - poompeyloompey
    8. Red Hot Chili Peppers Radio - George Kost
    9. Red Hot Chili Peppers - Californication (1999 - Full Album) - Le Sémaphore
    10. Red Hot Chili Peppers - Playlist - Alin Iliuta
    11. Red Hot Chili Peppers - Stadium Arcadium (Complete Album) - Nick
    12. Red Hot Chili Peppers - Unlimited Love (Full Album, 2022/Álbum Completo) - Best Songs Playlist 2022
    13. Red Hot Chili Peppers - Unlimited Love (ALBUM) - HULLE KAN  NIE MET MY NIE
    14. RHCP Playlist - iandim
    15. Red Hot Chili Peppers YouTube Mix - Sam Harris
    16. The Getaway - Red Hot Chili Peppers (Full Album) - Dylan Hallett
    17. Red Hot Chili Peppers on the Stern Show - The Howard Stern Show
    18. Nirvana Red Hot Chili Peppers Green Day Offspring Blink-182 - Ricky Arreola
    19. Red Hot Chili Peppers - Unlimited Love (Instrumentals) - Djancarlo Shatunov - Instrumentals & Acapellas
    
    Pick an option [0:19, (B)ack]: 0
    
    Red Hot Chili Peppers - Unlimited Love (FULL ALBUM) - ESSBY has been added to the queue.
    
    Add playlists to the Queue (P)lay, (S)how Queue, (B)ack, (Q)uit: P
    
    Playing items in the queue (q to quit)
    
    0. Red Hot Chili Peppers - Unlimited Love (FULL ALBUM) - ESSBY
    
    [ytdl_hook] ERROR: Unsupported URL: https://piped.kavin.rocks/playlist?list=PLfiMjLyNWxeZnoC5NvrDI_-61s0TRSeay
    [ytdl_hook] youtube-dl failed: unexpected error occurred
    Failed to recognize file format.
    
    Exiting... (Errors when loading file)
    Add playlists to the Queue (P)lay, (S)how Queue, (B)ack, (Q)uit:
    
    
    opened by FrancescoCappio 10
Releases(v0.4.5.3)
  • v0.4.5.3(Jul 4, 2022)

    What's changed?

    • Added a new --trending flag. https://github.com/ZingyTomato/Harmony-Music/commit/aca89efd7524b9dc51f760e28132047df111f46f

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(11.49 MB)
  • v0.4.5.2(Jun 11, 2022)

    What's changed?

    • Removed the --video flag once again.

    • Improved accuracy of synced lyrics. https://github.com/ZingyTomato/Harmony-Music/commit/9f58fc218479d8d5f125bbe6b63b3a0d85248759

    • Removed ASCII characters in the lyrics to prevent Unicode errors. https://github.com/ZingyTomato/Harmony-Music/commit/660fda6466f4ed4d2225a3b0879ad10b6526d693

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(11.49 MB)
  • v0.4.5.1(Jun 6, 2022)

    What's changed?

    • Reverted back to the previous synced lyrics solution. https://github.com/ZingyTomato/Harmony-Music/commit/98b1ac9df21a3313758f96567bcfa2eb756fad7c

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(11.49 MB)
  • v0.4.5(Jun 5, 2022)

    What's changed?

    • New source for synced lyrics. https://github.com/ZingyTomato/Harmony-Music/commit/3df15250301c69018dfe5e2e2ba19165b5943494

    • The screen now clears before reaching the play screen. https://github.com/ZingyTomato/Harmony-Music/commit/3df15250301c69018dfe5e2e2ba19165b5943494

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(11.49 MB)
  • v0.4.4(Jun 4, 2022)

    What's changed?

    • New Icon displayed for Explicit Songs. https://github.com/ZingyTomato/Harmony-Music/commit/2472fca075fb4411c5a9d18dbcb8fb05cdc1808f

    • Updated documentation and warn if no results found. https://github.com/ZingyTomato/Harmony-Music/commit/fc00f42683f2c4c24079ae91e92f738b89954c8f

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(11.49 MB)
  • v0.4.3(May 30, 2022)

    What's changed?

    • Warn when no stream URL found. https://github.com/ZingyTomato/Harmony-Music/commit/466fea5e8744b5e8306b0673c90c51c6388a3c26

    • Improved readability of lyrics. https://github.com/ZingyTomato/Harmony-Music/commit/b94b7dbb6a3b76f7fe37ffa5c603237d4c58c473

    • New GitHub action to build binaries. https://github.com/ZingyTomato/Harmony-Music/commit/812973fb11c44384d64d7f2ae64d1424e18ed531

    • Fixed formatting of certain characters. https://github.com/ZingyTomato/Harmony-Music/commit/8225267d9409741ca14e6527aabb8150cd32136b

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(11.49 MB)
  • v0.4.2(May 21, 2022)

    What's changed?

    • Re-added the --video flag, added support for real-time synced lyrics. https://github.com/ZingyTomato/Harmony-Music/commit/b51a939d0826b933b64e7e05455c369772ad9e4a

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(18.13 MB)
  • v0.4.1(May 17, 2022)

    What's changed?

    • Harmony now streams music from JioSaavn instead of Piped. https://github.com/ZingyTomato/Harmony-Music/commit/e4e4a5575691ccd700f6370e2daeabd38b1b3706

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    • AUR users can check for updates using their respective AUR helpers.

    Source code(tar.gz)
    Source code(zip)
    harmony(7.02 MB)
  • v0.4(May 15, 2022)

    What's changed?

    • The project has been rewritten and it is now completely focused on music. https://github.com/ZingyTomato/Harmony-Music/commit/b71f1c492698894f322da3efe46bd912f1ce63c9

    • Updated Showcase GIF. https://github.com/ZingyTomato/Harmony-Music/commit/b00ddab5934f651288223c3a912f8279ecfbab52

    • Binaries now contain all required dependencies. https://github.com/ZingyTomato/Harmony-Music/commit/f7adf346afd20c805fb57eac7db9eabd47289276

    • Updated documentation. https://github.com/ZingyTomato/Harmony-Music/commit/4ccba359808daf189178e0aee46b00a1f8452fb6

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    Source code(tar.gz)
    Source code(zip)
    harmony(18.13 MB)
  • v0.3.1(May 1, 2022)

    What's changed?

    • The --video flag now uses piped's proxy to play videos and the currently playing track's title now shows up below mpv's progress bar. https://github.com/ZingyTomato/Harmony-Music/commit/aa958531e255b5e600f4f99753dce864f321ff1b

    • Fixed certain track's title not displaying. https://github.com/ZingyTomato/Harmony-Music/commit/efa4d8a2a6eb2a13af2c3b4b2e97ac433e03c2da

    • Updated documentation. https://github.com/ZingyTomato/Harmony-Music/commit/0a0bf510b227e5efa44ed5436fd1c0120430bbef

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    Source code(tar.gz)
    Source code(zip)
    harmony(9.11 MB)
  • v0.3(Apr 29, 2022)

    What's changed?

    • Implemented color scheme in more areas of the program. https://github.com/ZingyTomato/Harmony-Music/commit/500708ba8ccedd922dab18287b37f7231e0bbd79

    • Added new loading messages between certain actions. https://github.com/ZingyTomato/Harmony-Music/commit/d49a6aabd92d6e898d9ab2e14c39884bf5e3c068

    • The --song flag now uses piped's proxy to play tracks. https://github.com/ZingyTomato/Harmony-Music/commit/c7895ade8b084b561040d0f6d74b8f96346e2997

    • Updated documentation. https://github.com/ZingyTomato/Harmony-Music/commit/872c96b0a47f5eee1746b9206a14a0741982a834

    How to update?

    • Remove the old binary using sudo rm /usr/local/bin/harmony

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    Source code(tar.gz)
    Source code(zip)
    harmony(9.11 MB)
  • 0.2(Apr 23, 2022)

    What's changed?

    • Added a quit option while picking items. https://github.com/ZingyTomato/Harmony-Music/commit/72c0d72f69e8569e62def00fbe335ab4a6f0ae08

    • Many UX improvements. https://github.com/ZingyTomato/Harmony-Music/commit/886b65e493ba0fb1a7dc7c4c769183ead5263dbf

    • Fixed inconsistent spacing between various messages. https://github.com/ZingyTomato/Harmony-Music/commit/cd3e2d9d6263b7e8f026fd07b8ee966b008153cc

    • Added new documentation for how to install yt-dlp over youtube-dl. https://github.com/ZingyTomato/Harmony-Music/commit/fce1e0cc9200772dbba2729486b8eb65805bf9a7

    How to update?

    • Remove the old binary located in /usr/local/bin/harmony.

    • Re-enter the commands in the install section or download the new binary from the releases section and place it in /usr/local/bin.

    Source code(tar.gz)
    Source code(zip)
    harmony(9.11 MB)
  • v0.1(Apr 21, 2022)

Owner
Zingy Tomato
I uh... try to make stuff.
Zingy Tomato
This project checks the weather in the next 12 hours and sends an SMS to your phone number if it's going to rain to remind you to take your umbrella.

RainAlert-Request-Twilio This project checks the weather in the next 12 hours and sends an SMS to your phone number if it's going to rain to remind yo

9 Apr 15, 2022
Passive income method via SerpClix. Uses a bot to accept clicks.

SerpClixBotSearcher This bot allows you to get passive income from SerpClix. Each click is usually $0.10 (sometimes $0.05 if offer isnt from the US).

Jason Mei 3 Sep 01, 2021
OKEX数字货币自动交易python语言SDK

okex-py OKEx数字货币自动交易python语言SDK (非官方) OKEx Cryptocurrency Exchange python SDK (Unofficial) 本项目基于V5 API 使用例子 Example import okex.v5.account_api as acco

43 Dec 01, 2022
🔍 📊 Look up information about anime, manga and much more directly in Discord!

AniSearch The source code of the AniSearch Discord Bot. Contribute You have an idea or found a bug? Open a new issue with detailed explanation. You wa

私はレオンです 19 Dec 07, 2022
🌶️ Give real chat boosting to your discord server.

Chat-Booster Give real chat boosting to your discord server. ✅ Setup: - Add token to scrape messages on server that you whant. - Put the token in

&! Ѵιchy.#0110 36 Nov 04, 2022
Discord CTF helper bot for CyberErudites

Eruditus - CTF helper bot Eruditus - CTF helper bot About Eruditus is a Discord CTF helper bot built with Python, it was initially designed to be used

Hafidh 34 Dec 30, 2022
Hazard-Nuker - Hazard Nuker With Python

🌟 Since hazard is free, donations are really appriciate and keeps the developme

†† 9 Oct 26, 2022
Python wrapper library for World Weather Online API

pywwo Python wrapper library for World Weather Online API using lxml.objectify How to use from pywwo import * setKey('your_key', 'free') w=LocalWeat

World Weather Online 20 Dec 19, 2022
vk.com API python wrapper

Python vk.com API wrapper This is a vk.com (the largest Russian social network) python API wrapper. The goal is to support all API methods (current an

Dmitry Voronin 371 Dec 29, 2022
This script will detect changes in your session using Discords built in Gateway.

Detect Session Gateway This script will detect changes in your session using Discords built in Gateway. What does this log? Discord build version Oper

Omega 5 Dec 18, 2021
PyMed is a Python library that provides access to PubMed.

IMPORTANT NOTE: I don't have time to maintain this library (as some of you might have noticed). The PubMed API is a little chaotic, without a clear do

Gijs Wobben 143 Dec 21, 2022
Python Telegram bot api.

pyTelegramBotAPI A simple, but extensible Python implementation for the Telegram Bot API. Getting started. Writing your first bot Prerequisites A simp

FrankWang 6.4k Jan 09, 2023
A Telegram bot that add a dynamic caption to musics

Music Channel Manager A Telegram bot that add a dynamic caption to musics Deploy to Heroku What is it ? It manage your music channel. With just adding

13 Oct 18, 2022
YouTube playlist Files downloaded by FDM are not organized according to the original order on YouTube

Youtube-Playlist-File-Organizer YouTube playlist Files downloaded by Free Download Manager are not organized according to the original order on YouTub

David Mainoo 3 Dec 27, 2021
Python wrapper for the Intercom API.

python-intercom Not officially supported Please note that this is NOT an official Intercom SDK. The third party that maintained it reached out to us t

Intercom 215 Dec 22, 2022
A battle-tested Django 2.1 project template with configurations for AWS, Heroku, App Engine, and Docker.

For information on how to use this project template, check out the wiki. {{ project_name }} Table of Contents Requirements Local Setup Local Developme

Lionheart Software 64 Jun 15, 2022
Search all history of Chrome in terminal

Chrotry Search all history of Chrome in terminal. Demo Usages Move the Chrome history file to current directory by running move_history.sh Rename hist

Xiaoxu HU 2 Jun 13, 2022
BioThings API framework - Making high-performance API for biological annotation data

BioThings SDK Quick Summary BioThings SDK provides a Python-based toolkit to build high-performance data APIs (or web services) from a single data sou

BioThings 39 Jan 04, 2023
A Simple, Easy to use and light-weight Pyrogram Userbot

Nexa Userbot A Simple, Easy to use and light-weight Pyrogram Userbot Deploy With Heroku With VPS (Local) Clone Nexa-Userbot repository git clone https

I'm Not A Bot #Left_TG 28 Nov 12, 2022
A pdisk uploader bot written in Python

Pdisk Uploader Bot 🔥 Upload on Pdisk by Url, File and also by direct forward post from other channel... Features Post to Post Conversion Url Upload D

Paritosh Kumar 33 Oct 21, 2022