COMP(1)

NAME
comp - Curses Omni Media Player

SYNOPSIS
comp [-h] [-v] [-e {json,mpv,youtube-dl}] [-c CONFIG] [--vid VID] [--vo DRIVER] [-f YTDL_FORMAT] playlist

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

OPTIONS

  Positional arguments

playlist
    path or URL to the playlist

  Optional arguments

-h, --help
    show this help message and exit

-v, --version
    show program's version number 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

-f YTDL_FORMAT, --format YTDL_FORMAT
    video format/quality to be passed to youtube-dl

KEYBOARD CONTROL

  Bindings inherited from mpv
For convenience purpose, I try to mimic mpv(1) default keybindings, but many are slightly different from mpv(1) exact behaviour (mainly because of the lack of keys which are unsupported by curses(3)). So I will list all of them here for you to compare:

Left and Right
    Seek backward/forward 5 seconds. Shifted arrow does a 1 second seek.

Up and Down
    Seek backward/forward 1 minute.

[ and ]
    Decrease/increase current playback speed by 10%.

{ and }
    Halve/double current playback speed.

Backspace
    Reset playback speed to normal.

< and >
    Go backward/forward in the playlist.

Return
    Start playing.

Space / p
    Pause (pressing again unpauses).

.   Step forward. Pressing once will pause, every consecutive press will play one frame and then go into pause mode again.

,   Step backward. Pressing once will pause, every consecutive press will play one frame in reverse and then go into pause mode again.

q   Stop playing and quit.

/ and *
    Decrease/increase volume.

9 and 0
    Decrease/increase volume.

m   Mute sound.

_   Cycle through the available video tracks.

#   Cycle through the available audio tracks.

f   Toggle fullscreen.

T   Toggle stay-on-top.

w and e
    Decrease/increase pan-and-scan range.

o or P
    Show progression bar, elapsed time and total duration on the OSD.

O   Toggle OSD states between normal and playback time/duration.

v   Toggle subtitle visibility.

j and J
    Cycle through the available subtitles.

x and z
    Adjust subtitle delay by +/- 0.1 seconds.

l   Set/clear A-B loop points.

L   Toggle infinite looping.

Ctrl-+ and Ctrl--
    Adjust audio delay (A/V sync) by +/- 0.1 seconds.

u   Switch between applying no style overrides to SSA/ASS subtitles, and overriding them almost completely with the normal subtitle style.

V   Toggle subtitle VSFilter aspect compatibility mode.

r and t
    Move subtitles up/down.

s   Take a screenshot.

S   Take a screenshot, without subtitles.

Alt-s
    Take a screenshot each frame.

Page Up and Page Down
    Seek to the beginning of the previous/next chapter.

d   Activate/deactivate deinterlacer.

A   Cycle aspect ratio override.

1 and 2
    Adjust contrast.

3 and 4
    Adjust brightness.

5 and 6
    Adjust gamma.

7 and 8
    Adjust saturation.

Alt-0
    Resize video window to half its original size.

Alt-1
    Resize video window to its original size.

Alt-2
    Resize video window to double its original size.

E   Cycle through editions.

  Movements and selections
The following keybindings are Emacs-like since most characters are taken by mpv(1).

Ctrl-p and Ctrl-n
    Move a single line up/down.

Alt-v and Ctrl-v
    Move a single page up/down.

Ctrl-< and Ctrl->
    Move to the beginning/end of the playlist.

Home and End
    Move to the beginning/end of the playlist.

Ctrl-Space
    Deselect/reselect the current entry and move down a line.

  Playlist manipulation

Ctrl-o
    Open playlist.

Ctrl-i
    Insert playlist.

Ctrl-f and Alt-f
    Search forward/backward for a pattern.

Alt-m
    Cycle through playing modes.

Delete
    Delete the current entry.

W   Save the current playlist under JSON format.

F5  Redraw the screen content.

:   Execute a mpv command.

FILES

~/.config/comp/settings.ini
    per user configuration file

EXAMPLES
Open a JSON playlist:
	comp -e json test/playlist.json
Open a Youtube playlist with video height lower than 720:
	comp -f '[height<720]' https://www.youtube.com/watch?list=PLnk14Iku8QM7R3ARnrj1TwYSZleF-i7jT

BUGS

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

AUTHOR
Written by Nguyễn Gia Phong.

SEE ALSO
mpv(1), youtube-dl(1)