pipe-viewer (search and stream videos from youtube)
pipe-viewer is a lightweight application for searching and streaming
videos from YouTube. pipe-viewer is a fork of youtube-viewer that
does not require a Google API key. Usage and user interface are
identical to youtube-viewer.
For playing videos, this uses mplayer, vlc, or mpv. However, the
mplayer that ships with Slackware has some issues with pipe-viewer
(or actually with youtube: the audio stream cuts out randomly, and
can be fixed by pressing the left arrow usually).
Optional dependencies:
vlc and/or mpv - for playing videos. highly recommended.
perl-Gtk3, perl-File-ShareDir - for gtk-pipe-viewer.
perl-lwp-useragent-cached - for local cache support.
perl-JSON-XS - for faster JSON deserialization.
perl-Text-CharWidth, perl-Unicode-LineBreak - for better formatting
in the terminal.
yt-dlp or youtube-dl [1] - if this is present, pipe-viewer will use it
to detect available formats for the video.
Counting optional ones, pipe-viewer has over 40 dependencies. To make
life easier, there's a "pipe-viewer.sqf" queue file included with this
build, which includes everything listed above (except mpv and vlc).
This build always includes the command-line client (pipe-viewer). For
the GTK client (gtk-pipe-viewer[3]), install perl-Gtk3 and
perl-File-ShareDir before running this script. If you have them
installed but don't want gtk-pipe-viewer, you can set GTK=no in the
script's environment.
Notes:
[1] A small caveat about yt-dlp and youtube-dl: pipe-viewer works
without them, though occasionally it'll choose a lower quality
than is available for some videos. However, if yt-dlp or
youtube-dl are present but outdated, pipe-viewer will fail to
play videos at all! If you suspect this, remove yt-dlp and/or
youtube-dl and try without them.
[3] To force gtk-pipe-viewer to use your preferred terminal for
downloading with wget and watching in a terminal, set
TERMINAL in the script's environment (e.g. TERMINAL="xterm" or
TERMINAL="urxvt").