3ffe5d0120
Add setting for tor_port
user938120
2020-09-19 12:23:30 +00:00
753f6c5389
Jump video to timestamp in description or comments
James Taylor
2020-09-18 17:32:28 -07:00
e9989af03a
Add tor video routing 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
James Taylor
2020-09-18 14:37:24 -07:00
1ff97bfde1
New ctoken format. Fix channel pages > 1. page > 1 still broken when sorting by oldest
James Taylor
2020-09-17 20:56:41 -07:00
0830468bd1
style transcript div
zrose584
2020-09-15 20:57:11 +02:00
e2e1e4cdec
settings.py: make names less confusing and remove dead code 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.
James Taylor
2020-09-14 08:20:15 -07:00
0be0a59a2a
transcript-table: show transcript as contiguous text by default
zrose584
2020-09-12 13:22:46 +02:00
57978485ee
let jinja create the transcript <details> element
zrose584
2020-09-12 10:51:01 +02:00
537a8e8ab5
transcript-table.js: sync active transcript with select_tt
zrose584
2020-09-12 10:23:31 +02:00
081058c07e
default to last textTrack
zrose584
2020-09-12 10:20:43 +02:00
8222b6205b
hotkeys.js: ignore if e.ctrlKey
zrose584
2020-09-12 10:17:56 +02:00
94ece08a1e
hotkeys.js: add 'c' for transcript
zrose584
2020-09-11 21:21:56 +02:00
786d3eb445
hotkeys.js: use DOMContentLoaded so images don't delay script Instead of the load event, which waits until all assets are finished loading in order for script to start.
James Taylor
2020-09-09 19:00:19 -07:00
c2ca47c5d3
Add setting to enable/disable video hotkeys
James Taylor
2020-09-09 18:53:11 -07:00
75171b7bd5
Merge pull request #13 from zrose584/master
James Taylor
2020-09-09 18:37:29 -07:00
ec98348018
generate_release.py: Use wine to build windows releases on Linux
James Taylor
2020-08-12 19:18:34 -07:00
27300d0e7d
channel: Rename headers_1&headers_pbj & include user agents in them headers_1 -> headers_desktop headers_pbj -> headers_mobile
James Taylor
2020-08-12 15:05:31 -07:00
5637d4f430
channel_ctoken_desktop: fix parenthesis formatting
James Taylor
2020-08-12 14:55:51 -07:00
ac9b7f0162
Switch to desktop endpnt w/ new ctoken format except sort by old>1 Sorting by old for pages > 1 currently broken on some channels; it's still using the mobile endpoint.
James Taylor
2020-08-12 14:46:29 -07:00
4bedf55461
yt_data_extract: Fix time_published picking up 'Streaming' string This was causing an exception in subscriptions when it tried to estimate the unix timestamp for the upload time
James Taylor
2020-08-12 14:40:47 -07:00
3a07a87c88
Don't log noisy thumbnail and avatar requests in the console
James Taylor
2020-08-12 14:37:32 -07:00
3fccc39e32
generate_release.py: Don't uninstall setuptools gevent was changed and now depends on it for some reason
James Taylor
2020-08-11 22:54:13 -07:00
bd255a9ab0
Don't use brotli if import fails
James Taylor
2020-08-11 21:57:40 -07:00
cc123d6761
Fix author_url not prefixed in subscriptions page
James Taylor
2020-08-11 21:14:13 -07:00
fa61874f97
extract_items: Handle case where continuation has multiple [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.
James Taylor
2020-08-11 19:59:25 -07:00
81ff5ab99c
extract_channel_info: Improve error extraction 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
James Taylor
2020-08-11 19:47:37 -07:00
804ed093ee
Update README
James Taylor
2020-08-10 19:53:22 -07:00
4d3e35c981
Fix old videos appearing in subscriptions when channel deletes vids 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.
James Taylor
2020-08-03 14:52:55 -07:00
b3b48967c5
Bugfix: Support integer-only ?t param When there's only an integer, and no unit, it's all in seconds
James Taylor
2020-07-30 13:07:16 -07:00
e78d239323
Add support for &t parameter
James Taylor
2020-07-25 21:25:23 -07:00
a7ff3a5217
Playlist page: Fix error on failure to extract playlist title Such as when the playlist was deleted or doesn't exist
James Taylor
2020-07-25 21:03:42 -07:00
9fc347e093
Add video transcript to downloads Generated from the video captions
James Taylor
2020-07-25 19:40:37 -07:00
44d7f9da99
Include livestream fmt urls for former livestream w/o static urls 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
James Taylor
2020-06-28 18:20:47 -07:00
803c901445
Fix hls_manifest_url not included when there's no other formats 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
James Taylor
2020-06-28 18:18:04 -07:00
aa3e5aa441
Add dialog for copying urls to external player for livestreams Also for livestreams which are over whose other sources aren't present or aren't ready yet.
James Taylor
2020-06-28 17:52:24 -07:00
6e14a8547d
Handle case where embedded player response missing 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
James Taylor
2020-06-28 13:18:54 -07:00
0b5d6fe1ed
Do not override previous playability error if unknown
James Taylor
2020-06-28 12:46:04 -07:00
b4450ec4bb
Fix previously live videos labeled as live
James Taylor
2020-05-29 15:34:33 -07:00
bdac6a2302
Fix broken signature decryption
James Taylor
2020-05-27 12:15:41 -07:00
85db7e46ed
Fix urls sometimes not extracted due to youtube changes The 'cipher' parameter which contains the url is sometimes called 'signatureCipher' instead now.
James Taylor
2020-05-27 11:56:30 -07:00
d7a4b03fdf
Add option for reloading video without invidious For faster usage of new identity button as an alternative
James Taylor
2020-05-27 11:55:47 -07:00
3d5293ba4a
Fix error when invidious fails to return URLS
James Taylor
2020-05-27 11:19:39 -07:00
f1f77c4d77
Fix error getting exit node ip if format urls are None
James Taylor
2020-05-27 11:14:52 -07:00
d5e661dfd3
Indicate that video is live
James Taylor
2020-05-27 11:14:19 -07:00
b2f482f1fb
Fix comment count & disabled extraction not working sometimes because of A/B test.
James Taylor
2020-04-10 13:57:11 -07:00
481b4ecf58
Do not hide comments if false determination of disabled comments 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.
James Taylor
2020-04-10 13:25:40 -07:00
1224dd88a3
Fix related video extraction sometimes failing Youtube added some pointless variation in variable names
James Taylor
2020-04-10 13:09:38 -07:00
3e09193eaf
Fix exception due to missing 'playlist' key in extracted info 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.
James Taylor
2020-04-05 17:27:43 -07:00
dd5c9a5d41
Fix parameters being ignored in youtu.be links The parameters weren't passed to the underlying function
James Taylor
2020-04-05 17:26:48 -07:00
4d9d8cec6f
Fix error when there's a video format with mimetype class of 'text'
James Taylor
2020-04-04 22:53:49 -07:00
5554d5afff
Add playlist sidebar for videos in playlist, including autoplay
James Taylor
2020-04-04 22:52:09 -07:00
b5d42e2f3c
Fix regression: local playlist form not shown on channel videos page
James Taylor
2020-03-29 15:00:53 -07:00
d1bdbf4269
Prevent long titles with no spaces overflowing item containers
James Taylor
2020-03-20 22:08:42 -07:00
408a9c79ae
Correctly start and stop subscriptions autochecker when it is disabled/enabled in settings.
James Taylor
2020-03-08 21:01:15 -07:00
56e7751da7
Fix failure to parse comments when there's one from deleted channel
James Taylor
2020-03-08 16:17:04 -07:00
fa112592fa
Correct malformed query strings: change ? to & so flask parses it correctly.
James Taylor
2020-03-08 13:40:32 -07:00
af334a8ac7
Fix subscriptions new video count when there are deleted videos 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.
James Taylor
2020-02-27 11:21:42 -08:00
c6fe9b8fc7
Fix subscription checking breaking due to workers crashing
James Taylor
2020-02-23 10:42:13 -08:00
77c4d913ca
Specify default font for consistency between operating systems
James Taylor
2020-02-22 22:53:24 -08:00
00cf61d625
Change px values to rem values in font-size declarations
James Taylor
2020-02-22 22:14:11 -08:00
0989d55db1
Ensure urllib3 and python version not leaked during video file check 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.
James Taylor
2020-02-18 22:17:50 -08:00
3beb2809ae
Subscriptions auto-checking: Better console error message for 429 errors Display a descriptive error message instead of a traceback
James Taylor
2020-02-18 20:42:41 -08:00
f253247949
Fix MaxRetryError when checking for video URL access 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.
James Taylor
2020-02-18 11:47:23 -08:00
8c2b81094e
yt_data_extract: fix missing variables in info for unavailable videos '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
James Taylor
2020-02-17 20:15:59 -08:00
6f28d959f0
Fix FileNotFound error when trying to download search plugin when the working directory is not the directory of the program
James Taylor
2020-02-06 22:17:58 -08:00
d86384c4ec
Readme: clarify redirector usage
James Taylor
2020-02-04 20:31:59 -08:00
fffbe5c318
Update readme
James Taylor
2020-02-04 20:02:19 -08:00
14b9c30daf
Invidious fallback: Use original format info and just substitute invidious urls Because the invidious formats don't have all the information
James Taylor
2020-02-04 19:08:56 -08:00
9f090dbbf8
Watch page: add info box with allowed countries and tor exit node Should help with debugging various content blocks
James Taylor
2020-02-01 16:16:49 -08:00
3f310bfc33
Adjust 429 error message. A Tor Browser restart is not required. The New Identity button suffices to get the socks proxy to use a new exit node.
James Taylor
2020-02-01 15:14:26 -08:00
7c2736aa26
Check for 403 errors and fallback on Invidious 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.
James Taylor
2020-02-01 15:09:37 -08:00
e364927f83
yt_data_extract: parse mimeType field for codecs the youtube-dl formats table doesn't have all the necessary information
James Taylor
2020-02-01 14:23:50 -08:00
f787e4e202
Give a proper error message for 429 errors 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.
James Taylor
2020-01-31 20:06:15 -08:00
cd4a2fb0eb
run.bat: Allow command line usage from any directory Set the youtube-local directory as the working directory, and use setlocal so it doesn't affect the shell the command is being run from.
James Taylor
2020-01-30 18:24:23 -08:00
cf507e2cd1
Add full visual c runtime to fix missing dll errors on fresh windows installs On fresh installs, when no programs have been installed which install visual c runtime as a dependency, the dlls are not present and brotli fails to load. Bundle them in releases and make sure brotli sees them by adding their location to the path (in run.bat)
James Taylor
2020-01-30 18:17:09 -08:00
b2a1f4ecfb
Fix signature decryption. The function body regex was capturing some unrelated new code before the actual function body. Example:
James Taylor
2020-01-24 14:11:59 -08:00
c13a8f677d
local playlists: Display error message if no videos are selected or no playlist is chosen when using "add to playlist" See #4
James Taylor
2020-01-19 14:29:50 -08:00
a677b47c4a
Fix display of movie thumbnails in related videos
James Taylor
2020-01-10 09:34:14 -08:00
113c75801a
Fix playlist id extraction for radio renderers
James Taylor
2019-12-31 18:06:31 -08:00
506dbb552a
Extraction: Correctly extract view_count for vids with 0 views.
James Taylor
2019-12-30 16:18:38 -08:00
0c6a37e9aa
extract_items: allow extracting items that are normally dug into for more 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
James Taylor
2019-12-26 19:39:48 -08:00
8e8a1b70b6
yt_data_extract: Split up extract_items so renderer extraction works independently extract_items_from_renderer will extract given just a renderer rather than a response
James Taylor
2019-12-26 19:02:13 -08:00
b027f66738
yt_data_extract.common: Simplify usage of get functions and remove dead code 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.
James Taylor
2019-12-26 18:43:24 -08:00
c7edea0848
yt_data_extract: Simplify extract_items so it needs only 1 while loop
James Taylor
2019-12-26 18:38:18 -08:00
f7a5f7fbaa
items: commatize channel video count and playlist video count
James Taylor
2019-12-24 13:18:46 -08:00
f706689a56
extract_item_info: Don't extract author, author_id, etc. for channel items Philosophically, a channel doesn't create itself.
James Taylor
2019-12-24 13:11:21 -08:00
3200d66d88
Fix extract_approx_int not working for non-approx ints, make extract_int 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
James Taylor
2019-12-24 13:07:12 -08:00
a428d47bde
Channel searching: indicate if there's no results
James Taylor
2019-12-23 15:09:44 -08:00
9737ffcf82
Regression: Fix channel extraction 'items' key not present when there's no items. Examples: Empty channels, no search results
James Taylor
2019-12-23 15:07:03 -08:00
777ed756dc
Channel: Change search results to use next and previous page buttons Because youtube doesn't give the number of search results, so previous behavior would give an error if a page number out of range was selected.
James Taylor
2019-12-23 14:39:59 -08:00
c56fc56fa6
Subscriptions: Cleaner error message when checking terminated channels Don't display a nasty traceback in that case.
James Taylor
2019-12-22 19:00:44 -08:00