| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allows for ranked preferences for h264, av1, and vp9 codecs in
settings, along with equal preferences which are tiebroken using
smaller file size.
For each quality, gives av-merge a list of video sources
and audio sources sorted based on preference & file size. It
will pick the first one that the browser supports.
Closes #84
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds support for AV1-encoded videos, which includes any videos
above 1080p. These weren't getting included because they did
not have a quality entry in the format table at the top of
watch_extraction.py. So get the quality from the quality
labels of the format if it's not there.
Because YouTube often includes BOTH AV1 and H.264 (AVC) for each
quality, after these are included, there will be way too many
quality options and the code needs to choose which one to use.
The choice is somewhat hard: AV1 is encoded in fewer bytes than
H.264 and is patent-free, however, it has less hardware support,
so might be more difficult to play. For instance, on my system,
AV1 does not work on 1080p, but H.264 does. Adds a setting about
which to prefer, set to H.264 as the default.
Also adds support for the lower quality mp4 audio quality, which
now gets used at 144p to save network bandwidth. For similar
reasons, this was not getting included because it did not
have an audio_bitrate entry in the table. Prefer bitrate
instead for the quality.
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
|
|
| |
pair_quality != uni_quality was the wrong condition to check,
since there are cases where the target_resolution is 360, and
there are no pair sources at 360, but there are some at other
resolutions, which would falsely select the pair sources.
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
|
| |
In the case where pair_sources is empty due to a playability
error, using_pair_sources will be assigned to pair_sources
(empty list) because of short circuiting. Make it a bool
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
|
| |
The number of inline code blocks and the dependencies between them
became unmanageable.
From 9d96c07a3c2e68f1893634574c3be64e41a2c041 Mon Sep 17 00:00:00 2001
From: James Taylor <user234683@users.noreply.github.com>
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
| |
This reverts commit d56df02e7b1eba86baf511289208295b1f6c5a50.
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
|
|
|
| |
For some phone videos, the dimensions of the video might be
e.g. 360x640 instead of 640x360, which would be compared as
though it was "640p", and thus no source would be chosen
if default quality is 360p. Use the 'quality' entry which will
always be 360 for that quality.
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
| |
|
|
|
|
| |
some videos have 480p resolution, and if setting only 360p the player would have no video to play
|
|
|
|
| |
This reverts commit cb9b6dadbd1c3e268e87cd8eac9097760b3526ab.
|
| |
|
|
|
|
|
|
|
| |
From
https://github.com/yt-dlp/yt-dlp/issues/574#issuecomment-887171136
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
|
|
|
|
| |
Otherwise error message language will be region of Tor exit node
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
get_video_info now returns 404 error. Adding html5=1 fixes it
(for now). See
https://github.com/ytdl-org/youtube-dl/issues/29086#issuecomment-844892791
Also handles 404 error if it arises so it will be non-fatal
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
| |
Forgot to change & to ? in previous commit changing to embed page
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
|
| |
The aggressive IP-blocking doesn't apply to embed pages
Fixes #47
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
| |
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
e.g. if the error in get_video_info is "Video unavailable" must
include the Accept-Language header (which we have in watch_headers)
in order to get an English error message. Otherwise we get the
language of the Tor exit node region
Example: https://youtu.be/aaaaaaaaaaa
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
| |
e.g. happens on vid where comments are disabled if comments
disabled in settings since the comments info object is just {}
Signed-off-by: Jesús <heckyel@hyperbola.info>
|
|
|
|
|
|
|
| |
Issue #36
From e51f0a78c778a2283887db7ffc22421a7c849296 Mon Sep 17 00:00:00 2001
From: James Taylor <user234683@users.noreply.github.com>
|
| |
|
|
|
|
|
|
| |
Youtube removed the url from the pbj responses. They are now
only in the html page. Replaces previous fix for the missing
base.js issue.
|
|
|
|
| |
Fixes failure mode 3 in #22
|
| |
|
| |
|
|
|
|
|
| |
Previous fix didn't work. Should work now. The non-embedded player
response can still be present but the urls will be missing.
|
|\ |
|
| |
| |
| |
| | |
Fixes failure mode 1 in #22
|
|/ |
|
| |
|
|
|
|
|
|
| |
This solution still makes sure the video doesn't jump in height
when it loads, and makes it so the video scales down properly in
aspect ratio as the browser window is made narrower.
|
|
|
|
|
| |
Using invidious isn't always successful, whereas Tor video routing
appears to be near 100% successful.
|
|
|
|
|
| |
Use true video height extracted from youtube to handle videos
shorter than their quality size. (e.g. widescreen videos)
|
|
|
|
|
|
|
|
|
|
| |
Includes non-tor video routing by default, so no more chances
of the browser leaking headers or user agent to googlevideo
Adjust settings upgrade system to facilitate change to route_tor
setting.
Add some more space on settings page for dropdown settings so does
not overflow due to options with long names.
Closes #7
|
| |
|
|
|
|
| |
When there's only an integer, and no unit, it's all in seconds
|
| |
|
|
|
|
| |
Generated from the video captions
|
|
|
|
|
|
|
| |
If none of the format urls for the former livestream are static,
meaning they use a non-livestream format playable by the browser,
then include the dialog for copying hte livestream format urls
into external video player
|