dirkf
f47fdb9564
[utils] Add {expected_type} and Iterable support to traverse_obj()
1 year ago
dirkf
f24bc9272e
[Misc] Fixes for 2.6 compatibility
2 years ago
dirkf
b08a580906
[workflows/ci.yml] Fix test support for Py 2.6
2 years ago
dirkf
2500300c2a
[workflows/ci.yml] Restore test support for Py 3.2
2 years ago
pukkandan
9112e668a5
[YouTube] Improve nsig function name extraction
...
Fixes player b7910ca8, using `,` vs `;`
See https://github.com/ytdl-org/youtube-dl/issues/32292#issuecomment-1602231170
Co-authored-by: dirkf
2 years ago
dirkf
ae8ba2c319
[YouTube] Fix `KeyError QV` in signature extraction failed
...
* temporarily force missing global definition into sig JS
* improve test: thanks https://github.com/yt-dlp/yt-dlp/issues/7327#issuecomment-1595274615
* resolves #32314
2 years ago
dirkf
a2534f7b88
[jsinterp] Fix div bug breaking player 8c7583ff
...
Thx bashonly: https://github.com/ytdl-org/youtube-dl/issues/32292#issuecomment-1585639223
Fixes #32292
2 years ago
dirkf
d89c2137ba
[jsinterp] Small updates for a85a875
...
* update signature tests
* clarify NaN handling
2 years ago
dirkf
a85a875fef
[jsinterp] Handle NaN in bitwise operators
...
* also add _NaN
* also pull function naming from yt-dlp
2 years ago
dirkf
211cbfd5d4
[jsinterp] Minimally handle arithmetic operator precedence
...
Resolves #32066
2 years ago
dirkf
f35b757c82
[utils] Ensure `allow_types` for `variadic()` is a tuple
2 years ago
dirkf
45495228b7
[downloader/http] Only check for resumability when actually resuming
2 years ago
dirkf
0402710227
[jsinterp] Fix regexp parsing and .replace[All] method
...
* For performance, make regexp object instantiation lazy
* Other small performance improvements
2 years ago
pukkandan
3e92c60fcd
[jsinterp] Handle `Date` at epoch 0
...
See yt-dlp/yt_dlp#6400
2 years ago
dirkf
e67e52a8f8
[test] Support test-case with volatile ID (eg live show)
...
Signalled by regexp ID value, eg: `'id': r're:[\da-zA-Z_-]{8,}'`
2 years ago
pukkandan
1d3751c3fe
Escape URLs in `sanitized_Request`, not `sanitize_url` d2558234cf5dd12d6896eed5427b7dcdb3ab7b5a added escaping of URLs while sanitizing. However, `sanitize_url` may not always receive an actual URL. Eg: When using `youtube-dl "search query" --default-search ytsearch`, `search query` gets escaped to `search%20query` before being prefixed with `ytsearch:` which is not the intended behavior. So the escaping is moved to `sanitized_Request` instead.
2 years ago
dirkf
dd9aa74bee
[test] Avoid name TestIE which causes a pytest warning
...
See: 060ac76257
2 years ago
dirkf
42b098dd79
[InfoExtractor] Handle unquoted values in OpenGraph searches
2 years ago
teddy171
33db85c571
[feat]: Add support to external downloader aria2p ( #31500 )
...
* feat: add class Aria2pFD
* feat: create call_downloader function
* feat: a colorful download interface to aria2pFD
* feat: change value name
* Apply suggestions from code review
Co-authored-by: dirkf <fieldhouse@gmx.net>
* Typo in suggestion
* fix: remove unused value
* fix: add not function to return value(0 is normal); add total_seconds to download.eta(timedelta object); add waiting status when hook progress
* fix: remove unuse method ..utils.format_bytes
* fix: be up to flake8
* fix: be up to flake8
* Apply suggestions from code review
* [feat] test external downloader aria2p
* [feat] test external downloader aria2p
* [fix] test_external_downloader.py
* Apply suggestions from code review
Co-authored-by: dirkf <fieldhouse@gmx.net>
* Apply suggestions from code review
Co-authored-by: dirkf <fieldhouse@gmx.net>
* Update test/test_external_downloader.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
* Update test/test_external_downloader.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
* Update youtube_dl/downloader/external.py
Co-authored-by: dirkf <fieldhouse@gmx.net>
* refactoring code and fix bugs
* Apply suggestions from code review
* Rename test_external_downloader.py to test_downloader_external.py
---------
Co-authored-by: dirkf <fieldhouse@gmx.net>
2 years ago
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()
2 years ago
dirkf
4e04f10499
[compat] Update test_compat
...
[skip ci]
2 years ago
dirkf
249f2b6316
[compat] Systematise compat_ naming
...
[skip ci]
2 years ago
dirkf
d6b14ba316
[test] Fix TestAgeRestriction
...
* age restriction may cause DownloadError
* update obsolete test URLs
[skip ci]
2 years ago
dirkf
295736c9cb
[jsinterp] Improve parsing
...
* support subset `... else if ...`
* support `while`
* add `RegExp` class
* generalise `new` support
* limited more debug strings
* matching test changes
2 years ago
pukkandan
14ef89a8da
Support `if` statements
...
Fix for yt-dlp/yt_dlp#6131
Closes #31509
2 years ago
Andrei Lebedev
27ed77aabb
[utils] Backport traverse_obj (etc) from yt-dlp ( #31156 )
...
* Backport traverse_obj and closely related function from yt-dlp (code by pukkandan)
* Backport LazyList, variadic(), try_call (code by pukkandan)
* Recast using yt-dlp's newer traverse_obj() implementation and tests (code by grub4k)
* Add tests for Unicode case folding support matching Py3.5+ (requires f102e3d
)
* Improve/add tests for variadic, try_call, join_nonempty
Co-authored-by: dirkf <fieldhouse@gmx.net>
2 years ago
dirkf
087ddc2371
[compat] Add test for compat_casefold()
2 years ago
dirkf
65ccb0dd4e
[compat] Add test for compat_casefold()
2 years ago
Xie Yanbo
c91cbf6072
[netease] Get netease music download url through player api ( #31235 )
...
* remove unplayable song from test
* compatible with python 2
* using standard User_Agent, fix imports
* use hash instead of long description
* fix lint
* fix hash
2 years ago
dirkf
2ced5a7912
[test] Implement string "lambda x: condition(x)" as an expected value
...
Semantics equivalent to `assert condition(got)`
2 years ago
pukkandan
7009bb9f31
[jsinterp] Workaround operator associativity issue
...
* temporary fix for player 5a3b6271 [1]
1. https://github.com/yt-dlp/yt-dlp/issues/4635#issuecomment-1235384480
2 years ago
dirkf
218c423bc0
[cache] Add cache validation by program version, based on yt-dlp
2 years ago
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
2 years ago
dirkf
4c6fba3765
[jsinterp] Improve try/catch/finally support
2 years ago
dirkf
d619dd712f
[jsinterp] Fix bug in operator precedence
...
* from 164b03c486
* added tests
2 years ago
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
2 years ago
dirkf
538ec65ba7
[jsinterp] Handle regexp literals and throw/catch execution ( #31182 )
...
* based on f6ca640b12
, thanks pukkandan
* adds parse support for regexp flags
2 years ago
dirkf
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 .
2 years ago
dirkf
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
2 years ago
dirkf
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
2 years ago
dirkf
11665dd236
[test] Fix linter for 3aa94d7945
3 years ago
dirkf
811c480f7b
[YouTube] Support JSON3 subtitle format
...
* subtitle tests updated to match
3 years ago
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
3 years ago
dirkf
ef044be34b
[test] Skip not _WORKING IE in subtitle tests; use unittest.skipTest throughout
3 years ago
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.
3 years ago
dirkf
73e1ab6125
[test:download] Only extract enough videos for playlist_mincount
3 years ago
dirkf
7a497f1405
Rework 2c2c2bd
with an actual Mix page and realistic playlist size
...
From 2c2c2bd348 (commitcomment-65953545)
3 years ago
dirkf
5add3f4373
Merge branch 'pukkandan-yt-searchurl' into yt-dl-master
...
Closes #27749
3 years ago
dirkf
1e677567cd
[YouTube] Fix n-sig for player e06dea74 ( #30582 )
...
From yt-dl commit 48416bc
3 years ago
dirkf
9d142109f4
Back-port test_youtube_signature.py from yt-dlp and fix JSInterp accordingly
3 years ago