Skip to main content

Curses Online Media Player

Project description

This program is a curses front-end for mpv and youtube-dl.



This program currently only runs on Python 3.5+ on operating systems that the curses module is supported (i.e. Unix-like OS, e.g. GNU/Linux, macOS and the BSDs).

It also depends on youtube-dl and libmpv. Both of those should be available in your operating system’s repository, although it’s more recommended to install youtube-dl using pip (currently most distros still use Python 2 as default so the command is something like pip3 install youtube-dl).

Installing comp

I will try to upload the program to PyPI when it’s more completed but as of this moment, I’d suggest you to use git to get the software:

git clone
cd comp
sudo ./ install


Command line arguments

$ comp --help
usage: comp [-h] [-c CONFIG] [--vid {ID,auto,no}] [--vo DRIVER]
            [-f YTDL_FORMAT] [-u URL] [-j JSON_PLAYLIST]

Curses Online Media Player

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        location of the configuration file; either the path
                        to the config or its containing directory
  --vid {ID,auto,no}    initial video channel. auto selects the default, no
                        disables video
  --vo DRIVER           specify the video output backend to be used. See
                        VIDEO OUTPUT DRIVERS in mpv(1) man page for details
                        and descriptions of available drivers
                        video format/quality to be passed to youtube-dl
  -u URL, --online-playlist URL
                        URL to an playlist on Youtube
                        path to playlist in JSON format. If
                        --online-playlist is already specified, this will be
                        used as the default file to save the playlist

Keyboard control




Start playing


Select the current track

/, ?

Search forward/backward for a pattern

<, >

Go forward/backward in the playlist


Toggle mute


Repeat previous search in reverse direction


Open online playlist


Toggle video


Save the current playlist under JSON format


Delete current entry

m, M

Cycle through playing modes


Repeat previous search


Toggle pause


Download tracks set by playing mode

Up, k

Move a single line up

Down, j

Move a single line down

Left, h

Seek backward 5 seconds

Right, l

Seek forward 5 seconds


Move to the beginning of the playlist


Move to the end of the playlist

Page Up

Move a single page up

Page Down

Move a single page down


Redraw the screen content

Configuration files

The system-wide configuration file is /etc/comp/settings.ini, the user-specific one is ~/.config/mpv/settings.ini. Default configurations are listed below:

# Initial playing mode, which can be one of these 8 modes: play-current,
# play-all, play-selected, repeat-current, repeat-all, repeat-selected,
# shuffle-all and shuffle-selected.
play-mode = play-current

# Initial video channel. auto selects the default, no disables video.
video = auto
# Specify the video output backend to be used. See VIDEO OUTPUT DRIVERS in
# mpv(1) man page for details and descriptions of available drivers.
video-output =

# Video format/quality to be passed to youtube-dl. See FORMAT SELECTION in
# youtube-dl(1) man page for more details and descriptions.
format = best

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

comp-0.2.3.tar.gz (36.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page