| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Such as when the playlist was deleted or doesn't exist
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Since there are no formats, it was retrying with the
non-embedded playerResponse, which resulted in the
hls_manifest_urls from the embedded player_response being
overwritten with None. So use conservative_update instead
|
|
|
|
|
| |
Also for livestreams which are over whose other sources
aren't present or aren't ready yet.
|
|
|
|
|
|
|
|
| |
Change so it extracts other stuff from regular playerResponse
Extract formats from embedded player response, but fallback to
regular one if that doesn't work.
Sometimes there is no 'player' at top_level and the urls are in
the regular playerResponse
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The base.js url format changed, so the identifier at the end
was no longer unique. So it was using the wrong cached decryption
function
Changes the identifier to just be the whole url so
this won't happen again.
|
|
|
|
|
| |
The 'cipher' parameter which contains the url is sometimes called
'signatureCipher' instead now.
|
|
|
|
| |
For faster usage of new identity button as an alternative
|
| |
|
| |
|
| |
|
|
|
|
| |
because of A/B test.
|
|
|
|
|
|
|
|
| |
If the extraction from watch page determines that they are
disabled, but the separate request for the comments found comments,
then change that determination, with a warning (since that would
be a bug). And set the comment count to None as a dirty way to
make such a bug noticeable.
|
|
|
|
| |
Youtube added some pointless variation in variable names
|
|
|
|
|
|
| |
Happens when there's an error on the page and there was no
visible stuff on the page. 'playlist' wasn't set to None in that
case.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
disabled/enabled in settings.
|
|
|
|
|
|
| |
Specifically, fix failures when any of the fields from the parsed
comment are None, such as author, author_url, etc.
(failure due to string concatenation when building urls).
|
|
|
|
|
|
| |
It would be 30 since the old method looked to see where the latest
video in the database is in the new batch of videos. New method
finds the first video in the new batch which is in the database.
|
|
|
|
|
|
|
| |
The try statement was missing an except clause. So if there
was an exception such as the tor browser being closed or
getting a 429 error during the request, the workers would
crash until there were none left to handle checking.
|
|
|
|
|
|
|
|
| |
On debian for instance, the default font DejaVu Sans is bigger
than the default calibri/times on Windows, messing up the layout
in some places. The font size in video items was adjusted
slightly to accomodate the change to liberation sans for the
default.
|
| |
|
|
|
|
|
| |
This is likely not a big deal since it is already assumed that video file server logs are not plugged into
Google's tracking infrastructure, but it doesn't hurt to give less info.
|
|
|
|
| |
Display a descriptive error message instead of a traceback
|
|
|
|
|
|
|
|
| |
The default urllib3 max redirect amount was set to 3. Change it to 10 and
do not fail if there is a problem with checking for URL access. Just print
the error to the console and proceed.
Also add an unrelated remark about the bcptr=9999999999 parameter in watch.py
|
|
|
|
|
| |
'ip_address' was not set when no formats are available
'allowed_countries' was set to None rather than [] in extract_desktop_info which it turns out is the function that gets used in these cases
|
|
|
|
| |
working directory is not the directory of the program
|
|
|
|
| |
Because the invidious formats don't have all the information
|
|
|
|
| |
Should help with debugging various content blocks
|
|
|
|
| |
The New Identity button suffices to get the socks proxy to use a new exit node.
|
|
|
|
| |
403 errors on the video urls happen typically when a video has copyrighted content or was livestreamed originally. They appear to not happen (or at least happen less frequently) if the Tor exit node used ipv6, however.
|
|
|
|
| |
the youtube-dl formats table doesn't have all the necessary information
|
|
|
|
|
|
| |
These occur when too many requests are coming from a Tor exit node.
Before, there would be an error page with an exception instructing users to report the issue.
But this is an expected and persistent issue.
|
|
|
|
|
|
|
|
| |
The function body regex was capturing some unrelated new code before the actual function body. Example:
`function(a){a=a.split("");var b=[function(c,d){d=(d%c.length+c.length)%c.length;c.splice(-d).reverse().forEach(function(e){return c.unshift(e)}`
If you look closely, the closing bracket doesn't match the opening one. I have added `{` to the `[^\}]+` part to make sure it only captures matching brackets. Additionally, I've added `return a\.join\(""\)` to the end for good measure.
|
|
|
|
|
|
| |
playlist is chosen when using "add to playlist"
See #4
|
| |
|
| |
|
|
|
|
| |
Also change superfluous use of multi_get to item.get nearby
|
|
|
|
|
| |
By checking first if it's in item_types rather than checking if it can be dug into first.
For example: this allows extracting things like sectionListRenderer
|
|
|
|
|
|
| |
independently
extract_items_from_renderer will extract given just a renderer rather than a response
|
|
|
|
|
|
|
| |
Change usage of multi_deep_get to multi_get where possible
Remove checking of type from calls to get functions (because it's very unlikely Youtube suddenly changes the type without changing the name of the variable or anything, and it takes up unnecessary space)
Remove all default=None arguments from get functions, since those are superflous.
Remove list_types constant since it's no longer in use.
|
| |
|
| |
|
|
|
|
| |
Philosophically, a channel doesn't create itself.
|