aboutsummaryrefslogtreecommitdiffstats
path: root/youtube
Commit message (Collapse)AuthorAgeFilesLines
* Add video transcript to downloadsJames Taylor2020-07-252-1/+90
| | | | Generated from the video captions
* Include livestream fmt urls for former livestream w/o static urlsJames Taylor2020-06-281-1/+13
| | | | | | | 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
* Fix hls_manifest_url not included when there's no other formatsJames Taylor2020-06-281-2/+6
| | | | | | | 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
* Add dialog for copying urls to external player for livestreamsJames Taylor2020-06-284-12/+101
| | | | | Also for livestreams which are over whose other sources aren't present or aren't ready yet.
* Handle case where embedded player response missingJames Taylor2020-06-281-2/+10
| | | | | | | | 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
* Do not override previous playability error if unknownJames Taylor2020-06-281-1/+1
|
* Fix previously live videos labeled as liveJames Taylor2020-05-291-1/+3
|
* Fix broken signature decryptionJames Taylor2020-05-271-1/+2
| | | | | | | | | 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.
* Fix urls sometimes not extracted due to youtube changesJames Taylor2020-05-271-1/+2
| | | | | The 'cipher' parameter which contains the url is sometimes called 'signatureCipher' instead now.
* Add option for reloading video without invidiousJames Taylor2020-05-272-40/+56
| | | | For faster usage of new identity button as an alternative
* Fix error when invidious fails to return URLSJames Taylor2020-05-271-1/+1
|
* Fix error getting exit node ip if format urls are NoneJames Taylor2020-05-271-1/+1
|
* Indicate that video is liveJames Taylor2020-05-272-0/+4
|
* Fix comment count & disabled extraction not working sometimesJames Taylor2020-04-101-3/+14
| | | | because of A/B test.
* Do not hide comments if false determination of disabled commentsJames Taylor2020-04-101-0/+9
| | | | | | | | 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.
* Fix related video extraction sometimes failingJames Taylor2020-04-101-2/+10
| | | | Youtube added some pointless variation in variable names
* Fix exception due to missing 'playlist' key in extracted infoJames Taylor2020-04-051-0/+3
| | | | | | 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.
* Fix error when there's a video format with mimetype class of 'text'James Taylor2020-04-041-1/+1
|
* Add playlist sidebar for videos in playlist, including autoplayJames Taylor2020-04-046-30/+299
|
* Fix regression: local playlist form not shown on channel videos pageJames Taylor2020-03-291-0/+1
|
* Prevent long titles with no spaces overflowing item containersJames Taylor2020-03-201-1/+8
|
* Correctly start and stop subscriptions autochecker when it isJames Taylor2020-03-081-41/+56
| | | | disabled/enabled in settings.
* Fix failure to parse comments when there's one from deleted channelJames Taylor2020-03-082-12/+32
| | | | | | 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).
* Fix subscriptions new video count when there are deleted videosJames Taylor2020-02-271-16/+13
| | | | | | 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.
* Fix subscription checking breaking due to workers crashingJames Taylor2020-02-231-0/+2
| | | | | | | 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.
* Specify default font for consistency between operating systemsJames Taylor2020-02-221-3/+7
| | | | | | | | 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.
* Change px values to rem values in font-size declarationsJames Taylor2020-02-224-7/+7
|
* Ensure urllib3 and python version not leaked during video file checkJames Taylor2020-02-181-1/+2
| | | | | 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.
* Subscriptions auto-checking: Better console error message for 429 errorsJames Taylor2020-02-181-3/+23
| | | | Display a descriptive error message instead of a traceback
* Fix MaxRetryError when checking for video URL accessJames Taylor2020-02-182-4/+22
| | | | | | | | 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
* yt_data_extract: fix missing variables in info for unavailable videosJames Taylor2020-02-171-2/+3
| | | | | '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
* Fix FileNotFound error when trying to download search plugin when the ↵James Taylor2020-02-061-1/+2
| | | | working directory is not the directory of the program
* Invidious fallback: Use original format info and just substitute invidious urlsJames Taylor2020-02-041-23/+13
| | | | Because the invidious formats don't have all the information
* Watch page: add info box with allowed countries and tor exit nodeJames Taylor2020-02-013-0/+41
| | | | Should help with debugging various content blocks
* Adjust 429 error message. A Tor Browser restart is not required.James Taylor2020-02-011-2/+2
| | | | The New Identity button suffices to get the socks proxy to use a new exit node.
* Check for 403 errors and fallback on InvidiousJames Taylor2020-02-013-1/+63
| | | | 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.
* yt_data_extract: parse mimeType field for codecsJames Taylor2020-02-011-0/+27
| | | | the youtube-dl formats table doesn't have all the necessary information
* Give a proper error message for 429 errorsJames Taylor2020-01-316-3/+49
| | | | | | 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.
* Fix signature decryption.James Taylor2020-01-241-1/+1
| | | | | | | | 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.
* local playlists: Display error message if no videos are selected or no ↵James Taylor2020-01-191-0/+10
| | | | | | playlist is chosen when using "add to playlist" See #4
* Fix display of movie thumbnails in related videosJames Taylor2020-01-101-0/+1
|
* Fix playlist id extraction for radio renderersJames Taylor2019-12-311-1/+1
|
* Extraction: Correctly extract view_count for vids with 0 views.James Taylor2019-12-301-1/+9
| | | | Also change superfluous use of multi_get to item.get nearby
* extract_items: allow extracting items that are normally dug into for moreJames Taylor2019-12-261-5/+5
| | | | | 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
* yt_data_extract: Split up extract_items so renderer extraction works ↵James Taylor2019-12-261-47/+48
| | | | | | independently extract_items_from_renderer will extract given just a renderer rather than a response
* yt_data_extract.common: Simplify usage of get functions and remove dead codeJames Taylor2019-12-261-18/+11
| | | | | | | 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.
* yt_data_extract: Simplify extract_items so it needs only 1 while loopJames Taylor2019-12-261-32/+31
|
* items: commatize channel video count and playlist video countJames Taylor2019-12-241-2/+2
|
* extract_item_info: Don't extract author, author_id, etc. for channel itemsJames Taylor2019-12-241-7/+8
| | | | Philosophically, a channel doesn't create itself.
* Fix extract_approx_int not working for non-approx ints, make extract_int ↵James Taylor2019-12-241-2/+2
| | | | | | | | more robust For example, "354 subscribers" wasn't being extracted correctly be extract_approx_int. Make extract_approx_int and extract_int only extract integers that are words. So e.g. 342 will not be extracted from internetuser342