## fair-viewer A lightweight application (fork of [youtube-viewer](https://github.com/trizen/youtube-viewer)) for searching and playing videos from YouTube, using the [API](https://github.com/iv-org/invidious/wiki/API) of [invidio.us](https://invidio.us/) and [hypervideo](https://framagit.org/heckyel/hypervideo) support. ### fair-viewer * command-line interface to YouTube. ![fair-viewer](https://user-images.githubusercontent.com/614513/97738550-6d0faf00-1ad6-11eb-84ec-d37f28073d9d.png) ### gtk-fair-viewer * GTK+ interface to YouTube. ![gtk-fair-viewer](https://user-images.githubusercontent.com/614513/73087694-93ffdb80-3edb-11ea-8fea-05901d72f68d.png) ### STATUS The project is in its early stages of development and some features are not implemented yet. ### TRY For trying the latest commit of `fair-viewer`, without installing it, execute the following commands: ```console cd /tmp wget https://libregit.org/heckyel/fair-viewer/archive/master.zip -O fair-viewer-master.zip unzip -n fair-viewer-master.zip cd fair-viewer-master/bin perl -pi -ne 's{DEVEL = 0}{DEVEL = 1}' {gtk-,}fair-viewer ./fair-viewer ``` ### INSTALLATION To install `fair-viewer`, run: ```console perl Build.PL sudo ./Build installdeps sudo ./Build install ``` To install `gtk-fair-viewer` along with `fair-viewer`, run: ```console perl Build.PL --gtk sudo ./Build installdeps sudo ./Build install ``` ### CONFIGURATIONS for `fair-viewer`, run: ```console nano -w "$HOME/.config/fair-viewer/fair-viewer.conf" ``` for `gtk-fair-viewer`, run: ```console nano -w "$HOME/.config/fair-viewer/gtk-fair-viewer.conf" ``` ### DEPENDENCIES #### For fair-viewer: * [libwww-perl](https://metacpan.org/release/libwww-perl) * [LWP::Protocol::https](https://metacpan.org/release/LWP-Protocol-https) * [Data::Dump](https://metacpan.org/release/Data-Dump) * [JSON](https://metacpan.org/release/JSON) #### For gtk-fair-viewer: * [Gtk3](https://metacpan.org/release/Gtk3) * [File::ShareDir](https://metacpan.org/release/File-ShareDir) * \+ the dependencies required by fair-viewer. #### Build dependencies: * [Module::Build](https://metacpan.org/pod/Module::Build) #### Optional dependencies: * Local cache support: [LWP::UserAgent::Cached](https://metacpan.org/release/LWP-UserAgent-Cached) * Better STDIN support (+ history): [Term::ReadLine::Gnu](https://metacpan.org/release/Term-ReadLine-Gnu) * Faster JSON deserialization: [JSON::XS](https://metacpan.org/release/JSON-XS) * Fixed-width formatting (--fixed-width, -W): [Unicode::LineBreak](https://metacpan.org/release/Unicode-LineBreak) or [Text::CharWidth](https://metacpan.org/release/Text-CharWidth) ### PACKAGING To package this application, run the following commands: ```console perl Build.PL --destdir "/my/package/path" --installdirs vendor [--gtk] ./Build test ./Build install --install_path script=/usr/bin ``` ### INVIDIOUS INSTANCES Sometimes, the default instance, [invidious.snopyta.org](https://invidious.snopyta.org/), may fail to work properly. When this happens, we can change the API host to some other instance of invidious, such as [invidious.tube](https://invidious.tube/): ```console fair-viewer --api=invidious.tube ``` To make the change permanent, set in the configuration file: ```perl api_host => "invidious.tube", ``` Alternatively, the following will automatically pick a random invidious instance everytime the program is started: ```perl api_host => "auto", ``` The available instances are listed at: https://instances.invidio.us/ ### PIPE-VIEWER [pipe-viewer](https://github.com/trizen/pipe-viewer) is an experimental fork of `straw-viewer` with the goal of parsing the YouTube website directly, and thus it may be a faster and more reliable alternative. ### SUPPORT AND DOCUMENTATION After installing, you can find documentation with the following commands: man fair-viewer perldoc WWW::FairViewer ### LICENSE AND COPYRIGHT Copyright (C) 2012-2020 Trizen Copyright (C) 2020 Jesus This program is free software; you can redistribute it and/or modify it under the terms of either: the [GNU General Public License](LICENSE) as published by the Free Software Foundation; or the [Artistic License](Artistic-2.0.txt). See http://dev.perl.org/licenses/ for more information.