12807 Commits (master)

Author SHA1 Message Date
dirkf c052a16f72 [JSInterp] Add tests and relevant functionality from yt-dlp
* thx seproDev, bashonly: yt-dlp/yt-dlp#12760, yt-dlp/yt-dlp#12761:
  - 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

* rework nsig function name search
* fully fixes 
* update cache required versions
* update program version
dirkf 67dbfa65f2 [InfoExtractor] Fix merging subtitles to empty target
dirkf 6eb6d6dff5 [InfoExtractor] Use local variants for remaining parent method calls
* ... where defined
dirkf 6c40d9f847 [YouTube] Remove remaining hard-coded API keys
* no longer required for these cases
dirkf 1b08d3281d [YouTube] Fix playlist continuation extraction
* thx coletdjnz, bashonly: 
dirkf 32b8d31780 [YouTube] Support shorts playlist
* only 1..100: 
dirkf 9a6ddece4d [core] Refactor message routines to align better with yt-dlp
* in particular, support `only_once` in the same methods
dirkf 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 c1ea7f5a24 [ITV] Mark ITVX not working
* update old shim
* correct [_]IE_DESC
dirkf 2b4fbfce25 [YouTube] Support player `4fcd6e4a`
thx seproDev, bashonly: 
dirkf c55dbf4838 [YouTube] Update signature extraction for players `643afba4`, `363db69b`
dirkf 087d865230 [YouTube] Support new player URL patterns
dirkf a464c159e6 [YouTube] Make `_extract_player_info()` use `_search_regex()`
dirkf 7dca08eff0 [YouTube] Also get original of translated automatic captions
dirkf 2239ee7965 [YouTube] Get subtitles/automatic captions from both web and API responses
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 ()

Co-Authored-By: sepro <sepro@sepr0.com>
dirkf 37c2440d6a [YouTube] Update player client data
thx seproDev ()

Co-authored-by: sepro <sepro@sepr0.com>
dirkf 32f89de92b [YouTube] Update TVHTML5 client parameters
* resolves 
dirkf 283dca56fe [YouTube] Initially support tce-style player JS
* resolves 
dirkf 422b1b31cf [YouTube] Temporarily redirect from tce-style player JS
dirkf 673277e510
[YouTube] Fix 91b1569
dirkf 91b1569f68
[YouTube] Fix channel playlist extraction ()
* [YouTube] Extract playlist items from LOCKUP_VIEW_MODEL_...
* resolves 
* thx seproDev ()

Co-authored-by: sepro <sepro@sepr0.com>
dirkf 5975d7bb96 [YouTube] Use X-Goog-Visitor-Id
* required with tv player client
* resolves 
dirkf 63fb0fc415 [YouTube] Retain .videoDetails members from all player responses
dirkf b09442a2f4 [YouTube] Also use ios client when is_live
dirkf 55ad8a24ca [YouTube] Support `... /feeds/videos.xml?playlist_id={pl_id}`
dirkf 21fff05121 [YouTube] Switch to TV API client
* thx 
dirkf 1036478d13 [YouTube] Endure subtitle URLs are complete
* WEB URLs are, MWEB not
* resolves 
dirkf 00ad2b8ca1 [YouTube] Refactor subtitle processing
* move to internal function
* use `traverse-obj()`
dirkf ab7c61ca29 [YouTube] Apply code style changes, trailing commas, etc
dirkf 176fc2cb00 [YouTube] Avoid early crash if webpage can't be read
* see issue 
dirkf d55d1f423d [YouTube] Always extract using MWEB API client
* temporary fix-up for 403 on download
* MWEB parameters from yt-dlp 2024-12-06
dirkf eeafbbc3e5 [YouTube] Fix signature function extraction for `2f1832d2`
* `_` was omitted from patterns
* thx 

Co-authored-by: bashonly
dirkf cd7c7b5edb [YouTube] Simplify pattern for nsig function name extraction
dirkf eed784e15f [YouTube] Pass nsig value as return hook, fixes player `3bb1f723`
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
dirkf f28d7178e4 [InfoExtractor] Use kwarg maxsplit for re.split
* May become kw-only in future Pythons
dirkf c5098961b0 [Youtube] Rework n function extraction pattern
Now also succeeds with player b12cc44b
Aiur Adept 71223bff39
[Youtube] Fix nsig extraction for player 20dfca59 ()
* dirkf's patch for nsig extraction
* add generic search per  yt-dlp/yt-dlp/pull/10611 - thx bashonly

---------

Co-authored-by: dirkf <fieldhouse@gmx.net>
dirkf e1b3fa242c [Youtube] Find `n` function name in player `3400486c`
Fixes 
dirkf 451046d62a [Youtube] Make n-sig throttling diagnostic up-to-date
dirkf 16f5bbc464 [YouTube] Fix nsig processing for player `b22ef6e7`
* improve extraction of function name (like )
* always use JSInterp to extract function code (, thx seproDev, pukkandan)
unkernet 36801c62df
[YandexMusic] Save track version in the title field
PR 
* Add track version to track title
Sergey Musatov f4b47754d9
[YandexMusic] Download music in High Quality (320 Kbit/s)
PR 
dirkf 4d05f84325 [PalcoMP3] Conform to new linter rule
* no space after @ in decorator
dirkf ad01fa6cca [jsinterp] Add Debugger from yt-dlp
* https://github.com/yt-dlp/yt-dlp/commit/8f53dc4
* thx pukkandan
Paper 0153b387e5
[VidLii] Add 720p support ()
* [VidLii] Add HD support  (yt-dlp backport-ish)

* Also fix a bug with the view count

---------

Co-authored-by: dirkf <fieldhouse@gmx.net>
dirkf a48fe7491d [ORF] Skip tests with limited availability
dirkf e20ca543f0 [ORF] Re-factor and update`ORFFM4StoryIE`
* fix getting media via DASH instead of inaccessible mp4
* also get in-page YT media
dirkf 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