yt-dlp 2025.12.26.233056.dev0__py3-none-any.whl → 2025.12.30.233018.dev0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- yt_dlp/extractor/_extractors.py +0 -4
- yt_dlp/extractor/facebook.py +0 -64
- yt_dlp/extractor/generic.py +9 -5
- yt_dlp/extractor/iqiyi.py +0 -184
- yt_dlp/extractor/lazy_extractors.py +2 -33
- yt_dlp/extractor/nebula.py +9 -1
- yt_dlp/extractor/picarto.py +3 -3
- yt_dlp/extractor/twitter.py +37 -194
- yt_dlp/extractor/youtube/_base.py +1 -1
- yt_dlp/extractor/youtube/_video.py +78 -24
- yt_dlp/utils/_utils.py +1 -1
- yt_dlp/version.py +3 -3
- {yt_dlp-2025.12.26.233056.dev0.data → yt_dlp-2025.12.30.233018.dev0.data}/data/share/doc/yt_dlp/README.txt +9 -5
- {yt_dlp-2025.12.26.233056.dev0.data → yt_dlp-2025.12.30.233018.dev0.data}/data/share/man/man1/yt-dlp.1 +9 -4
- {yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/METADATA +4 -3
- {yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/RECORD +22 -23
- yt_dlp/extractor/scte.py +0 -137
- {yt_dlp-2025.12.26.233056.dev0.data → yt_dlp-2025.12.30.233018.dev0.data}/data/share/bash-completion/completions/yt-dlp +0 -0
- {yt_dlp-2025.12.26.233056.dev0.data → yt_dlp-2025.12.30.233018.dev0.data}/data/share/fish/vendor_completions.d/yt-dlp.fish +0 -0
- {yt_dlp-2025.12.26.233056.dev0.data → yt_dlp-2025.12.30.233018.dev0.data}/data/share/zsh/site-functions/_yt-dlp +0 -0
- {yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/WHEEL +0 -0
- {yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/entry_points.txt +0 -0
- {yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/licenses/LICENSE +0 -0
{yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: yt-dlp
|
|
3
|
-
Version: 2025.12.
|
|
3
|
+
Version: 2025.12.30.233018.dev0
|
|
4
4
|
Summary: A feature-rich command-line audio/video downloader
|
|
5
5
|
Project-URL: Documentation, https://github.com/yt-dlp/yt-dlp#readme
|
|
6
6
|
Project-URL: Repository, https://github.com/yt-dlp/yt-dlp
|
|
@@ -1928,8 +1928,9 @@ The following extractors use this feature:
|
|
|
1928
1928
|
* `player_js_variant`: The player javascript variant to use for n/sig deciphering. The known variants are: `main`, `tcc`, `tce`, `es5`, `es6`, `tv`, `tv_es6`, `phone`, `tablet`. The default is `main`, and the others are for debugging purposes. You can use `actual` to go with what is prescribed by the site
|
|
1929
1929
|
* `player_js_version`: The player javascript version to use for n/sig deciphering, in the format of `signature_timestamp@hash` (e.g. `20348@0004de42`). The default is to use what is prescribed by the site, and can be selected with `actual`
|
|
1930
1930
|
* `comment_sort`: `top` or `new` (default) - choose comment sorting mode (on YouTube's side)
|
|
1931
|
-
* `max_comments`: Limit the amount of comments to gather. Comma-separated list of integers representing `max-comments,max-parents,max-replies,max-replies-per-thread`. Default is `all,all,all,all`
|
|
1932
|
-
*
|
|
1931
|
+
* `max_comments`: Limit the amount of comments to gather. Comma-separated list of integers representing `max-comments,max-parents,max-replies,max-replies-per-thread,max-depth`. Default is `all,all,all,all,all`
|
|
1932
|
+
* A `max-depth` value of `1` will discard all replies, regardless of the `max-replies` or `max-replies-per-thread` values given
|
|
1933
|
+
* E.g. `all,all,1000,10,2` will get a maximum of 1000 replies total, with up to 10 replies per thread, and only 2 levels of depth (i.e. top-level comments plus their immediate replies). `1000,all,100` will get a maximum of 1000 comments, with a maximum of 100 replies total
|
|
1933
1934
|
* `formats`: Change the types of formats to return. `dashy` (convert HTTP to DASH), `duplicate` (identical content but different URLs or protocol; includes `dashy`), `incomplete` (cannot be downloaded completely - live dash and post-live m3u8), `missing_pot` (include formats that require a PO Token but are missing one)
|
|
1934
1935
|
* `innertube_host`: Innertube API host to use for all API requests; e.g. `studio.youtube.com`, `youtubei.googleapis.com`. Note that cookies exported from one subdomain will not work on others
|
|
1935
1936
|
* `innertube_key`: Innertube API key to use for all API requests. By default, no API key is used
|
|
@@ -11,7 +11,7 @@ yt_dlp/options.py,sha256=72Qipr6jhFUO4gUPTIJsqYeHujnZi1L1GYx1Vn5qtiM,100390
|
|
|
11
11
|
yt_dlp/plugins.py,sha256=EGmR0ydaahNspGrgszTNX4-YjHe93WOOhcw1gf6PZSs,8215
|
|
12
12
|
yt_dlp/socks.py,sha256=oAuAfWM6jxI8A5hHDLEKq2U2-k9NyMB_z6nrKzNE9fg,8936
|
|
13
13
|
yt_dlp/update.py,sha256=sY7gNFBQorzs7sEjRrqL5QOsTBNmGGa_FnpTtbxY1vA,25280
|
|
14
|
-
yt_dlp/version.py,sha256=
|
|
14
|
+
yt_dlp/version.py,sha256=XfWqEg3gEtV8qJDkRw3dQUa0K7-1wnTgokooqXv4tYM,360
|
|
15
15
|
yt_dlp/webvtt.py,sha256=ONkXaaNCZcX8pQhJn3iwIKyaQ34BtVDrMEdG6wRNZwM,11451
|
|
16
16
|
yt_dlp/__pyinstaller/__init__.py,sha256=-c4Zo8nQGKAm8wc_LDscxMtK7zr_YhZwRnC9CMruUBE,72
|
|
17
17
|
yt_dlp/__pyinstaller/hook-yt_dlp.py,sha256=5Rd0zV2pDskjY1KtT0wsjxv4hStx67sLCjUexsFvFus,1339
|
|
@@ -43,7 +43,7 @@ yt_dlp/downloader/rtsp.py,sha256=LenaspFKHde5EkP52oU6jiHYxYferyyGgFPLfm6S5Hs,147
|
|
|
43
43
|
yt_dlp/downloader/websocket.py,sha256=G39SkXEIGtUEYaP1_ODXMiZGZgIrFeb3wqlfVypcHUM,1772
|
|
44
44
|
yt_dlp/downloader/youtube_live_chat.py,sha256=JLpGIUNNbuM7ZuZMY9A6X3xrRDfs3sWz4tzXLXpa1P4,10875
|
|
45
45
|
yt_dlp/extractor/__init__.py,sha256=XMV5BpSWbaDXGkkI2sim_iJk7y0BpCgrDcPjwenA1Y0,1764
|
|
46
|
-
yt_dlp/extractor/_extractors.py,sha256=
|
|
46
|
+
yt_dlp/extractor/_extractors.py,sha256=Ls1NUgTEBWqycCztH01ZUNEqbs5Fiek8DxEZpIdDh-4,54400
|
|
47
47
|
yt_dlp/extractor/abc.py,sha256=rGyouEhGP6gdZlDxkYHHmdnMpaOYoQDXeRMy_JeON1I,18876
|
|
48
48
|
yt_dlp/extractor/abcnews.py,sha256=STJP1ynxEOWURHQSoT-568klK6NIl7MY4KSjjUK_CAg,6326
|
|
49
49
|
yt_dlp/extractor/abcotvs.py,sha256=VYLvqEeBr02xOakqx09A5p4e81Ap1Rp2yfcPpNiTu9g,4555
|
|
@@ -293,7 +293,7 @@ yt_dlp/extractor/euscreen.py,sha256=zLKQ5l94fjJHFlE80-387Ygtp51LUXNbJPMOxX1jQJA,
|
|
|
293
293
|
yt_dlp/extractor/expressen.py,sha256=APCajK9x8BcUKg1Ob-hKUjrQarPW0DgiC4RfR5BKvPs,4086
|
|
294
294
|
yt_dlp/extractor/extractors.py,sha256=T56osbCkdWiEc5fKUdozoFuE7E-txLHBoo8nF4vhxcc,979
|
|
295
295
|
yt_dlp/extractor/eyedotv.py,sha256=hxN_RST8wmkpAq7yE9eLNstFF8F-9yxarhL0Ff4teRY,2617
|
|
296
|
-
yt_dlp/extractor/facebook.py,sha256=
|
|
296
|
+
yt_dlp/extractor/facebook.py,sha256=EwvmMomgrW2rNHGv2a5ySTeA2YWqKD35AiacUVTwWSY,52746
|
|
297
297
|
yt_dlp/extractor/fancode.py,sha256=5g9vL3uSFkJuOGu9jA7RvNMa_JJOdsTY9tJK7MelTLI,7235
|
|
298
298
|
yt_dlp/extractor/fathom.py,sha256=Zen0ODNNDno65GzB4VfDsarmYDb3vrMgXCQeRBSneoI,1836
|
|
299
299
|
yt_dlp/extractor/faulio.py,sha256=L_qcU0nW5PtQTi8grW6chqt_qaOJsClbR-XR2fQniYQ,8606
|
|
@@ -341,7 +341,7 @@ yt_dlp/extractor/gazeta.py,sha256=TPAyAUT6wPWrPABDdy8BEBPqriPhJzV5CfEfzo2JSZ8,19
|
|
|
341
341
|
yt_dlp/extractor/gbnews.py,sha256=I8btFYZMP8IHM72NxbQ4bcLRCUisjL9DBXv6lSn3BHk,4514
|
|
342
342
|
yt_dlp/extractor/gdcvault.py,sha256=XjqbEYm0emjlE-iP8aXmWjZ17D0dV6Bdv51idUGQaQw,8542
|
|
343
343
|
yt_dlp/extractor/gedidigital.py,sha256=XGeRNC7LmNIBe4tLVgeGQTYyykcgHjFu_BFi_0lAS4s,8521
|
|
344
|
-
yt_dlp/extractor/generic.py,sha256=
|
|
344
|
+
yt_dlp/extractor/generic.py,sha256=FqFg2G4TeLNrtR-0O8TeZMAF4HAKfrBmjnbExwraA3w,58980
|
|
345
345
|
yt_dlp/extractor/genericembeds.py,sha256=6vVNdeCccZ5JcdZxsLSAHPfhG1kjXOAelHWCXax8LHY,4613
|
|
346
346
|
yt_dlp/extractor/genius.py,sha256=BgRpIRyVrjqZ9b4SvrRTIkQgtzE6L5kke7l5OW3AMv8,6103
|
|
347
347
|
yt_dlp/extractor/germanupa.py,sha256=FMmWu0zhSbbGdrTa86r1AtvqG-MtR3dYsmCn6YdVBo4,4051
|
|
@@ -414,7 +414,7 @@ yt_dlp/extractor/instagram.py,sha256=LWx2De1JDwDvC9FL7MT9Dly80sM2A8BTm2iCJrCUAkc
|
|
|
414
414
|
yt_dlp/extractor/internazionale.py,sha256=aBOWQeOIHHtlOFqcuVsc5DeFzzhOdTyuPBvp_PvJTWQ,3106
|
|
415
415
|
yt_dlp/extractor/internetvideoarchive.py,sha256=81YFAHAtmx8opkk7CQ9fqH3-D5-Y-zpo4cdMMmKBtsw,2261
|
|
416
416
|
yt_dlp/extractor/iprima.py,sha256=jwUKaXVudRkqweNCAQ87fC3zZWLMa4wBL8Y2wwaT8kk,10579
|
|
417
|
-
yt_dlp/extractor/iqiyi.py,sha256=
|
|
417
|
+
yt_dlp/extractor/iqiyi.py,sha256=Iu8HNIWviEoUdREewFAPvlC4gHyDiCdYDue3zbHXsT4,24701
|
|
418
418
|
yt_dlp/extractor/islamchannel.py,sha256=k7KDIhDjNfT38_7L5IxvgZ4nmTFx10b2oxLQTaVWKy4,3178
|
|
419
419
|
yt_dlp/extractor/israelnationalnews.py,sha256=uKtuY2xIE_GT6ewwO3W33pgYRk4C02H9dRrQR7qTxmk,2162
|
|
420
420
|
yt_dlp/extractor/itprotv.py,sha256=tf9a06WV0LAyVyMzXsgM5NoB8uwIJhDfQOO4aAAV6LU,5350
|
|
@@ -460,7 +460,7 @@ yt_dlp/extractor/la7.py,sha256=GShDLu1N0rS1bY4uIiUkznThvn7gNiwtSgmh7Rs7t08,9435
|
|
|
460
460
|
yt_dlp/extractor/laracasts.py,sha256=PzTqAbHXiUqog-mpp2qR_rpKa-sZel4mLyzWTPkbDuc,4587
|
|
461
461
|
yt_dlp/extractor/lastfm.py,sha256=OpmE-Y-2rcav2r2xaDQzX_EJiltmbbe6fO9VzkLqNWQ,4748
|
|
462
462
|
yt_dlp/extractor/laxarxames.py,sha256=-YyL-5y4t2L9ptTSLXhvK-SJwvXGqv5l1HfT129zF0c,2773
|
|
463
|
-
yt_dlp/extractor/lazy_extractors.py,sha256=
|
|
463
|
+
yt_dlp/extractor/lazy_extractors.py,sha256=eNOyfLl339nkxHq2CkTN52DMfY3Mbku8ZE9oVlqzp0g,812775
|
|
464
464
|
yt_dlp/extractor/lbry.py,sha256=gC9jRRo8wSXc1-6somhW13brAtmWGlJ5_Q0NMhZpKwk,18078
|
|
465
465
|
yt_dlp/extractor/lci.py,sha256=_0XuoITIt_QFA-6eBNpDXZZfouwUWfcdHQlpAOuiLEs,2131
|
|
466
466
|
yt_dlp/extractor/lcp.py,sha256=edMA8L-eJZLquDvHcSY4oFWI0C8yGgjqW1tmhhLMJ5U,2279
|
|
@@ -568,7 +568,7 @@ yt_dlp/extractor/nba.py,sha256=8PGYkiVMnZoI2nZ3AHv5hI8GgnStNahL86H6M--4eiE,16293
|
|
|
568
568
|
yt_dlp/extractor/nbc.py,sha256=gwNEyy4ufAXrDqHQf2ARjyxnKpnzUDYQngyjbG07P8E,48091
|
|
569
569
|
yt_dlp/extractor/ndr.py,sha256=HSKkrQJdlXKLrBP4QZO_01wLcsEwAbcQpsSVsr1qhYE,18173
|
|
570
570
|
yt_dlp/extractor/ndtv.py,sha256=5ASCATnDJzjKzFEjfreqUxn0Eq5xKqH5fAldX8D4yZE,4513
|
|
571
|
-
yt_dlp/extractor/nebula.py,sha256=
|
|
571
|
+
yt_dlp/extractor/nebula.py,sha256=dTIm1VYBBHQTF9q4vzRlDzpkVaq26ieJmduQV091sfo,23728
|
|
572
572
|
yt_dlp/extractor/nekohacker.py,sha256=XrqJBtLxxrUfc8QfM53aCV_kEEpsds79rEI2CleWX5Y,9549
|
|
573
573
|
yt_dlp/extractor/nerdcubed.py,sha256=dX8_GfnRcoYADJKN-pzQxXRd8CvqyT13Lry9v7rcTbg,1486
|
|
574
574
|
yt_dlp/extractor/nest.py,sha256=xjFemzRYlcac7GEhUOtFreKZHxhJ3r_bqTFxOHZazKY,4647
|
|
@@ -662,7 +662,7 @@ yt_dlp/extractor/phoenix.py,sha256=RimZJ_CZ2u8CXWzWzsRxyz8j2h1pX8aoPEcxcCg2elQ,3
|
|
|
662
662
|
yt_dlp/extractor/photobucket.py,sha256=OZRZ1ke878NTqNneGp9a0yeIA-_llUy7WDOE2AexKWw,1698
|
|
663
663
|
yt_dlp/extractor/pialive.py,sha256=ZeLC8rpWYJEHDul5YYRGZcCJ3VfaDLZ1bilD50Rtxv0,5522
|
|
664
664
|
yt_dlp/extractor/piapro.py,sha256=QCSnxf60IA1lDV28W1RKQyywcfaaLzH35z--SEMbZwc,4302
|
|
665
|
-
yt_dlp/extractor/picarto.py,sha256=
|
|
665
|
+
yt_dlp/extractor/picarto.py,sha256=L9rRki5u6_UKST9zQ20h9PrVhxsmPlw7wMXRJzQ1ss0,5295
|
|
666
666
|
yt_dlp/extractor/piksel.py,sha256=GIhsNtq7l1zm5vsegeOsZ-DPT8vV0eFVCj0T3Wx4M1o,7206
|
|
667
667
|
yt_dlp/extractor/pinkbike.py,sha256=J1XybWVHfXfNnzz4qPralPMd7hFLe1r6XliPxM3uJCM,3351
|
|
668
668
|
yt_dlp/extractor/pinterest.py,sha256=454P1Mvxej66jOsGgUYSveIC_kMZCnSUOvOz4jdDr44,10545
|
|
@@ -774,7 +774,6 @@ yt_dlp/extractor/screencastomatic.py,sha256=fpY4q2eI3zNmyMsvPPZMdiMhfD3XRpzdJZ80
|
|
|
774
774
|
yt_dlp/extractor/screenrec.py,sha256=7ECYXOKR1kXQ1gOwA52CQASgpQ3rPvOzm-v2DE8M6ts,1171
|
|
775
775
|
yt_dlp/extractor/scrippsnetworks.py,sha256=Xs68XV-PFN78FX9FDD3iwSc7zeLHXjkAlKFjSSbxH2s,5957
|
|
776
776
|
yt_dlp/extractor/scrolller.py,sha256=gpf9gAMH9xUX0Bb3QRtfqxgutHY8Hktb-0jvHbD8nEc,3766
|
|
777
|
-
yt_dlp/extractor/scte.py,sha256=Uyrct9qGupvOqgpjY4P5Xz1GHclk07XFCQY_ujI1ZDY,4860
|
|
778
777
|
yt_dlp/extractor/sejmpl.py,sha256=T2rFF4weCBrpcH11WEGKF1YXj0RZKdqAi-ic0LiPu1o,8609
|
|
779
778
|
yt_dlp/extractor/sen.py,sha256=smVTHvvZ-ivfhRcvVs6ypmHw3V1Evf40JoBpFLm5-7c,1459
|
|
780
779
|
yt_dlp/extractor/senalcolombia.py,sha256=bQuJb2f3POYiYEAPpvlbfOHTflXMyOb9ZC2Hp9Zzovw,1068
|
|
@@ -937,7 +936,7 @@ yt_dlp/extractor/twentymin.py,sha256=c3vIstexHUmthQP6R3Hl0DVyI70LfC4MWIb4_VxYhsY
|
|
|
937
936
|
yt_dlp/extractor/twentythreevideo.py,sha256=bnnGCFO-WVnXTDrpgOKl8jot9nxmelPwR3vnqWyIaUQ,3241
|
|
938
937
|
yt_dlp/extractor/twitcasting.py,sha256=1L0h5kir4_HxCoMD18N-x5wvOJCKuX9Wj6p47uAzPBA,12990
|
|
939
938
|
yt_dlp/extractor/twitch.py,sha256=EJHC5LQvWdf2oBbb-h_WaitRev-YVeGmccfqvWPFXhk,47616
|
|
940
|
-
yt_dlp/extractor/twitter.py,sha256=
|
|
939
|
+
yt_dlp/extractor/twitter.py,sha256=D6XMMIz55mXbPsh2IDDl3HzT8MobJX7ROEk72gouE6w,76608
|
|
941
940
|
yt_dlp/extractor/txxx.py,sha256=lnYZFfSoZuR9A8gmfCUexZrifLU7JoGdZmiTs0o0Luw,17085
|
|
942
941
|
yt_dlp/extractor/udemy.py,sha256=hcSht3C1N_fnXHYFaIMzv843WeyToj7yMiepDK31sqI,19341
|
|
943
942
|
yt_dlp/extractor/udn.py,sha256=DgbID4d4hQrzqUG9l5UhskmERK4RQxu5wcvPgw9mlxU,3879
|
|
@@ -1059,14 +1058,14 @@ yt_dlp/extractor/zingmp3.py,sha256=KHD-f-1vUPy18Xk-_F_H_LfFR9N7-bONFYWeNRvJ1Z4,2
|
|
|
1059
1058
|
yt_dlp/extractor/zoom.py,sha256=DW5TmRR4GWWWloSysqYqN-R5jvDkLTMdsOzsyIWcltk,7090
|
|
1060
1059
|
yt_dlp/extractor/zype.py,sha256=e3_07aMl65x-ziI5Ge_Ph_lCV4q67DnqeRq2PjIKZj4,5507
|
|
1061
1060
|
yt_dlp/extractor/youtube/__init__.py,sha256=3F72z6WHXlv41giIdmmVY7Fws-bAnkiWz8Eh3A19004,1454
|
|
1062
|
-
yt_dlp/extractor/youtube/_base.py,sha256=
|
|
1061
|
+
yt_dlp/extractor/youtube/_base.py,sha256=HlC-OeuoGS8gJhiErGJ8My_wpjYL5iCJnQpgWjrpYXI,55551
|
|
1063
1062
|
yt_dlp/extractor/youtube/_clip.py,sha256=__EJUrb6iUCIURupsaa-ixn51q4esfok09znrpvdD88,3073
|
|
1064
1063
|
yt_dlp/extractor/youtube/_mistakes.py,sha256=bLrxlAYqdR0mTuCLoMmJHh15BHuhxfHXeQFTVBRX9Lk,2142
|
|
1065
1064
|
yt_dlp/extractor/youtube/_notifications.py,sha256=1nhavzW0e2QWFAWHkfbTU4sSXNp4vUbGFygYNSgbxBE,4585
|
|
1066
1065
|
yt_dlp/extractor/youtube/_redirect.py,sha256=WWWnGEkfSGBXpZFi_bWY4XcHZ8PDeK7UsndDaTYYhQg,9005
|
|
1067
1066
|
yt_dlp/extractor/youtube/_search.py,sha256=E9raTPGjUD6mm81WBpT4AsaxyiTBHdNssgzeHwVeNOE,6552
|
|
1068
1067
|
yt_dlp/extractor/youtube/_tab.py,sha256=MiQGWZdHENOz8Ac-OAuAgqMWJ6gC-PZKJWPDG80QY6E,115490
|
|
1069
|
-
yt_dlp/extractor/youtube/_video.py,sha256=
|
|
1068
|
+
yt_dlp/extractor/youtube/_video.py,sha256=TuKbGOdWVwFS1w-trTnBMapLOim3-8jfD7AcbBV1LCY,212253
|
|
1070
1069
|
yt_dlp/extractor/youtube/jsc/__init__.py,sha256=HaVFP8ikrLaE-ClAh39-S28WCF4S2KTRaSu7QvA28E8,289
|
|
1071
1070
|
yt_dlp/extractor/youtube/jsc/_director.py,sha256=92pB-KVSs6plmE5R8gpjkZL9aeoWNR0XTnGOBXMy9go,13167
|
|
1072
1071
|
yt_dlp/extractor/youtube/jsc/_registry.py,sha256=Vg9GkHKHKKPeRfUQ-XSw01mfx_2Xyodh0SJpwjawYCA,102
|
|
@@ -1116,19 +1115,19 @@ yt_dlp/utils/__init__.py,sha256=fktzbumix8bd9Xi288JebTYkxCuNhG21qkcSno-3g_s,283
|
|
|
1116
1115
|
yt_dlp/utils/_deprecated.py,sha256=5KjqmcPW8uIc77xkhvz1gwxBb-jBF7cwG5nI6xxHebU,1300
|
|
1117
1116
|
yt_dlp/utils/_jsruntime.py,sha256=cPLHquABqggAepWHIYlG9zgrnwjV4Le55mr8Fx71nCo,4319
|
|
1118
1117
|
yt_dlp/utils/_legacy.py,sha256=hmczdkw5SELzsFcB2AUblAY9bw8gIBDuPFTBlYvXe_4,7858
|
|
1119
|
-
yt_dlp/utils/_utils.py,sha256=
|
|
1118
|
+
yt_dlp/utils/_utils.py,sha256=rhzvAlyBERlgLmlNnLQuIzY3xEg9eWH05U1OazHrysI,191027
|
|
1120
1119
|
yt_dlp/utils/networking.py,sha256=OFupeRqIwaw5_GYWRYums5kpy--IyhE7Rt5JkZeFLIM,8651
|
|
1121
1120
|
yt_dlp/utils/progress.py,sha256=t9kVvJ0oWuEqRzo9fdFbIhHUBtO_8mg348QwZ1faqLo,3261
|
|
1122
1121
|
yt_dlp/utils/traversal.py,sha256=64E3RcZ56iSX50RI_HbKdDNftkETMLBaEPX791_b7yQ,18265
|
|
1123
1122
|
yt_dlp/utils/jslib/__init__.py,sha256=CbdJiRA7Eh5PnjF2V4lDTcg0J0XjBMaaq0H4pCfq9Tk,87
|
|
1124
1123
|
yt_dlp/utils/jslib/devalue.py,sha256=7DCGK_zUN0ZeV5hwPT06zaRMUxX_hyUyFWqs79rxw24,5621
|
|
1125
|
-
yt_dlp-2025.12.
|
|
1126
|
-
yt_dlp-2025.12.
|
|
1127
|
-
yt_dlp-2025.12.
|
|
1128
|
-
yt_dlp-2025.12.
|
|
1129
|
-
yt_dlp-2025.12.
|
|
1130
|
-
yt_dlp-2025.12.
|
|
1131
|
-
yt_dlp-2025.12.
|
|
1132
|
-
yt_dlp-2025.12.
|
|
1133
|
-
yt_dlp-2025.12.
|
|
1134
|
-
yt_dlp-2025.12.
|
|
1124
|
+
yt_dlp-2025.12.30.233018.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
|
|
1125
|
+
yt_dlp-2025.12.30.233018.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=cPx4ZehhabGCBTYTosfKHInDIeDasDSR2Xtxtl-xo58,165135
|
|
1126
|
+
yt_dlp-2025.12.30.233018.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=v2WQvWvk4qKpp2-97z2ULb5Msj5dgzU6nMkS-FwSmbM,51488
|
|
1127
|
+
yt_dlp-2025.12.30.233018.dev0.data/data/share/man/man1/yt-dlp.1,sha256=yyBAVJTtg0xPpkUsET4pkWywEepOaZ5Pap5UnleI85M,159690
|
|
1128
|
+
yt_dlp-2025.12.30.233018.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
|
|
1129
|
+
yt_dlp-2025.12.30.233018.dev0.dist-info/METADATA,sha256=K10Jf0lot224X1w-Mtv0WVJoE8kC_ZrqX9KBJ_65HGk,180513
|
|
1130
|
+
yt_dlp-2025.12.30.233018.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
1131
|
+
yt_dlp-2025.12.30.233018.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
|
|
1132
|
+
yt_dlp-2025.12.30.233018.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
|
|
1133
|
+
yt_dlp-2025.12.30.233018.dev0.dist-info/RECORD,,
|
yt_dlp/extractor/scte.py
DELETED
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
import re
|
|
2
|
-
|
|
3
|
-
from .common import InfoExtractor
|
|
4
|
-
from ..utils import (
|
|
5
|
-
ExtractorError,
|
|
6
|
-
decode_packed_codes,
|
|
7
|
-
urlencode_postdata,
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class SCTEBaseIE(InfoExtractor):
|
|
12
|
-
_LOGIN_URL = 'https://www.scte.org/SCTE/Sign_In.aspx'
|
|
13
|
-
_NETRC_MACHINE = 'scte'
|
|
14
|
-
|
|
15
|
-
def _perform_login(self, username, password):
|
|
16
|
-
login_popup = self._download_webpage(
|
|
17
|
-
self._LOGIN_URL, None, 'Downloading login popup')
|
|
18
|
-
|
|
19
|
-
def is_logged(webpage):
|
|
20
|
-
return any(re.search(p, webpage) for p in (
|
|
21
|
-
r'class=["\']welcome\b', r'>Sign Out<'))
|
|
22
|
-
|
|
23
|
-
# already logged in
|
|
24
|
-
if is_logged(login_popup):
|
|
25
|
-
return
|
|
26
|
-
|
|
27
|
-
login_form = self._hidden_inputs(login_popup)
|
|
28
|
-
|
|
29
|
-
login_form.update({
|
|
30
|
-
'ctl01$TemplateBody$WebPartManager1$gwpciNewContactSignInCommon$ciNewContactSignInCommon$signInUserName': username,
|
|
31
|
-
'ctl01$TemplateBody$WebPartManager1$gwpciNewContactSignInCommon$ciNewContactSignInCommon$signInPassword': password,
|
|
32
|
-
'ctl01$TemplateBody$WebPartManager1$gwpciNewContactSignInCommon$ciNewContactSignInCommon$RememberMe': 'on',
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
response = self._download_webpage(
|
|
36
|
-
self._LOGIN_URL, None, 'Logging in',
|
|
37
|
-
data=urlencode_postdata(login_form))
|
|
38
|
-
|
|
39
|
-
if '|pageRedirect|' not in response and not is_logged(response):
|
|
40
|
-
error = self._html_search_regex(
|
|
41
|
-
r'(?s)<[^>]+class=["\']AsiError["\'][^>]*>(.+?)</',
|
|
42
|
-
response, 'error message', default=None)
|
|
43
|
-
if error:
|
|
44
|
-
raise ExtractorError(f'Unable to login: {error}', expected=True)
|
|
45
|
-
raise ExtractorError('Unable to log in')
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
class SCTEIE(SCTEBaseIE):
|
|
49
|
-
_WORKING = False
|
|
50
|
-
_VALID_URL = r'https?://learning\.scte\.org/mod/scorm/view\.php?.*?\bid=(?P<id>\d+)'
|
|
51
|
-
_TESTS = [{
|
|
52
|
-
'url': 'https://learning.scte.org/mod/scorm/view.php?id=31484',
|
|
53
|
-
'info_dict': {
|
|
54
|
-
'title': 'Introduction to DOCSIS Engineering Professional',
|
|
55
|
-
'id': '31484',
|
|
56
|
-
},
|
|
57
|
-
'playlist_count': 5,
|
|
58
|
-
'skip': 'Requires account credentials',
|
|
59
|
-
}]
|
|
60
|
-
|
|
61
|
-
def _real_extract(self, url):
|
|
62
|
-
video_id = self._match_id(url)
|
|
63
|
-
|
|
64
|
-
webpage = self._download_webpage(url, video_id)
|
|
65
|
-
|
|
66
|
-
title = self._search_regex(r'<h1>(.+?)</h1>', webpage, 'title')
|
|
67
|
-
|
|
68
|
-
context_id = self._search_regex(r'context-(\d+)', webpage, video_id)
|
|
69
|
-
content_base = f'https://learning.scte.org/pluginfile.php/{context_id}/mod_scorm/content/8/'
|
|
70
|
-
context = decode_packed_codes(self._download_webpage(
|
|
71
|
-
f'{content_base}mobile/data.js', video_id))
|
|
72
|
-
|
|
73
|
-
data = self._parse_xml(
|
|
74
|
-
self._search_regex(
|
|
75
|
-
r'CreateData\(\s*"(.+?)"', context, 'data').replace(r"\'", "'"),
|
|
76
|
-
video_id)
|
|
77
|
-
|
|
78
|
-
entries = []
|
|
79
|
-
for asset in data.findall('.//asset'):
|
|
80
|
-
asset_url = asset.get('url')
|
|
81
|
-
if not asset_url or not asset_url.endswith('.mp4'):
|
|
82
|
-
continue
|
|
83
|
-
asset_id = self._search_regex(
|
|
84
|
-
r'video_([^_]+)_', asset_url, 'asset id', default=None)
|
|
85
|
-
if not asset_id:
|
|
86
|
-
continue
|
|
87
|
-
entries.append({
|
|
88
|
-
'id': asset_id,
|
|
89
|
-
'title': title,
|
|
90
|
-
'url': content_base + asset_url,
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
return self.playlist_result(entries, video_id, title)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
class SCTECourseIE(SCTEBaseIE):
|
|
97
|
-
_WORKING = False
|
|
98
|
-
_VALID_URL = r'https?://learning\.scte\.org/(?:mod/sub)?course/view\.php?.*?\bid=(?P<id>\d+)'
|
|
99
|
-
_TESTS = [{
|
|
100
|
-
'url': 'https://learning.scte.org/mod/subcourse/view.php?id=31491',
|
|
101
|
-
'only_matching': True,
|
|
102
|
-
}, {
|
|
103
|
-
'url': 'https://learning.scte.org/course/view.php?id=3639',
|
|
104
|
-
'only_matching': True,
|
|
105
|
-
}, {
|
|
106
|
-
'url': 'https://learning.scte.org/course/view.php?id=3073',
|
|
107
|
-
'only_matching': True,
|
|
108
|
-
}]
|
|
109
|
-
|
|
110
|
-
def _real_extract(self, url):
|
|
111
|
-
course_id = self._match_id(url)
|
|
112
|
-
|
|
113
|
-
webpage = self._download_webpage(url, course_id)
|
|
114
|
-
|
|
115
|
-
title = self._search_regex(
|
|
116
|
-
r'<h1>(.+?)</h1>', webpage, 'title', default=None)
|
|
117
|
-
|
|
118
|
-
entries = []
|
|
119
|
-
for mobj in re.finditer(
|
|
120
|
-
r'''(?x)
|
|
121
|
-
<a[^>]+
|
|
122
|
-
href=(["\'])
|
|
123
|
-
(?P<url>
|
|
124
|
-
https?://learning\.scte\.org/mod/
|
|
125
|
-
(?P<kind>scorm|subcourse)/view\.php?(?:(?!\1).)*?
|
|
126
|
-
\bid=\d+
|
|
127
|
-
)
|
|
128
|
-
''',
|
|
129
|
-
webpage):
|
|
130
|
-
item_url = mobj.group('url')
|
|
131
|
-
if item_url == url:
|
|
132
|
-
continue
|
|
133
|
-
ie = (SCTEIE.ie_key() if mobj.group('kind') == 'scorm'
|
|
134
|
-
else SCTECourseIE.ie_key())
|
|
135
|
-
entries.append(self.url_result(item_url, ie=ie))
|
|
136
|
-
|
|
137
|
-
return self.playlist_result(entries, course_id, title)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{yt_dlp-2025.12.26.233056.dev0.dist-info → yt_dlp-2025.12.30.233018.dev0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|