- Search and play audio/video from YouTube
- Search tracks of albums by album title
- Search and import YouTube playlists
- Create and save local playlists
- Download audio/video
- Convert to mp3 & other formats (requires ffmpeg or avconv)
- View video comments
- Works with Python 3.x
- Works with Windows, Linux and Mac OS X
- Requires mplayer or mpv
This project is based on mps, a terminal based program to search, stream and download music. This implementation uses YouTube as a source of content and can play and download video as well as audio. The pafy library handles interfacing with YouTube.
FAQ / Troubleshooting common issues
A standard search is performed by entering /
followed by search terms.
Search result items can easily be stored in local playlists.
YouTube playlists can be searched and played or saved as local playlists.
Content can be downloaded in various formats and resolutions.
A basic comments browser is available to view YouTube user comments.
An album title can be specified and mps-youtube will attempt to find matches for each track of the album, based on title and duration. Type help search
for more info.
Search results can be customised to display additional fields and ordered by various criteria.
This configuration was set up using the following commands:
set order views set columns user:14 date comments rating likes dislikes category:9 views
Type help config
for help on configuration options
Note: ~/.local/bin
should be in your PATH
for --user
installs.
Using pip:
$ pip3 install --user mps-youtube
To install the experimental development version and try the latest features:
$ pip3 install --user -U git+https://github.com/mps-youtube/mps-youtube.git
Installing youtube-dl is highly recommended:
$ pip3 install --user youtube-dl and to upgrade: $ pip3 install --user youtube-dl --upgrade
(youtube-dl version dowloaded directly from youtybe-dl website can't be used by mps-youtube. While the version in the repositories is usually outdated)
For mpris2 support, install the python bindings for dbus and gobject:
$ pip3 install --user dbus-python pygobject
You can install mps-youtube directly from the official repositories:
[sudo] apt install mps-youtube
You can install mps-youtube directly from the official repositories:
[sudo] pacman -S mps-youtube
Install mpv (recommended player) with Homebrew:
brew install mpv
Alternately, you can install mplayer with MacPorts:
sudo port install MPlayer
Or with Homebrew:
brew install mplayer
Install mps-youtube using Homebrew:
brew install mps-youtube
As an alternative to installing with pip, there is a standalone binary available. Go to Releases and download mpsyt-VERSION.exe under downloads for the latest release.
Install the python colorama module to get colors (optional):
pip3 install colorama
Mpsyt requires a player to use as a backend, with either mpv or mplayer supported. Mpv is the recommended option.
Mpv can be downloaded from https://mpv.srsfckn.biz/
Extract both mpv.exe
and mpv.com
to the same folder as mpsyt.exe
or to a folder in the system path.
Alternately, mplayer can be downloaded from http://oss.netfarm.it/mplayer
Extract the mplayer.exe
file, saving it to the folder that mpsyt.exe
resides in (usually C:\PythonXX\Scripts\
) or to a folder in the system path.
Using Docker, run with:
sudo docker run --device /dev/snd -it --rm --name mpsyt rothgar/mpsyt
If you would like to locally build the container you can run the following steps
Check out this repo:
git clone https://github.com/mps-youtube/mps-youtube.git
Enter the directory and run docker build:
cd mps-youtube sudo docker build -t mpsyt .
Now run the container interactively with:
sudo docker run -v /dev/snd:/dev/snd -it --rm --privileged --name mpsyt mpsyt
In order to have access to the local sound device (/dev/snd) the container needs to be privileged.
Upgrade pip installation:
[sudo] pip3 install mps-youtube --upgrade
mps-youtube is run on the command line using the command:
mpsyt
Enter h
from within the program for help.
An IRC channel #mps-youtube for the project is available on Freenode (chat.freenode.net:6697). You can join directly by clicking this link.
Contributions are welcomed! However, please check out the contributing page before making a contribution.