dirkf
e8198c517b
[YouTube] Fix tests
2023-02-13 03:54:51 +00:00
dirkf
bafb6dec72
[YouTube] Refresh compat/utils usage
...
* import parse_qs()
* import parse_qs in lazy_extractors (clears old TODO)
* clean up old compiled lazy_extractors for Py2
* use update_url()
2023-02-13 03:54:51 +00:00
dirkf
4e04f10499
[compat] Update test_compat
...
[skip ci]
2023-02-13 03:54:51 +00:00
dirkf
90c9f789d9
[utils] Add parse_qs, update_url
...
[skip ci]
2023-02-13 03:54:51 +00:00
dirkf
249f2b6316
[compat] Systematise compat_ naming
...
[skip ci]
2023-02-13 03:54:51 +00:00
dirkf
d6b14ba316
[test] Fix TestAgeRestriction
...
* age restriction may cause DownloadError
* update obsolete test URLs
[skip ci]
2023-02-13 03:54:51 +00:00
dirkf
30e986b834
[YouTube] Add signatureTimestamp for age-gate bypass
2023-02-13 03:54:51 +00:00
dirkf
58988c1421
[YouTube] Bypass age-gating for certain restricted videos
...
* Use TVHTML5_SIMPLY_EMBEDDED_PLAYER client
* Also add and fix tests
* Introduce and use new utility function `update_url()`
2023-02-13 03:54:51 +00:00
dirkf
e19ec52322
[Vimeo] Support /user{video_id}/{slug} URL format
2023-02-12 22:16:00 +00:00
dirkf
f2f90887ca
[Vimeo] Fix Unable to extract info section redux
...
* as reported in yt-dlp/yt-dlp#6149
* also allow newline in target JSON object
2023-02-12 22:16:00 +00:00
dirkf
cd987e6fca
[jsinterp] Nits
2023-02-12 22:16:00 +00:00
dirkf
d947ffe8e3
[IGN] Overhaul extractor to avoid URL redirection loop
...
Consequently/also:
* centralise video data extraction
* detect 404 and 503 expected errors
* handle the test video in IGNVideo
* handle two additional page formats for the tests in IGNArticle
2023-02-12 22:16:00 +00:00
dirkf and GitHub
384f632e8a
[ITV] Overhaul ITV extractor ( #30266 )
...
* support ITVX URLs (thanks Vangelis66)
* support legacy ITV Hub URLs
* include extraction fix 4c57dd2 from sleaux-meaux 3 May 2021
* include extraction fix 6fbcc16, fix by staubichsauger & pukkandan
* work-around duration parsing pending fix to utils.parse_duration
* apply default vanilla UA for pages and media to avoid site blocking
* also detect and report `Episode not found` instead of generic 404
* rework ITVBTCCIE with geo-block detection, best effort geo-restriction handling, news article support
* fix tests
2023-02-03 21:10:07 +00:00
9d17948b5a
[myvideoge] Add new extractor ( #31360 )
...
NB download tests on CI servers blocked
Co-authored-by: Alfonso Solbes <fonk666@gmail.com >
2023-02-02 23:25:44 +00:00
dirkf and GitHub
bc6f94e459
[FIFA] Back-port extractor from yt-dlp ( #31385 )
2023-02-02 23:19:03 +00:00
dirkf
295736c9cb
[jsinterp] Improve parsing
...
* support subset `... else if ...`
* support `while`
* add `RegExp` class
* generalise `new` support
* limited more debug strings
* matching test changes
2023-02-02 16:31:49 +00:00
dirkf and GitHub
195f22f679
[generic] Improve KVS (etc) extraction
2022-11-13 15:09:29 +00:00
dirkf and GitHub
fc2beab0e7
[generic] Improve KVS (etc) extraction
...
* detect kt_player('kt_player', 'https://.../kt_player.swf?v=5 ...
* detect age limit if 18 USC 2257 is mentioned
* test with shooshtime.com
Partially resolves #31332 .
2022-11-13 14:59:30 +00:00
dirkf and GitHub
c2f9be3e63
[generic] Add KVS player extraction
2022-11-12 11:55:05 +00:00
604762a9f8
[common:jwplayer] Improve jwplayer extraction and parsing ( #31000 )
...
* don't crash parser if jwplayer_data is invalid (empty, or no formats)
* use `label` in `sources[n]` as `format_id`
* relax `jwplayer().setup(...)` RE (also rework PR #27274 enhancement)
* detect more manifest formats in _parse_jwplayer_formats() (from PR #29596 )
* improve metadata extraction (from PR #25433 )
* remember URLs in a set
* use parse_resolution() in format
* extract filesize in format (from yt-dlp)
Co-authored-by: kikuyan <kikuyan@users.noreply.github.com >
Co-authored-by: martin54 <martin54@users.noreply.github.com >
2022-11-11 00:49:13 +00:00
dirkf and GitHub
de39d1281c
[extractor/ceskatelevize] Back-port extractor from yt-dlp, etc ( #30713 )
...
* back-port extractor, removing CeskaTelevizePoradyIE
* follow redirect URL
* support liveBroadcast and videobonusDetail in __NEXT__ data
* return single video for singleton playlist
* fix/add tests
2022-11-04 10:13:07 +00:00
dirkf and GitHub
c4b19a8816
[compat] Work around in case folding for narrow Python build
...
Resolves #31324 .
2022-11-02 11:56:26 +00:00
dirkf and GitHub
087ddc2371
[compat] Add test for compat_casefold()
2022-11-01 22:47:02 +00:00
dirkf and GitHub
65ccb0dd4e
[compat] Add test for compat_casefold()
2022-11-01 21:33:39 +00:00
dirkf and GitHub
a874871801
[compat] Reformat casefold.py for easier updating
2022-11-01 19:25:59 +00:00
dirkf and GitHub
b7c25959f0
[compat] Unify unicode/str compat and move up
2022-11-01 12:40:23 +00:00
dirkf and GitHub
f102e3dc4e
[compat] Add compat_casefold and compat_re_Match, for traverse_obj() port
2022-10-31 21:27:14 +00:00
dirkf and GitHub
a19855f0f5
[compat] Add Python 2 Unicode casefold using a trivial wrapper around icu/CaseFolding.txt
2022-10-31 21:18:36 +00:00
dirkf and GitHub
502cefa41f
[Vimeo] Update variable name in hydration JSON pattern
...
Fixes #31311
2022-10-27 14:33:00 +00:00
dirkf and GitHub
0faa45d6c0
[BongaCams] Support new .net domain
...
Resolves #31262 .
2022-10-20 11:06:44 +00:00
dirkf and GitHub
ee8560d01e
[ManyVids] Support new single-page app structure
2022-10-13 02:42:49 +00:00
dirkf and GitHub
7135277fec
[ManyVids] Support new single-page app structure
...
See https://github.com/yt-dlp/yt-dlp/issues/5210#issuecomment-1276919962 .
2022-10-13 01:59:01 +00:00
dirkf and GitHub
7bbd5b13d4
[Motherless] Pull from yt-dlp, etc
...
* use username field
* loosen regexes
* warn on page count 0 in group
* avoid reloading group page 1
Closes #29626
2022-10-12 01:09:55 +01:00
dirkf and GitHub
11b284c81f
[Common:JWPlayer] Fix x1000 scaling error
...
See https://github.com/yt-dlp/yt-dlp/issues/5106#issuecomment-1264625161
2022-10-11 12:36:44 +00:00
dirkf and GitHub
c94a459a24
[utils] Sanitize look-alike Unicode glyphs in non-ID filename fields when --restrict-filenames
...
Implements https://github.com/ytdl-org/youtube-dl/issues/31216#issuecomment-1236102822 , which has a test.
2022-10-11 12:18:12 +00:00
dirkf and GitHub
6e2626f092
[JSInterp] Improve separation logic
...
Based on https://github.com/yt-dlp/yt-dlp/commit/0468a3b3253957bfbeb98b4a7c71542ff80e9e06
2022-10-11 05:58:10 +01:00
dirkf
c282e5f8d7
[ZDF] Overhaul ZDF extractors
...
* pull some yt-dlp changes into ZDFBaseIE._extract_format()
* add test cases from yt-dlp to ZDFIE
* fix crash in ZDFIE._extract_mobile() when object had no `formitaeten`
* improve title extraction in ZDFChannelIE (remove trailing station ident)
* avoid extracting non-video playlist items (fixes #31149 )
2022-10-11 00:05:17 +01:00
dirkf
2ced5a7912
[test] Implement string "lambda x: condition(x)" as an expected value
...
Semantics equivalent to `assert condition(got)`
2022-10-11 00:05:17 +01:00
dirkf and GitHub
1b1442887e
[manyvids] Improve extraction ( #31172 )
...
* extract all formats from page
* extract description, uploader, views, likes
* downrate previews
* fix tests
* use txt_or_none()
2022-10-10 19:26:32 +01:00
dirkf and GitHub
22127b271c
[NRK] Remove explicit Accept-Encoding header that invites Brotli
...
Fixes #31285
2022-10-10 17:41:40 +00:00
dirkf
9493ffdb8b
[test] Use windows-2019 for tests
...
(At least for now) resolves #31249
2022-10-04 11:31:29 +01:00
dirkf
218c423bc0
[cache] Add cache validation by program version, based on yt-dlp
2022-09-01 13:28:30 +01:00
dirkf
55c823634d
[jsinterp] Handle new YT players 113ca41c, c57c113c
...
* add NaN
* allow any white-space character for `after_op`
* align with yt-dlp f26af78a8ac11d9d617ed31ea5282cfaa5bcbcfa (charcodeAt and bitwise overflow)
* allow escaping in regex, fixing player c57c113c
2022-09-01 10:57:12 +01:00
dirkf
4050e10a4c
[options] Document that postprocessing is not forced by --postprocessor-args
...
Resolves #30307
2022-08-29 13:02:17 +01:00
dirkf
ed5c44e7b7
[compat] Replace deficient ChainMap class in Py3.3 and earlier
...
* fix version check
2022-08-26 12:22:01 +01:00
dirkf
0f6422590e
[compat] Replace deficient ChainMap class in Py3.3 and earlier
2022-08-26 10:24:42 +01:00
dirkf
4c6fba3765
[jsinterp] Improve try/catch/finally support
2022-08-26 08:51:17 +01:00
dirkf
d619dd712f
[jsinterp] Fix bug in operator precedence
...
* from https://github.com/yt-dlp/yt-dlp/commit/164b03c4864b0d44cfee5e7702f7c2317164a6cf
* added tests
2022-08-25 12:16:10 +01:00
dirkf
573b13410e
[YouTube] Improve error check for n-sig processing
2022-08-25 12:14:59 +01:00
dirkf
66e58dccc2
[core] Avoid processing empty format list after removing bad formats
...
* also ensure compat encoding of error strings
2022-08-21 00:45:06 +01:00
dirkf
556862bc91
[utils] Ensure RFC3986 encoding result is unicode
2022-08-21 00:45:06 +01:00
dirkf
fd3f3bebd0
[uktvplay] Support domain without .uktv
2022-08-19 19:11:08 +01:00
dirkf
46b8ae2f52
[jsinterp] Clean up and pull yt-dlp style
...
* add compat_re_Pattern
* improve compat_collections_chain_map
* use class JS_Undefined
* remove unused code
2022-08-19 15:34:33 +01:00
dirkf and GitHub
538ec65ba7
[jsinterp] Handle regexp literals and throw/catch execution ( #31182 )
...
* based on https://github.com/yt-dlp/yt-dlp/commit/f6ca640b122239d5ab215f8c2564efb7ac3e8c65 , thanks pukkandan
* adds parse support for regexp flags
2022-08-19 11:45:04 +01:00
dirkf and GitHub
b0a60ce203
[jsinterp] Improve JS language support ( #31175 )
...
* operator ??
* operator ?.
* operator **
* accurate operator functions
* `undefined` handling
* object literals {a: 1, "b": expr}
* more tests for weird JS comparisons: see https://github.com/ytdl-org/youtube-dl/issues/31173#issuecomment-1217854397 .
2022-08-17 14:22:02 +01:00
dirkf
e52e8b8111
[postprocessor] Don't replace existing value with null metadata parsed from title
2022-08-15 16:45:04 +01:00
dirkf and GitHub
d231b56717
[jsinterp] Overhaul JSInterp to handle new YT players 4c3f79c5, 324f67b9 ( #31170 )
...
* back-port from yt-dlp 8f53dc44a0cc1c2d98c35740b9293462c080f5d0, thanks pukkandan
* also support void, improve <</>> precedence, improve expressions in comma-list
* add more tests
2022-08-14 18:45:45 +01:00
dirkf
e6a836d54c
[core] Make --max-downloads ... stop immediately on reaching the limit
...
Based on and closes #26638 .
2022-08-10 15:37:59 +01:00
dirkf and GitHub
deee741fb1
[test, etc] Improve download test logs; also clean up some new flake8 issues ( #31153 )
...
* [test] Identify testcase errors better
* [test] Identify download errors better
* [extractor/minds] Linter
* [extractor/aes] Linter
2022-08-09 21:05:00 +01:00
dirkf and GitHub
090acd58c1
[options] Improve be35e53 (--match-/reject-title parameter value)
...
Resolves #31064 .
2022-07-03 20:05:21 +01:00
dirkf
a03b9775d5
[Mediaset] Support player version number in URL pattern
...
Ref: https://github.com/yt-dlp/yt-dlp/issues/4141
2022-06-26 14:24:06 +01:00
dirkf
8a158a936c
[NHK] Use new API URL
2022-06-15 18:28:19 +01:00
dirkf
11665dd236
[test] Fix linter for 3aa94d7945
2022-06-15 18:28:19 +01:00
dirkf
cc179df346
[XHamster] Support xhday.com alias, extract uploader_id
...
* support xhday.com alias for xhamster.com (resolves #31023 )
Authored by: dirkf
* extract `uploader_id`:
from https://github.com/yt-dlp/yt-dlp/commit/908b56eaf7872149706dbd7fa071f838d0c786b7
(PR https://github.com/yt-dlp/yt-dlp/pull/844 )
Authored by: octotherp
2022-06-12 14:10:38 +01:00
dirkf
811c480f7b
[YouTube] Support JSON3 subtitle format
...
* subtitle tests updated to match
2022-06-09 15:25:23 +01:00
dirkf
3aa94d7945
[test] Fix workable subtitle tests (except YT) and mark others as skip, broken
...
* broken tests need to be fixed when fixing the respective IE
2022-06-08 23:11:33 +01:00
dirkf
ef044be34b
[test] Skip not _WORKING IE in subtitle tests; use unittest.skipTest throughout
2022-06-08 15:52:21 +01:00
dirkf
530f4582d0
[HRFernsehen] Back-port new extractor from yt-dlp
...
Closes #26445 , where this was originally proposed.
2022-06-06 19:29:48 +01:00
dirkf
04fd3289d3
[YouPorn] Improve upload_date extraction
...
See https://github.com/yt-dlp/yt-dlp/issues/2701#issuecomment-1034341883
2022-05-28 13:54:32 +01:00
dirkf
52c3751df7
[utils] Enable ALPN in HTTPS to satisfy broken servers
...
See https://github.com/yt-dlp/yt-dlp/issues/3878
2022-05-28 13:52:51 +01:00
dirkf
187a48aee2
[YouTube] Handle player c5a4daa1 with indirect n-function definition
...
* resolves #30976
2022-05-24 15:43:56 +01:00
dirkf and GitHub
c3deca86ae
[wat.tv] Add version pver to metadata API call
...
Resolves #30959 .
2022-05-19 17:41:48 +00:00
dirkf and GitHub
c7965b9fc2
[NHK] Support alphabetic characters in 7-char NhkVod IDs ( #29682 )
2022-05-09 18:54:41 +01:00
dirkf
e988fa4523
[doc] Clarify test naming
2022-04-29 16:56:00 +01:00
dirkf and GitHub
e27d8d819f
[streamcz] Remove empty '{}'.format() for Py2.6
...
Use `'-join()'` here, or `{0}`, ..., in general.
2022-04-29 13:36:02 +01:00
dirkf
a0068bd6be
[Youtube] Fix "n" descrambling for player fae06c11
...
Resolves #30856 .
2022-04-15 16:07:09 +01:00
dirkf and GitHub
b764dbe773
Disable blank issues
2022-04-10 05:49:09 +01:00
dirkf
49c5293014
Ignore --external-downloader-args if --external-downloader was rejected
...
... and generate warning
2022-03-25 14:47:26 +00:00
df
6508688e88
Make default upload_/release_date a compat_str
...
Ensures download tests pass in Python 2 as well as 3; also
add YoutubeDL tests for timestamp -> upload_date etc.
2022-02-26 10:29:42 +00:00
dirkf
4194d253c0
Avoid skipping ID when unlisted_hash is numeric
...
Pattern needed a non-greedy match; also replaced a redundant test with one for this, issue 29690
2022-02-26 10:29:42 +00:00
dirkf
f8e543c906
[Alsace20TV] Add new extractors Alsace20TVIE, Alsace20TVEmbedIE
2022-02-24 18:43:47 +00:00
dirkf
c4d1738316
[CPAC] Add extractor for Canadian Parliament
...
CPACIE: single episode
CPACPlaylistIE: playlists and searches
2022-02-24 18:27:57 +00:00
1f13ccfd7f
Fixed groups() call on potentially empty regex search object ( #30676 )
...
* Fixed groups() call on potentially empty regex search object.
- https://github.com/ytdl-org/youtube-dl/issues/30521
* minimising lines changed
Co-authored-by: yayorbitgum <50963144+yayorbitgum@users.noreply.github.com >
2022-02-24 18:26:58 +00:00
dirkf
74f8cc48af
[extractor/videa] Back-port from yt-dlp PRs 463+1028
...
Authored by: nyuszika7h
2022-02-11 12:43:26 +00:00
dirkf
266b6ef185
[BBC] Also allow PID with leading 'l' (live?)
2022-02-09 21:21:59 +00:00
dirkf and GitHub
825d3426c5
[Nuvid] Use site JSON for video details ( #29332 )
...
Back-port yt-dlp PR 1022 onto PR #17890 and update
Video details aren't in the original HTML now but populated by async JS
Co-authored by: u-spec-png
Co-authored by: vidaritos
2022-02-09 02:40:34 +00:00
dirkf
47b0c8697a
[ARD] Back-port subtitle extraction from yt-dlp PR 2409
...
Authored by: fstirlitz
Fixes #30543
Closes #17766 (thanks ngdio)
2022-02-07 13:47:38 +00:00
df
ddc080a562
Add ArteTVCategoryIE to support category playlists
2022-02-05 03:02:56 +00:00
dirkf
58babe9af7
Support __INITIAL_DATA__ with stringified JSON
...
Add test and fix test for bbcthreeConfig
2022-02-05 02:51:46 +00:00
df
6d4932f023
Try for timestamp, description from window.__INITIAL_DATA__ pages
2022-02-05 02:51:46 +00:00
dirkf
92d73ef393
[niconico] Implement heartbeat for download
2022-02-05 02:47:21 +00:00
dirkf
91278f4b6b
[niconico] Back-port extractor from yt-dlp
...
Add Nico search extractors, fix extraction
2022-02-05 02:47:21 +00:00
dirkf
73e1ab6125
[test:download] Only extract enough videos for playlist_mincount
2022-02-05 02:47:21 +00:00
dirkf
584715a803
[applepodcasts] Extract default thumbnail image
2022-02-05 02:32:45 +00:00
dirkf
e00b0eab1e
[applepodcasts] Improve format extraction
...
Set acodec and vcodec, etc, to avoid breaking, eg, bestaudio
2022-02-05 02:32:45 +00:00
dirkf
005339d637
[applepodcasts] Support new AMP-ish page structure
2022-02-05 02:32:45 +00:00
dirkf
9642344965
Fix tests for working IEs; disable obsolete WDRMobile
2022-02-05 02:22:45 +00:00
dirkf
568c7005d5
Fix WDRMaus; extend URL matching for other Maus pages; improve ID extraction
2022-02-05 02:22:45 +00:00
dirkf
5cb4833f40
Update URPlayIE extractor for Next.js page format, with subtitles
2022-02-05 02:16:53 +00:00
dirkf
5197336de6
Support more deeply nested ptmd_path with test, update tests
2022-02-05 02:14:35 +00:00