youtube-viewer (browse YouTube videos from a terminal or GTK UI)
Youtube Viewer is a dedicated application for searching, viewing, and
downloading Youtube videos, using wget for downloading and MPlayer for
viewing. It has been written in Perl and plays videos from Youtube at
the best quality available without using a flash player.
*********
Note: Google has revoked the API key formerly used by youtube-viewer. To
use this, you'll have to create a Google account and register for an API
key. See /usr/doc/youtube-viewer-$VERSION/README.md for instructions.
See https://github.com/trizen/youtube-viewer/issues/308 for more
information.
If you don't like this restriction, try using straw-viewer instead.
*********
Optional dependencies:
perl-gtk2, perl-File-ShareDir - for gtk2-youtube-viewer.
perl-Gtk3, perl-File-ShareDir, perl-List-MoreUtils - for gtk3-youtube-viewer.
perl-Text-CharWidth, perl-Unicode-LineBreak - for better formatting
in the terminal.
perl-Term-ReadLine-Gnu - for command editing/history in the terminal.
youtube-dl [2] - if this is present, youtube-viewer will use it to detect
available formats for the video.
Counting optional ones, youtube-viewer has over 40 dependencies. To make
life easier, there's now a "youtube-viewer.sqf" queue file included with
this build, which includes everything listed above.
[1] A small caveat about youtube-dl: youtube-viewer works without it,
though occasionally it'll choose a lower quality than is available
for some videos. However, if youtube-dl is present but outdated,
youtube-viewer will fail to play videos at all! If you suspect this,
remove youtube-dl and try without it.
This build always includes the command-line client (youtube-viewer). For
the GTK client (gtk-youtube-viewer), install perl-gtk2 and
perl-File-ShareDir before running this script. If you have them installed
but don't want gtk-youtube-viewer, you can set GTK=no in the script's
environment.
To force gtk-youtube-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").
When upgrading to 3.2.4, I had to remove my old config file to get the new
gtk-youtube-viewer to work correctly. If you have issues after an upgrade:
rm -f ~/.config/youtube-viewer/gtk-youtube-viewer.conf