| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
page > 1 still broken when sorting by oldest
|
|
|
|
|
|
|
| |
Try to make the names more consistent and more descriptive.
Remove unused functions to reduce confusing clutter
Change locals() to globals(). Overwriting locals is invalid, just
works because it was at top level.
|
|
|
|
|
| |
Instead of the load event, which waits until all assets are
finished loading in order for script to start.
|
| |
|
|\
| |
| | |
add hotkeys.js
|
|/ |
|
|\ |
|
| |\
| | |
| | | |
Support python >= 3.8 and allow for simpler packaging
|
| | |
| | |
| | |
| | |
| | |
| | | |
In python 3.8, specific constant AST types are removed in favor of
ast.Constant. This change should work for both cases. See
https://bugs.python.org/issue32892 for the given rationale.
|
| |/ |
|
|/ |
|
| |
|
|
|
|
|
| |
headers_1 -> headers_desktop
headers_pbj -> headers_mobile
|
| |
|
|
|
|
|
| |
Sorting by old for pages > 1 currently broken on some channels;
it's still using the mobile endpoint.
|
|
|
|
|
| |
This was causing an exception in subscriptions when it tried
to estimate the unix timestamp for the upload time
|
| |
|
|
|
|
| |
gevent was changed and now depends on it for some reason
|
| |
|
| |
|
|
|
|
| |
See https://github.com/iv-org/invidious/issues/1319#issuecomment-671732646
|
|
|
|
|
|
|
|
|
|
|
|
| |
[something]Continuation renderers, all of which are junk
except one. Check the items in each one until the one which
contains the items being sought is found.
The usage in extract_comments_info needed to be changed to
specify the items being sought. It was unspecified before which
is strictly incorrect since extract_items by default looks for
video/playlist/channel thumbnail items. It was relying on this
special case for continuations. But now that wouldn't work
anymore.
|
|
|
|
|
|
|
|
| |
Use extract_str function since it's not always 'simpleText'
Make sure we don't output an empty error message if we don't
know what it is.
channel.py: Don't check if error message is empty, check if it's
None
|
| |
|
|
|
|
|
|
| |
Example: 30 vids in DB, 1 vid that we previously saw has since been
deleted. Then on checking, the vid in the 30th slot appeared
to be new.
|
|
|
|
| |
When there's only an integer, and no unit, it's all in seconds
|
| |
|
|
|
|
| |
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.
|
|
|
|
| |
The parameters weren't passed to the underlying function
|
| |
|
| |
|
| |
|