Commit Graph

  • c052a16f72 [JSInterp] Add tests and relevant functionality from yt-dlp * thx seproDev, bashonly: , : - Improve nested attribute support - Pass global stack when extracting objects - interpret_statement: Match attribute before indexing - Fix assignment to array elements with nested brackets - Add new signature tests - Invalidate JS function cache - Avoid testdata dupes now that we cache by URL master dirkf 2025-04-04 12:53:28 +01:00
  • bd2ded59f2 [JSInterp] Improve unary operators; add ! dirkf 2025-04-04 12:29:28 +01:00
  • 16b7e97afa [JSInterp] Add _separate_at_op() dirkf 2025-04-04 12:25:17 +01:00
  • d21717978c [JSInterp] Improve JS classes, etc dirkf 2025-04-04 12:20:15 +01:00
  • 7513413794 [JSInterp] Reorganise some declarations to align better with yt-dlp dirkf 2025-04-04 12:15:38 +01:00
  • 67dbfa65f2 [InfoExtractor] Fix merging subtitles to empty target dirkf 2025-04-04 11:43:32 +01:00
  • 6eb6d6dff5 [InfoExtractor] Use local variants for remaining parent method calls * ... where defined dirkf 2025-04-04 11:36:35 +01:00
  • 6c40d9f847 [YouTube] Remove remaining hard-coded API keys * no longer required for these cases dirkf 2025-04-04 11:10:29 +01:00
  • 1b08d3281d [YouTube] Fix playlist continuation extraction * thx coletdjnz, bashonly: dirkf 2025-04-04 10:58:01 +01:00
  • 32b8d31780 [YouTube] Support shorts playlist * only 1..100: dirkf 2025-04-04 10:55:32 +01:00
  • 570b868078 [cache] Use esc_rfc3986 to encode cache key dirkf 2025-04-07 16:02:10 +01:00
  • 2190e89260 [utils] Support optional safe argument for escape_rfc3986() dirkf 2025-04-07 16:00:11 +01:00
  • 7e136639db [compat] Improve Py2 compatibility for URL Quoting dirkf 2025-04-07 15:51:03 +01:00
  • cedeeed56f [cache] Align further with yt-dlp * use compat_os_makedirs * support non-ASCII characters in cache key * improve logging dirkf 2025-04-04 04:42:14 +01:00
  • add4622870 [compat] Add compat_os_makedirs * support exists_ok parameter in Py < 3.2 dirkf 2025-04-04 04:09:56 +01:00
  • 9a6ddece4d [core] Refactor message routines to align better with yt-dlp * in particular, support only_once in the same methods dirkf 2025-04-04 04:04:01 +01:00
  • 3eb8d22ddb
    [JSInterp] Temporary fix for dirkf 2025-03-31 04:21:09 +01:00
  • 4e714f9df1 [Misc] Correct [_]IE_DESC/NAME in a few IEs * thx seproDev, yt-dlp/yt-dlp/pull/12694/commits/ae69e3c * also add documenting comment in InfoExtractor dirkf 2025-03-26 12:47:19 +00:00
  • c1ea7f5a24 [ITV] Mark ITVX not working * update old shim * correct [_]IE_DESC dirkf 2025-03-26 12:17:49 +00:00
  • 2b4fbfce25 [YouTube] Support player 4fcd6e4a thx seproDev, bashonly: dirkf 2025-03-26 02:27:25 +00:00
  • 1bc45b8b6c [JSInterp] Use , for join() with null/undefined argument Eg: [1,2,3].join(null) -> '1,2,3' dirkf 2025-03-25 22:30:08 +00:00
  • b982d77d0b [YouTube] Align signature tests with yt-dlp thx bashonly, dirkf 2025-03-25 22:18:47 +00:00
  • c55dbf4838 [YouTube] Update signature extraction for players 643afba4, 363db69b dirkf 2025-03-25 22:16:19 +00:00
  • 087d865230 [YouTube] Support new player URL patterns dirkf 2025-03-25 22:14:08 +00:00
  • a4fc1151f1 [JSInterp] Improve indexing * catch invalid list index with ValueError (eg [1, 2]['ab'] -> undefined) * allow assignment outside existing list (eg var l = [1,2]; l[9] = 0;) dirkf 2025-03-25 21:56:32 +00:00
  • a464c159e6 [YouTube] Make _extract_player_info() use _search_regex() dirkf 2025-03-25 21:49:21 +00:00
  • 7dca08eff0 [YouTube] Also get original of translated automatic captions dirkf 2025-03-25 21:41:15 +00:00
  • 2239ee7965 [YouTube] Get subtitles/automatic captions from both web and API responses dirkf 2025-03-25 21:39:31 +00:00
  • da7223d4aa [YouTube] Improve support for tce-style player JS * improve extraction of global "useful data" Array from player JS * also handle tv-player and add tests: thx seproDev () dirkf 2025-03-21 16:26:25 +00:00
  • 37c2440d6a [YouTube] Update player client data thx seproDev () dirkf 2025-03-21 16:13:24 +00:00
  • 420d53387c [JSInterp] Improve tests * from * also fix d7c2708 dirkf 2025-03-10 11:44:06 +00:00
  • 32f89de92b [YouTube] Update TVHTML5 client parameters * resolves dirkf 2025-03-07 21:03:54 +00:00
  • 283dca56fe [YouTube] Initially support tce-style player JS * resolves dirkf 2025-03-07 21:02:28 +00:00
  • 422b1b31cf [YouTube] Temporarily redirect from tce-style player JS dirkf 2025-03-07 20:00:58 +00:00
  • 1dc27e1c3b [JSInterp] Make indexing error handling more conformant * by default TypeError -> undefined, else raise * set allow_undefined=True/False to override dirkf 2025-03-07 19:40:53 +00:00
  • af049e309b [JSInterp] Handle undefined, etc, passed to JS_RegExp and Exception dirkf 2025-03-07 19:37:56 +00:00
  • 94849bc997 [JSInterp] Improve Date processing * add JS_Date class implementing JS Date * support constructor args other than date string * support static methods of Date * Date objects are still automatically coerced to timestamp before using in JS. dirkf 2025-03-07 19:32:56 +00:00
  • 974c7d7f34 [compat] Fix inheriting from compat_collections_chain_map * see ytdl-org/youtube-dl#33079#issuecomment-2704038049 dirkf 2025-03-07 19:17:18 +00:00
  • 8738407d77 [compat] Support zstd Content-Encoding * see RFC 8878 7.2 dirkf 2025-03-02 13:36:05 +00:00
  • cecaa18b80 [compat] Clean-up * make workaround_optparse_bug9161 private * add comments * avoid leaving test objects behind dirkf 2025-03-07 23:03:17 +00:00
  • 673277e510
    [YouTube] Fix 91b1569 dirkf 2025-02-28 01:02:20 +00:00
  • 91b1569f68
    [YouTube] Fix channel playlist extraction () dirkf 2025-02-28 00:02:10 +00:00
  • 711e72c292 [JSInterp] Fix bit-shift coercion for player 9c6dfc4a dirkf 2025-02-06 21:09:00 +00:00
  • 26b6f15d14 [compat] Make casefold private * if required, not supported: from youtube_dl.casefold import _casefold as casefold dirkf 2025-02-03 18:10:15 +00:00
  • 5975d7bb96 [YouTube] Use X-Goog-Visitor-Id * required with tv player client * resolves dirkf 2025-01-22 06:52:40 +00:00
  • 63fb0fc415 [YouTube] Retain .videoDetails members from all player responses dirkf 2025-01-20 13:23:54 +00:00
  • b09442a2f4 [YouTube] Also use ios client when is_live dirkf 2025-01-19 01:18:34 +00:00
  • 55ad8a24ca [YouTube] Support ... /feeds/videos.xml?playlist_id={pl_id} dirkf 2025-01-15 03:22:56 +00:00
  • 21fff05121 [YouTube] Switch to TV API client * thx dirkf 2025-01-15 03:19:15 +00:00
  • 1036478d13 [YouTube] Endure subtitle URLs are complete * WEB URLs are, MWEB not * resolves dirkf 2025-01-06 01:39:04 +00:00
  • 00ad2b8ca1 [YouTube] Refactor subtitle processing * move to internal function * use traverse-obj() dirkf 2025-01-06 01:24:30 +00:00
  • ab7c61ca29 [YouTube] Apply code style changes, trailing commas, etc dirkf 2025-01-06 01:22:16 +00:00
  • 176fc2cb00 [YouTube] Avoid early crash if webpage can't be read * see issue dirkf 2024-12-31 14:51:29 +00:00
  • d55d1f423d [YouTube] Always extract using MWEB API client * temporary fix-up for 403 on download * MWEB parameters from yt-dlp 2024-12-06 dirkf 2024-12-14 11:18:34 +00:00
  • eeafbbc3e5 [YouTube] Fix signature function extraction for 2f1832d2 * _ was omitted from patterns * thx dirkf 2024-12-13 12:16:31 +00:00
  • cd7c7b5edb [YouTube] Simplify pattern for nsig function name extraction dirkf 2024-12-13 03:09:29 +00:00
  • eed784e15f [YouTube] Pass nsig value as return hook, fixes player 3bb1f723 dirkf 2024-12-12 04:38:23 +00:00
  • b4469a0f65 [YouTube] Handle player 3bb1f723 * fix signature code extraction * raise if n function returns input value * add new tests from yt-dlp dirkf 2024-12-07 03:39:44 +00:00
  • ce1e556b8f [jsinterp] Add return hook for player 3bb1f723 * set var _ytdl_do_not_return to a specific value in the scope of a function * if an expression to be returned has that value, return becomes void dirkf 2024-12-12 04:29:13 +00:00
  • f487b4a02a [jsinterp] Strip /* comments */ when parsing * NB: _separate() is looking creaky dirkf 2024-12-12 04:21:53 +00:00
  • 60835ca16c [jsinterp] Fix and improve "methods" * push, unshift return new length * impove edge cases for push/pop, shift/unshift, forEach, indexOf, charCodeAt * increase test coverage dirkf 2024-12-12 04:16:07 +00:00
  • 94fd774608 [jsinterp] Fix and improve split/join * improve split/join edge cases * correctly implement regex split (not like re.split) dirkf 2024-12-12 04:13:06 +00:00
  • 5dee6213ed [jsinterp] Fix and improve arithmetic operations * addition becomes concat with a string operand * improve handling of edgier cases * arithmetic in float like JS (more places need cast to int?) * increase test coverage dirkf 2024-12-12 00:26:00 +00:00
  • 81e64cacf2 [jsinterp] Support multiple indexing (eg a[1][2]) * extend single indexing with improved RE (should probably use/have used _separate_at_paren()) * fix some cases that should have given undefined, not throwing * standardise RE group names * support length of objects, like {1: 2, 3: 4, length: 42} dirkf 2024-12-12 00:15:31 +00:00
  • c1a03b1ac3 [jsinterp] Fix and improve loose and strict equality operations * reimplement loose equality according to MDN (eg, 1 == "1") * improve strict equality (eg, "abc" === "abc" but 'abc' is not 'abc') * add tests for above dirkf 2024-12-12 00:00:32 +00:00
  • 118c6d7a17 [jsinterp] Implement typeof operator dirkf 2024-12-07 03:37:39 +00:00
  • f28d7178e4 [InfoExtractor] Use kwarg maxsplit for re.split * May become kw-only in future Pythons dirkf 2024-12-12 04:46:33 +00:00
  • e5bfed6c77
    [PornHub] Remove extraneous modelhub login code pull/30733/head dirkf 2024-10-15 21:11:28 +01:00
  • 38fce984f4
    [PornHub] Fix typo in path regex dirkf 2024-10-14 14:23:46 +01:00
  • 49093c09c0
    Merge pull request from ytdl-org/master dirkf 2024-10-14 14:09:51 +01:00
  • f3cf092584
    Integrate changes from yt-dlp and PR 31432 dirkf 2024-10-14 12:39:50 +01:00
  • c5098961b0 [Youtube] Rework n function extraction pattern Now also succeeds with player b12cc44b dirkf 2024-08-06 20:59:09 +01:00
  • dbc08fba83 [jsinterp] Improve slice implementation for player b12cc44b dirkf 2024-08-06 20:44:30 +01:00
  • 71223bff39
    [Youtube] Fix nsig extraction for player 20dfca59 () Aiur Adept 2024-08-01 14:18:34 -04:00
  • e1b3fa242c [Youtube] Find n function name in player 3400486c dirkf 2024-07-24 14:45:52 +01:00
  • 451046d62a [Youtube] Make n-sig throttling diagnostic up-to-date dirkf 2024-07-24 14:33:34 +01:00
  • 16f5bbc464 [YouTube] Fix nsig processing for player b22ef6e7 * improve extraction of function name (like ) * always use JSInterp to extract function code (, thx seproDev, pukkandan) 2024.07.11-nightly dirkf 2024-07-10 18:20:59 +01:00
  • d35ce6ce95 [jsinterp] Support functionality for player b22ef6e7 * support prototype for call() and apply() (, thx Grub4k) * map JS Array to list dirkf 2024-07-10 18:07:20 +01:00
  • 76ac69917e [jsinterp] Further improve expression parsing (fix fd8242e) Passes tests from yt-dlp dirkf 2024-07-10 18:02:11 +01:00
  • 756f6b45c7 [jsinterp] Re-align JSInterp and tests (esp.) with yt-dlp Thx: various yt-dlp authors dirkf 2024-07-10 17:58:38 +01:00
  • 43a74c5fa5 [core] Address gaps in allowed extensions bashonly 2024-07-05 13:41:30 -05:00
  • a452f9437c [core] Fix PR for fixed extensionless output template dirkf 2024-07-07 20:43:10 +01:00
  • 36801c62df
    [YandexMusic] Save track version in the title field unkernet 2024-07-07 21:18:33 +02:00
  • f4b47754d9
    [YandexMusic] Download music in High Quality (320 Kbit/s) Sergey Musatov 2024-07-06 13:04:36 +03:00
  • 37cea84f77 [core,utils] Support unpublicised --no-check-extensions dirkf 2024-07-02 14:54:25 +01:00
  • 4652109643 [core,utils] Implement unsafe file extension mitigation * from https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-79w7-vh3h-8g4, thx grub4k dirkf 2024-06-30 18:37:25 +01:00
  • 3c466186a8 [utils] Back-port Namespace and MEDIA_EXTENSIONS from yt-dlp Thx pukkandan * Namespace: https://github.com/yt-dlp/yt-dlp/commit/591bb9d355 * MEDIA_EXTENSIONS: https://github.com/yt-dlp/yt-dlp/commit/8dc5930511 dirkf 2024-06-30 12:34:19 +01:00
  • 4d05f84325 [PalcoMP3] Conform to new linter rule * no space after @ in decorator dirkf 2024-06-20 03:22:02 +01:00
  • e0094e63c3 [jsinterp] Various tweaks * treat Infinity like NaN * cache operator list dirkf 2024-06-20 02:57:52 +01:00
  • fd8242e3ef [jsinterp] Fix and improve expression parsing * improve BODMAS (fixes https://github.com/ytdl-org/youtube-dl/issues/32815) * support more weird expressions with multiple unary ops dirkf 2024-06-20 02:36:54 +01:00
  • ad01fa6cca [jsinterp] Add Debugger from yt-dlp * https://github.com/yt-dlp/yt-dlp/commit/8f53dc4 * thx pukkandan dirkf 2024-06-19 21:44:27 +01:00
  • 2eac0fa379 [utils] Save orig_msg in ExtractorError dirkf 2024-06-19 19:04:47 +01:00
  • 0153b387e5
    [VidLii] Add 720p support () Paper 2024-06-11 08:21:39 -04:00
  • a48fe7491d [ORF] Skip tests with limited availability dirkf 2024-06-11 12:32:07 +01:00
  • e20ca543f0 [ORF] Re-factor and updateORFFM4StoryIE * fix getting media via DASH instead of inaccessible mp4 * also get in-page YT media dirkf 2024-06-01 13:43:37 +01:00
  • e39466051f [ORF] Support sound.orf.at, updating ORFRadioIE * maintain support for xx.orf.at/player/... URLs * add ORFRadioCollectionIE to support playlists in ORF Sound * back-port and re-work ORFPodcastIE from https://github.com/yt-dlp/yt-dlp/pull/8486, thx Esokrates dirkf 2024-06-01 13:29:26 +01:00
  • d95c0d203f [ORF] Support on.orf.at, replacing ORFTVthekIE * add ORFONIE, back-porting yt-dlp PR https://github.com/yt-dlp/yt-dlp/pull/9113 and friends: thx HobbyistDev, TuxCoder, seproDev * re-factor to support livestreams via new ORFONliveIE dirkf 2024-06-01 12:56:41 +01:00
  • 3bde6a5752 [test] Improve download test * skip reason can't be unicode in Py2 * remove duplicate assert...Equal functions dirkf 2024-06-11 01:20:42 +01:00
  • 50f6c5668a [core] Re-factor with _fill_common_fields() as used in yt-dlp dirkf 2024-06-01 03:25:06 +01:00
  • b4ff08bd2d [core] Safer handling of nested playlist data dirkf 2024-06-01 03:23:37 +01:00