dirkf
15d75df0f2
Merge f7dc45d3a643063e653e0dcda9faeb9973ad93b5 into da7223d4aa42ff9fc680b0951d043dd03cec2d30
2025-03-21 20:37:20 +01:00
dirkf
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 (yt-dlp/yt-dlp#12684 )
Co-Authored-By: sepro <sepro@sepr0.com>
2025-03-21 16:26:25 +00:00
dirkf
37c2440d6a
[YouTube] Update player client data
...
thx seproDev (yt-dlp/yt-dlp#12603 )
Co-authored-by: sepro <sepro@sepr0.com>
2025-03-21 16:13:24 +00:00
dirkf
420d53387c
[JSInterp] Improve tests
...
* from yt-dlp/yt-dlp#12313
* also fix d7c2708
2025-03-11 02:00:24 +00:00
dirkf
32f89de92b
[YouTube] Update TVHTML5 client parameters
...
* resolves #33078
2025-03-11 02:00:24 +00:00
dirkf
283dca56fe
[YouTube] Initially support tce-style player JS
...
* resolves #33079
2025-03-11 02:00:24 +00:00
dirkf
422b1b31cf
[YouTube] Temporarily redirect from tce-style player JS
2025-03-11 02:00:24 +00:00
dirkf
1dc27e1c3b
[JSInterp] Make indexing error handling more conformant
...
* by default TypeError -> undefined, else raise
* set allow_undefined=True/False to override
2025-03-11 02:00:24 +00:00
dirkf
af049e309b
[JSInterp] Handle undefined, etc, passed to JS_RegExp and Exception
2025-03-11 02:00:24 +00:00
dirkf
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.
2025-03-11 02:00:24 +00:00
dirkf
974c7d7f34
[compat] Fix inheriting from compat_collections_chain_map
...
* see ytdl-org/youtube-dl#33079#issuecomment-2704038049
2025-03-11 02:00:24 +00:00
dirkf
8738407d77
[compat] Support zstd Content-Encoding
...
* see RFC 8878 7.2
2025-03-11 02:00:24 +00:00
dirkf
cecaa18b80
[compat] Clean-up
...
* make workaround_optparse_bug9161 private
* add comments
* avoid leaving test objects behind
2025-03-11 02:00:24 +00:00
dirkf
673277e510
[YouTube] Fix 91b1569
2025-02-28 01:02:20 +00:00
dirkf
91b1569f68
[YouTube] Fix channel playlist extraction ( #33074 )
...
* [YouTube] Extract playlist items from LOCKUP_VIEW_MODEL_...
* resolves #33073
* thx seproDev (yt-dlp/yt-dlp#11615 )
Co-authored-by: sepro <sepro@sepr0.com>
2025-02-28 00:02:10 +00:00
dirkf
711e72c292
[JSInterp] Fix bit-shift coercion for player 9c6dfc4a
2025-02-07 00:01:50 +00:00
dirkf
26b6f15d14
[compat] Make casefold private
...
* if required, not supported:
`from youtube_dl.casefold import _casefold as casefold`
2025-02-07 00:01:50 +00:00
dirkf
5975d7bb96
[YouTube] Use X-Goog-Visitor-Id
...
* required with tv player client
* resolves #33030
2025-01-22 06:52:40 +00:00
dirkf
63fb0fc415
[YouTube] Retain .videoDetails members from all player responses
2025-01-20 13:23:54 +00:00
dirkf
b09442a2f4
[YouTube] Also use ios client when is_live
2025-01-19 01:18:34 +00:00
dirkf
55ad8a24ca
[YouTube] Support ... /feeds/videos.xml?playlist_id={pl_id}
2025-01-15 03:22:56 +00:00
dirkf
21fff05121
[YouTube] Switch to TV API client
...
* thx yt-dlp/yt-dlp#12059
2025-01-15 03:19:15 +00:00
dirkf
1036478d13
[YouTube] Endure subtitle URLs are complete
...
* WEB URLs are, MWEB not
* resolves #33017
2025-01-06 01:39:04 +00:00
dirkf
00ad2b8ca1
[YouTube] Refactor subtitle processing
...
* move to internal function
* use `traverse-obj()`
2025-01-06 01:24:30 +00:00
dirkf
ab7c61ca29
[YouTube] Apply code style changes, trailing commas, etc
2025-01-06 01:22:16 +00:00
dirkf
176fc2cb00
[YouTube] Avoid early crash if webpage can't be read
...
* see issue #33013
2024-12-31 14:51:29 +00:00
dirkf
d55d1f423d
[YouTube] Always extract using MWEB API client
...
* temporary fix-up for 403 on download
* MWEB parameters from yt-dlp 2024-12-06
2024-12-16 12:38:51 +00:00
dirkf
eeafbbc3e5
[YouTube] Fix signature function extraction for 2f1832d2
...
* `_` was omitted from patterns
* thx yt-dlp/yt-dlp#11801
Co-authored-by: bashonly
2024-12-16 12:38:51 +00:00
dirkf
cd7c7b5edb
[YouTube] Simplify pattern for nsig function name extraction
2024-12-16 12:38:51 +00:00
dirkf
eed784e15f
[YouTube] Pass nsig value as return hook, fixes player 3bb1f723
2024-12-16 12:38:51 +00:00
dirkf
b4469a0f65
[YouTube] Handle player 3bb1f723
...
* fix signature code extraction
* raise if n function returns input value
* add new tests from yt-dlp
Co-authored-by: bashonly
2024-12-16 12:38:51 +00:00
dirkf
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`
2024-12-16 12:38:51 +00:00
dirkf
f487b4a02a
[jsinterp] Strip /* comments */ when parsing
...
* NB: _separate() is looking creaky
2024-12-16 12:38:51 +00:00
dirkf
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
2024-12-16 12:38:51 +00:00
dirkf
94fd774608
[jsinterp] Fix and improve split/join
...
* improve split/join edge cases
* correctly implement regex split (not like re.split)
2024-12-16 12:38:51 +00:00
dirkf
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
2024-12-16 12:38:51 +00:00
dirkf
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}
2024-12-16 12:38:51 +00:00
dirkf
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
2024-12-16 12:38:51 +00:00
dirkf
118c6d7a17
[jsinterp] Implement typeof
operator
2024-12-16 12:38:51 +00:00
dirkf
f28d7178e4
[InfoExtractor] Use kwarg maxsplit for re.split
...
* May become kw-only in future Pythons
2024-12-16 12:38:51 +00:00
dirkf
f7dc45d3a6
[Generic] Update KVS extraction for player v10
...
* support "renamed" flashvars variable
* use `_search_json()
* support `rnd` query parameter
* extract tags, categories, age_limit, more thumbnails`
* closes #31007
2024-10-22 11:18:55 +01:00
dirkf
06996aca12
[utils] Don't raise in js_to_json() template substitution when non-strict
...
* template extression should be evaluated with the same strict-ness
2024-10-22 11:18:55 +01:00
dirkf
13b0e81f17
[utils] Correctly match class names in get_element[s]_by_class()
...
* reproduce CSS .classname behaviour ("bar" matches "bar", "foo bar baz", etc)
* add tests
2024-10-22 11:18:55 +01:00
dirkf
01b80a0802
[XFileShare] Re-factor and fix tests
...
* update site list
* support page with player data in <iframe>
* use `_search_json()`
* improve "not found" detection
* improve title extraction
2024-10-22 11:18:55 +01:00
dirkf
ae0cbb84f2
[XFileShare] Add geo-block detection
2024-10-22 11:18:55 +01:00
dirkf
94f181f9f5
[YandexMusic] Fix CAPTCHA check
...
* correct logic in _download_webpage() hook (yt-dlp/yt-dlp#4432 )
* improve error message.
2024-10-22 11:18:55 +01:00
dirkf
620298e0ff
[core] Fix jwplayer format parsing
...
* thx yt-dlp/yt-dlp#10956
2024-10-22 11:18:55 +01:00
dirkf
c445489a46
[Mgoon,Kaltura] Fix regex typo (:?
...
* thx yt-dlp/yt-dlp#10807 (584d455)
2024-10-22 11:18:55 +01:00
dirkf
ac0c9c8f9f
[HentaiStigma] Support new frame format with HTML5 video
...
* resolves #25019
2024-10-22 11:18:55 +01:00
dirkf
515c8b85b1
[ORFRadio] Support /programm/ URL format
...
* fixes yt-dlp/yt-dlp#11014
2024-10-22 11:18:55 +01:00