straw-viewer (search and stream videos from youtube) straw-viewer is a lightweight application for searching and streaming videos from YouTube, using the API of invidio.us[2]. The project is in its early development stages and some features are not implemented yet. straw-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 14.2 has some issues with straw-viewer (or actually with youtube: the audio stream cuts out randomly, and can be fixed by pressing the left arrow usually). Using vlc or mpv is highly recommended. Optional dependencies: perl-Gtk3, perl-File-ShareDir - for gtk-straw-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. perl-Term-ReadLine-Gnu - for command editing/history in the terminal. youtube-dl [1] - if this is present, straw-viewer will use it to detect available formats for the video. Counting optional ones, straw-viewer has over 40 dependencies. To make life easier, there's a "straw-viewer.sqf" queue file included with this build, which includes everything listed above. This build always includes the command-line client (straw-viewer). For the GTK client (gtk-straw-viewer[3]), install perl-Gtk3 and perl-File-ShareDir before running this script. If you have them installed but don't want gtk-straw-viewer, you can set GTK=no in the script's environment. Notes: [1] A small caveat about youtube-dl: straw-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, straw-viewer will fail to play videos at all! If you suspect this, remove youtube-dl and try without it. [2] The default API host is http://invidious.snopyta.org. If you get "Bad gateway" or "Too many requests" errors, try changing the api_host in ~/.config/straw-viewer/straw-viewer.conf or via the --api-host option. A list of API hosts can be found at: https://instances.invidio.us/ [3] To force gtk-straw-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").