/mps-youtube

Terminal based YouTube player and downloader

Primary LanguagePython

mps-youtube

Wheel Status

Features

  • 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

Screenshots

Search

http://mps-youtube.github.io/mps-youtube/std-search.png

A standard search is performed by entering / followed by search terms.

You can play all of the search results by giving 1- as input

Repeating song/songs can be done with song_number[loop], for example: 1[3] or 4-6[2]

Local Playlists

http://mps-youtube.github.io/mps-youtube/local-playlist.png

Search result items can easily be stored in local playlists.

YouTube Playlists

http://mps-youtube.github.io/mps-youtube/playlist-search.png

YouTube playlists can be searched and played or saved as local playlists.

A playlist search is performed by // followed by search term.

Download

http://mps-youtube.github.io/mps-youtube/download.png

Content can be downloaded in various formats and resolutions.

Comments

http://mps-youtube.github.io/mps-youtube/comments.png

A basic comments browser is available to view YouTube user comments.

Music Album Matching

http://mps-youtube.github.io/mps-youtube/album-1.png

http://mps-youtube.github.io/mps-youtube/album-2.png

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.

Customisation

http://mps-youtube.github.io/mps-youtube/customisation2.png

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

Installation

Linux

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 youtube-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

Ubuntu

You can install mps-youtube directly from the official repositories:

[sudo] apt install mps-youtube

Arch Linux

You can install mps-youtube directly from the official repositories:

[sudo] pacman -S mps-youtube

macOS X

Install mpv (recommended player) with Homebrew:

brew cask 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

Additional Windows installation notes

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.

Run via Docker container

Using Docker, run with:

sudo docker run --device /dev/snd -it --rm --name mpsyt rothgar/mpsyt

Additional Docker notes

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.

Upgrading

Upgrade pip installation:

[sudo] pip3 install mps-youtube --upgrade

Usage

mps-youtube is run on the command line using the command:

mpsyt

Enter h from within the program for help.

IRC

An IRC channel #mps-youtube for the project is available on Freenode (chat.freenode.net:6697). You can join directly by clicking this link.

How to Contribute

Contributions are welcomed! However, please check out the contributing page before making a contribution.