aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* - Stricter selection of a random invidious instance (with api_host => "auto").trizen2020-11-092-4/+34
| | | | | | | | Ensure that a randomly selected invidious actually works, by making a search request with keyword "test". Additionally, in the selection of instances, only include instances with "weeklyRatio = success" and "dailyRatios[0] = "success" (in addition to "statusClass = sucess"). Signed-off-by: Jesús <heckyel@hyperbola.info>
* Don't cache if "cache-control" says "no-cache".trizen2020-11-091-2/+2
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Pick and set a random invidious instance when the current instance is down.trizen2020-11-091-1/+1
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - When `api_host => "auto"`, ignore invidious instances with "monitor" ↵trizen2020-11-091-3/+12
| | | | | | | | disabled or with non-success "statusClass". Only when there is no good instance to choose, we then also consider selecting from the instances with "monitor" disabled. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Fixed some potential corner-cases in the selection of thumbnails.trizen2020-11-091-6/+17
| | | | | | Also fixes the thumbnails for mixes. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Mention "pipe-viewer" in README. - Allow channel usernames in YouTube URLs ↵trizen2020-11-093-45/+20
| | | | | | to contain encoded characters of the form "%FF". - Removed some dead code. Signed-off-by: Jesús <heckyel@hyperbola.info>
* gtk: added the "Video License" combobox.trizen2020-11-091-1/+1
| | | | | | | | | It allows searching only for videos with Creative-Commons license. - Added tooltips for the comboboxes in the gtk version. - Several internal improvements. Signed-off-by: Jesús <heckyel@hyperbola.info>
* Better detection for HFR (High Frame Rate) videos.trizen2020-11-091-5/+6
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Filter out streams with "dur=0.000"trizen2020-11-091-2/+5
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Fixed the `dash_segmented` config-option.trizen2020-11-091-1/+1
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Fix previous commit.trizen2020-11-091-2/+2
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Fixed the "403: Forbidden" errors for newly uploaded videos on unpopular ↵trizen2020-11-091-0/+10
| | | | | | | | channels. When "dashManifestUrl" or "sc=yes" is detected, we now use the fallback extraction method (hypervideo or invidious instances). Signed-off-by: Jesús <heckyel@hyperbola.info>
* - allow "invidious.snopyta.org" with `--api=auto`, as it seems to work ↵trizen2020-11-091-1/+2
| | | | | | better now. - ignore the broken instance "invidious.kavin.rocks" with `--api=auto`. Signed-off-by: Jesús <heckyel@hyperbola.info>
* Update from upstreamJesús2020-11-092-38/+14
| | | | | | | | - Documented the configuration options in `man fair-viewer`. - Fixed the `--page=i` option. - Added the `--dimension=3d` option. - Added the `--license=creative_commons` option. - Some code clean-up.
* - Implemented support for trending categories.trizen2020-11-095-74/+31
| | | | | | | | | | | | | | Example: fair-viewer --trending # trending videos fair-viewer --trending=music # trending music videos fair-viewer -c # list trending categories In the Gtk version, the trending categories are listed in the "Categories" tab. - Several internal code tweaks and improvements. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Implemented support for searching for videos from a specific channel.trizen2020-11-091-5/+17
| | | | | | | | | | Example: fair-viewer --author=SomeYouTubeUsername keywords-here In gtk-fair-viwer this is implemented via the "From author" field. Signed-off-by: Jesús <heckyel@hyperbola.info>
* Implemented support for popular videos.trizen2020-11-093-25/+20
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Added the "ignore_av1" config-option. (disabled by default)trizen2020-11-092-71/+68
| | | | | | When enabled, videos in AV1 format will be ignored. It's recommended to be enabled on slow hardware. Signed-off-by: Jesús <heckyel@hyperbola.info>
* update from upstreamJesús2020-11-091-3/+8
|
* Use the video description from the `description` field when ↵trizen2020-10-031-0/+4
| | | | | | `descriptionHtml` is empty. Signed-off-by: Jesús <heckyel@hyperbola.info>
* quotemeta() the filename of the cookie file when passing it to `hypervideo`.trizen2020-09-282-6/+5
| | | | | | This now allows the filename to contain shell metacharacters. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Implemented `sort_by` and `date` parameters for `/search`. ↵trizen2020-09-285-105/+105
| | | | | | | | | | | | | | | (https://github.com/iv-org/invidious/wiki/API#get-apiv1search) In the CLI version, we have: --order=s # valid values: relevance rating upload_date view_count --date=s # valid values: hour today week month year In the GTK3 version, this is implemented in the "Order by" and "Published within" comboboxes. Also implemented the `--hd`, `--captions` and `--region=s` options. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - During `--debug`, display the invidious instances found. - Also allow ↵trizen2020-09-281-2/+6
| | | | | | "invidiou.site" in the list of instances. It seems to be working OK now. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Added instance-caching for `_get_video_info()`, `_extract_from_ytdl()` and ↵trizen2020-09-282-1/+9
| | | | | | | | | | | | `_extract_from_invidious()`. Too many requests to `_get_video_info()` and/or `hypervideo` may lead to a "429 - Too Many Requests" issue. Caching these functions may help to prevent this a little bit. Also playing the same video twice, the second time it will load much faster, since `_get_video_info()` is cached. Signed-off-by: Jesús <heckyel@hyperbola.info>
* gtk: fixed thumbnails for related videos.trizen2020-09-141-3/+11
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Suggest trying "--api=auto" when the current invidious instance fails.trizen2020-09-141-4/+4
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Reuse the "WWW::FairViewer" in "WWW::FairViewer::GetCaption".trizen2020-09-141-37/+9
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Added support for loading cookies from a file.trizen2020-09-141-37/+81
| | | | | | | | | | | | The file must be a "# Netscape HTTP Cookie File"; same format as "hypervideo" requires. The "cookies.txt" extension can be used for exporting the cookies from the browser. This helps with the "429: Too Many Requests" issue. See also: https://github.com/ytdl-org/hypervideo#how-do-i-pass-cookies-to-hypervideo Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Use random instances in `_extract_from_invidious()`.trizen2020-09-141-8/+37
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Ignore the non-working: invidiou.site and invidious.toot.koeln.trizen2020-09-141-0/+2
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* With `--api=auto`, ignore "invidious.snopyta.org". Seems to be too slow.trizen2020-09-141-1/+4
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Documented `--api=auto`.trizen2020-09-141-1/+2
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Added support for automatically picking an invidious instance.trizen2020-09-141-9/+87
| | | | | | | | | | | | | | | | Provided via: fair-viewer --api=auto or by setting in the configuration file: api_host => "auto", The list of instances ("instances.json") is cached locally and updated automatically every hour. In order to distribute the load evenly across the invidious instances, when "api_host" is set to "auto", fair-viewer will pick a random instance every time the program is started. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - No longer prefer a specific version of TLS.trizen2020-09-141-1/+1
| | | | | | Defaults to TLS v1.3 if available. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Fixed the support for closed-captions for some videos.trizen2020-09-141-2/+1
| | | | | | Also fixes the JSON warning ", or } expected while parsing object/hash". (closes https://github.com/trizen/fair-viewer/issues/21) Signed-off-by: Jesús <heckyel@hyperbola.info>
* When `prefer_mp4` is true and there is no AVC MP4 available, prefer VP9 over ↵trizen2020-08-141-3/+5
| | | | | | AV1. Much faster to decode. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Changed the default API host to `invidious.snopyta.org`.trizen2020-08-141-2/+8
| | | | | | The instance `invidio.us` seems to be down at the moment. Signed-off-by: Jesús <heckyel@hyperbola.info>
* Minor code simplification in Utils.pmtrizen2020-08-071-3/+1
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* In description, handle decoding of `youtu.be` links and other internal URLs.trizen2020-08-071-0/+10
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Minor fix in the decoding of URLs in video description.trizen2020-08-071-1/+6
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Starting with September 30th, use "invidious.snopyta.org" instead.trizen2020-08-071-1/+7
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Use the ".opus" extension for audio streams.trizen2020-07-271-1/+2
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Allow YouTube URLs to be passed to `--id`.trizen2020-07-271-1/+1
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* Minor code simplification.trizen2020-07-271-15/+12
| | | | Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Added support for ignoring high frame rate (HFR) videos.trizen2020-07-272-106/+92
| | | | | | | | | | | | Implemented via the `hfr` config-option. When set to "0", HFR videos will be ignored. Also available as a command-line option: $ fair-viewer --no-hfr By default, `hfr` is set to "1". Signed-off-by: Jesús <heckyel@hyperbola.info>
* Version 1.0.4Jesús2020-06-241-1/+1
|
* Handle some potential corner cases.trizen2020-06-151-1/+1
|
* - Added a fallback method for extracting video information. - Decode ↵trizen2020-06-062-2/+62
| | | | | | internal YouTube URLs in description. - Various fixes and improvements. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Filter out recommended videos from related videos.trizen2020-06-061-0/+7
| | | | | | Most often, they are not even related to the given video ID. Signed-off-by: Jesús <heckyel@hyperbola.info>
* - Added basic support for related videos. (fixes ↵trizen2020-06-062-3/+93
| | | | | | | | | | | | | | https://github.com/trizen/straw-viewer/issues/15) Example: fair-viewer --related [video-id / URL] This also implements support for `--autoplay`, which is based on related videos. Thanks to @aearil for reporting this issue. Signed-off-by: Jesús <heckyel@hyperbola.info>