Commit Graph

  • 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
  • 250723b797 Subscriptions: Make uploader name clickable, with link to channel James Taylor 2019-12-22 18:51:21 -08:00
  • 222117143f Finally fix video count on channels accessed through general urls, rather than just channel id. James Taylor 2019-12-22 18:29:31 -08:00
  • bafae2837e channel.py: Refactor channel_id route logic into general channel url logic. Deduplicates the code. channel_id logic was previously separate because of the need to get the number of videos and different page numbers Also makes search work for general urls, not just channel_id urls James Taylor 2019-12-22 15:29:27 -08:00
  • 7a6bcb6128 Rewrite channel extraction with proper error handling and new extraction names. Extract subscriber_count correctly. Don't just shove english strings into info['stats']. Actually give semantic names for the stats. James Taylor 2019-12-21 15:45:01 -08:00
  • 3936310e7e Fix extract_approx_int. Fixes incorrect subscriber count on channels. It wasn't working because decimals such as 15.1M weren't considered, so it was extracting "1M" James Taylor 2019-12-21 11:58:02 -08:00
  • 66746d0ca8 Watch: Add padding in description box and urlize links James Taylor 2019-12-20 21:00:10 -08:00
  • 4b6efb0e0b Watch: display comment count and whether comments are disabled James Taylor 2019-12-20 20:50:16 -08:00
  • d2ba9be7a7 Better error handling for incorrect watch page urls - Correctly handle /embed, /watch with no video ids - Correctly report error for this and for too short video ids James Taylor 2019-12-20 20:35:05 -08:00
  • 98fbdf77cb Add custom 500 error page. Display the traceback. Center and format error page in general. Also add a link to github for reporting the exception. James Taylor 2019-12-20 20:21:29 -08:00
  • 80de90b1bb Add support for /embed urls James Taylor 2019-12-20 19:23:15 -08:00
  • 310585ae9e Subscriptions: Display currently selected tag in page title James Taylor 2019-12-20 18:58:39 -08:00
  • 0bc2e43822 Watch: Add border around badges such as unlisted badge Especially for the light theme James Taylor 2019-12-20 18:54:24 -08:00
  • a9f67d4630 Fix regression: date extraction broken. Move constants to correct file in yt_data_extract James Taylor 2019-12-20 18:48:40 -08:00
  • c3321d31d0 Subscriptions: Display selected tag above videos. Otherwise, it wasn't clear enough that a tag was selected. James Taylor 2019-12-20 12:44:42 -08:00
  • b4406df9cf Merge branch 'modular-data-extract' Commits in this branch are prefixed with "Extraction:" This branch refactors data extraction. All such functionality has been moved to the yt_data_extract module. Responses from requests are given to the module and it parses them into a consistent, more useful format. The dependency on youtube-dl has also been dropped and this functionality has been built from scratch for these reasons: (1) I've noticed youtube-dl breaks more often than invidious (which uses watch page extraction built from scratch) in response to changes from Youtube, so I'm hoping what I wrote will also be less brittle. (2) Such breakage is inconvenient because I have to manually merge the fixes since I had to make changes to youtube-dl to make it do things such as extracting related videos. (3) I have no control over error handling and request pooling with youtube-dl, since it does all the requests (these would require intrusive changes I don't want to maintain). (4) I will now be able to finally display the number of comments and whether comments are disabled without making additional requests. James Taylor 2019-12-19 21:33:54 -08:00
  • 6b7a1212e3 Extraction: Move non-stateful signature decryption functionality into yt_data_extract James Taylor 2019-12-19 21:28:21 -08:00
  • 4a3529df95 Extraction: Move stuff around in files and put underscores in front of internal helper function names Move get_captions_url in watch_extraction to bottom next to other exported, public functions James Taylor 2019-12-19 20:12:37 -08:00
  • d1d908d5b1 Extraction: Move html post processing stuff from yt_data_extract to util James Taylor 2019-12-19 19:48:53 -08:00
  • 76376b29a0 Extraction: Split yt_data_extract.py into multiple files James Taylor 2019-12-19 19:28:58 -08:00
  • beb0976b5b Extraction: Rewrite comment extraction, remove author_id and rename author_channel_id to that, fix bug in extract_items James Taylor 2019-12-19 15:50:19 -08:00
  • 02848a1a32 Extraction: Adjust related videos box to fit new time_published information well time_published will be put to the right of the view_count in related videos Author will now always be above the other stats, since it doesn't make a difference in the big search result boxes since the description snippet is always very short (However, it's important the author isn't inline with the other stats in related video boxes since those are so narrow and the author name can be very long) James Taylor 2019-12-19 15:46:16 -08:00
  • 004e14a538 Extraction: Use accessibility data to get timestamp and to get views for recommended videos James Taylor 2019-12-18 20:53:11 -08:00
  • f6bf5213a5 Extraction: rename multi_get functions to more descriptive names James Taylor 2019-12-18 19:43:55 -08:00
  • 98777ee825 Extraction: Rewrite item_extraction for better error handling and readability, rename extracted names for more consistency James Taylor 2019-12-18 19:39:16 -08:00
  • ee0a118a6c Extraction: Fix thumbnail and remove badges on related videos James Taylor 2019-12-17 21:52:31 -08:00
  • e98a1965d2 Extraction: Fix mistake with age-restriction detection James Taylor 2019-12-17 21:06:06 -08:00
  • 45a4ab5ace Extraction: Detect limited state and fix false detection as unlisted James Taylor 2019-12-17 20:58:15 -08:00
  • 81c7ecf161 Extraction: Make limited state videos work James Taylor 2019-12-17 20:39:20 -08:00
  • 40de1b74ed Extraction: Extract info from microformat to get views for limited state videos, and as a fallback. Shorten some function names James Taylor 2019-12-17 16:02:23 -08:00
  • e870eea057 Extraction: Add fallback playability error extraction from renderers James Taylor 2019-12-14 22:08:36 -08:00
  • a04aa63efe Extraction: Fix subtitles error when video has no automatic captions but has foreign language captions James Taylor 2019-12-14 14:42:39 -08:00
  • 8c16062ea8 Extraction: Fix subtitles not working on certain videos which require more parameters in the captions url James Taylor 2019-12-14 14:37:03 -08:00
  • ecc1ce42b8 Extraction: Display that video is age-restricted James Taylor 2019-12-12 22:13:37 -08:00
  • 26f37521ba Extraction: Bypass age-restriction James Taylor 2019-12-12 22:13:17 -08:00
  • 205ad29cb0 Extraction: Add general subtitle extraction and translation James Taylor 2019-11-29 18:36:27 -08:00
  • 95da24a206 Extraction: extract automatic captions James Taylor 2019-11-28 22:24:17 -08:00
  • 782a826397 Extraction: extract fields from visible webpage if missing from playerResposne James Taylor 2019-11-22 16:36:33 -08:00
  • 79d9a18f81 Extraction: return and display any errors preventing video playback James Taylor 2019-11-22 14:56:53 -08:00
  • b614fcdb85 Fix regression: Can't remove videos from local playlists James Taylor 2019-10-21 21:14:13 -07:00
  • 70b56d6eef Extraction: Add signature decryption James Taylor 2019-10-18 14:02:28 -07:00
  • 4c07546e7a Extraction: Replace youtube-dl with custom-built watch page extraction James Taylor 2019-10-17 19:58:13 -07:00
  • fd327ae653 Fix muted channels not being faded out on subscription manager page James Taylor 2019-10-17 19:23:58 -07:00
  • 9abb83fdbc Extraction: Fix did_you_mean and showing_results_for James Taylor 2019-09-27 19:27:19 -07:00
  • e68ac26b4e Extraction: Rename get_response to extract_response and check that returned type is dict James Taylor 2019-09-27 18:07:46 -07:00
  • ce8a658a0e Extraction: Move item extraction into a generic, robust function James Taylor 2019-09-27 18:03:19 -07:00
  • 61c50e0b54 Extraction: Move comment extraction to yt_data_extract James Taylor 2019-09-19 11:41:16 -07:00
  • dc6c370152 Extraction: refactor response extraction to work with both mobile & desktop respones, also improve errors James Taylor 2019-09-18 21:39:53 -07:00
  • 66b1159d36 Fix related videos title clipping James Taylor 2019-09-18 21:49:25 -07:00
  • 014da8d3ae Fix list of local playlists not being given on subscriptions page and local playlist page James Taylor 2019-09-15 15:15:23 -07:00
  • 33a8898656 Only display local playlist controls in header on pages with videos James Taylor 2019-09-15 14:59:19 -07:00
  • 57c37a57e9 Add optional javascript for adding videos to playlists without the browser cancelling loading of the video, and to display a status message James Taylor 2019-09-15 14:55:57 -07:00
  • f48de1aad2 Fix breakage due to youtube changes James Taylor 2019-09-11 15:09:20 -07:00
  • 21c617faf7 Local playlists list: center list and add background to it James Taylor 2019-09-10 17:57:32 -07:00
  • 27efcaf2b1 Comments: Fix some avatars overflowing James Taylor 2019-09-10 15:31:20 -07:00
  • 652cef15ec Watch page: Background color on video when scrubbing bar larger than video James Taylor 2019-09-09 16:08:24 -07:00
  • 89e5761f8d Extraction: Move playlist extraction to yt_data_extract James Taylor 2019-09-08 18:42:08 -07:00
  • c362a5e834 Extraction: Move search extraction to yt_data_extract James Taylor 2019-09-08 18:06:30 -07:00
  • 216231f9a6 Extraction: Proper error handling for terminated or non-existant channels James Taylor 2019-09-08 17:48:02 -07:00
  • bd343ed71f Extraction: Move channel extraction to yt_data_extract James Taylor 2019-09-08 17:28:11 -07:00
  • fb1a3531c5 Extraction: Fix url prefixing James Taylor 2019-09-08 17:20:02 -07:00
  • 1b6fb4e100 Allow 'New' badge in video items James Taylor 2019-09-08 16:48:07 -07:00
  • 0ca12270a8 Search: Add some space around the number of results James Taylor 2019-09-08 10:38:23 -07:00
  • 3c9a6dd8e6 Search: Fix advertisements for google products like home/stadia breaking search results James Taylor 2019-09-08 10:32:52 -07:00
  • cd04bbc5ce Bloody markdown James Taylor 2019-09-07 23:13:32 -07:00
  • 6542601b65 Update README (again) James Taylor 2019-09-07 23:08:16 -07:00
  • f1e3954529 Update README James Taylor 2019-09-07 22:30:38 -07:00
  • 6a55771630 Redirect localhost:8080 to homepage James Taylor 2019-09-07 21:40:38 -07:00
  • d356e40f1c Subscription manager: Hide export box for now until it's functional James Taylor 2019-09-07 20:06:03 -07:00
  • 8f6730af71 Subscription manager: Add some space around import subscriptions box James Taylor 2019-09-07 20:05:11 -07:00
  • f172b143d6 Subscriptions: order videos by date published when there's too many new videos from a channel James Taylor 2019-09-07 20:02:45 -07:00
  • b3fe5abcd7 Subscriptions: Add some space around video grid James Taylor 2019-09-07 18:28:32 -07:00
  • 93bbe1179b Subscriptions: fix author not being included James Taylor 2019-09-07 18:26:31 -07:00
  • 7b42d26c61 Add automatic release generation system so dependencies will be updated per release James Taylor 2019-09-07 18:19:40 -07:00
  • 3d57e14df7 Remove windows python distribution from repo and add requirements.txt James Taylor 2019-09-06 16:31:13 -07:00
  • ac32b24b2a Merge subscriptions into master James Taylor 2019-09-06 15:45:01 -07:00
  • 7a93acabb3 Always use 360p in non-theater mode James Taylor 2019-09-06 15:00:18 -07:00
  • ed066e7414 Adapt theme and layout settings to settings page system James Taylor 2019-09-06 14:53:06 -07:00
  • e14ec88591 Settings: Fix centering and color scheme on other themes James Taylor 2019-09-06 14:47:37 -07:00
  • 36380b0328 Settings: Fix circular dependency for settings_page James Taylor 2019-09-06 14:31:47 -07:00
  • 3dd0371af1 Merge branch 'settings' James Taylor 2019-09-06 14:23:29 -07:00