Skip to main content

Curses Omni Media Player

Project description

comp is a mpv front-end using curses. It has basic media player functions and can to extract playlists from multiple sources such as media sites supported by youtube-dl, local and direct URL to video/audio and its own JSON playlist format.


comp requires Python 3.5+ with curses module (only available on Unix-like OSes such as GNU/Linux and the BSDs) and libmpv (available as libmpv1 in Debian/Ubuntu, openSUSE; and as mpv in Arch Linux, Gentoo, macOS Homebrew repository). It also depends on python-mpv and youtube-dl but the setup program will automatically install them if they are missing.

As setuptools will install in an egg and cause breakage, using pip is a must. After installing it, run pip install comp (depends on your operating system, Python 3 pip executable might be either pip or pip3).

Command line options

$ comp --help
usage: comp [-h] [-e {json,mpv,youtube-dl}] [-c CONFIG] [--vid VID]
            [--vo DRIVER] [-f YTDL_FORMAT]

Curses Omni Media Player

positional arguments:
  playlist              path or URL to the playlist

optional arguments:
  -h, --help            show this help message and exit
  -e {json,mpv,youtube-dl}, --extractor {json,mpv,youtube-dl}
                        playlist extractor, default is youtube-dl
  -c CONFIG, --config CONFIG
                        path to the configuration file
  --vid VID             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) for details and
                        descriptions of available drivers
                        video format/quality to be passed to youtube-dl


Open a JSON playlist:

comp -e json test/playlist.json

Open a Youtube playlist with video height lower than 720:

comp -f '[height<720]'

Keyboard control




Start playing


Select the current track

/, ?

Search forward/backward for a pattern

<, >

Go backward/forward in the playlist


Toggle mute


Repeat previous search in reverse direction


Toggle video


Save the current playlist under JSON format


Delete current entry


Insert playlist

m, M

Cycle forward/backward through playing modes


Repeat previous search


Toggle pause


Open playlist

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

If not specified by the --config, (user-specific) configuration file 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


Media durations are not extracted from online playlists as youtube-dl.YoutubeDL option extract_flat is set to 'in_playlist'. This is rather a feature to save up bandwidth than a bug because a track’s duration is updated when it’s played.

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.3.7.tar.gz (855.4 kB view hashes)

Uploaded Source

Built Distribution

comp-0.3.7-py3-none-any.whl (19.4 kB view hashes)

Uploaded Python 3

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