yt-dlp 2025.11.29.232949.dev0__py3-none-any.whl → 2025.12.1.10606.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/fc2.py +4 -0
- yt_dlp/extractor/patreon.py +2 -1
- yt_dlp/extractor/tubitv.py +3 -3
- yt_dlp/extractor/youtube/_video.py +41 -11
- yt_dlp/version.py +3 -3
- {yt_dlp-2025.11.29.232949.dev0.data → yt_dlp-2025.12.1.10606.dev0.data}/data/share/doc/yt_dlp/README.txt +5 -0
- {yt_dlp-2025.11.29.232949.dev0.data → yt_dlp-2025.12.1.10606.dev0.data}/data/share/man/man1/yt-dlp.1 +7 -0
- {yt_dlp-2025.11.29.232949.dev0.dist-info → yt_dlp-2025.12.1.10606.dev0.dist-info}/METADATA +2 -1
- {yt_dlp-2025.11.29.232949.dev0.dist-info → yt_dlp-2025.12.1.10606.dev0.dist-info}/RECORD +15 -15
- {yt_dlp-2025.11.29.232949.dev0.data → yt_dlp-2025.12.1.10606.dev0.data}/data/share/bash-completion/completions/yt-dlp +0 -0
- {yt_dlp-2025.11.29.232949.dev0.data → yt_dlp-2025.12.1.10606.dev0.data}/data/share/fish/vendor_completions.d/yt-dlp.fish +0 -0
- {yt_dlp-2025.11.29.232949.dev0.data → yt_dlp-2025.12.1.10606.dev0.data}/data/share/zsh/site-functions/_yt-dlp +0 -0
- {yt_dlp-2025.11.29.232949.dev0.dist-info → yt_dlp-2025.12.1.10606.dev0.dist-info}/WHEEL +0 -0
- {yt_dlp-2025.11.29.232949.dev0.dist-info → yt_dlp-2025.12.1.10606.dev0.dist-info}/entry_points.txt +0 -0
- {yt_dlp-2025.11.29.232949.dev0.dist-info → yt_dlp-2025.12.1.10606.dev0.dist-info}/licenses/LICENSE +0 -0
yt_dlp/extractor/fc2.py
CHANGED
|
@@ -5,6 +5,7 @@ from .common import InfoExtractor
|
|
|
5
5
|
from ..networking import Request
|
|
6
6
|
from ..utils import (
|
|
7
7
|
ExtractorError,
|
|
8
|
+
UserNotLive,
|
|
8
9
|
js_to_json,
|
|
9
10
|
traverse_obj,
|
|
10
11
|
update_url_query,
|
|
@@ -205,6 +206,9 @@ class FC2LiveIE(InfoExtractor):
|
|
|
205
206
|
'client_app': 'browser_hls',
|
|
206
207
|
'ipv6': '',
|
|
207
208
|
}), headers={'X-Requested-With': 'XMLHttpRequest'})
|
|
209
|
+
# A non-zero 'status' indicates the stream is not live, so check truthiness
|
|
210
|
+
if traverse_obj(control_server, ('status', {int})) and 'control_token' not in control_server:
|
|
211
|
+
raise UserNotLive(video_id=video_id)
|
|
208
212
|
self._set_cookie('live.fc2.com', 'l_ortkn', control_server['orz_raw'])
|
|
209
213
|
|
|
210
214
|
ws_url = update_url_query(control_server['url'], {'control_token': control_server['control_token']})
|
yt_dlp/extractor/patreon.py
CHANGED
|
@@ -598,7 +598,8 @@ class PatreonCampaignIE(PatreonBaseIE):
|
|
|
598
598
|
'props', 'pageProps', 'bootstrapEnvelope', 'pageBootstrap', 'campaign', 'data', 'id', {str}))
|
|
599
599
|
if not campaign_id:
|
|
600
600
|
campaign_id = traverse_obj(self._search_nextjs_v13_data(webpage, vanity), (
|
|
601
|
-
lambda _, v: v['type'] == 'campaign',
|
|
601
|
+
((..., 'value', 'campaign', 'data'), lambda _, v: v['type'] == 'campaign'),
|
|
602
|
+
'id', {str}, any, {require('campaign ID')}))
|
|
602
603
|
|
|
603
604
|
params = {
|
|
604
605
|
'json-api-use-default-includes': 'false',
|
yt_dlp/extractor/tubitv.py
CHANGED
|
@@ -182,13 +182,13 @@ class TubiTvShowIE(InfoExtractor):
|
|
|
182
182
|
webpage = self._download_webpage(show_url, playlist_id)
|
|
183
183
|
|
|
184
184
|
data = self._search_json(
|
|
185
|
-
r'window\.
|
|
186
|
-
transform_source=js_to_json)['
|
|
185
|
+
r'window\.__REACT_QUERY_STATE__\s*=', webpage, 'data', playlist_id,
|
|
186
|
+
transform_source=js_to_json)['queries'][0]['state']['data']
|
|
187
187
|
|
|
188
188
|
# v['number'] is already a decimal string, but stringify to protect against API changes
|
|
189
189
|
path = [lambda _, v: str(v['number']) == selected_season] if selected_season else [..., {dict}]
|
|
190
190
|
|
|
191
|
-
for season in traverse_obj(data, ('
|
|
191
|
+
for season in traverse_obj(data, ('seasons', *path)):
|
|
192
192
|
season_number = int_or_none(season.get('number'))
|
|
193
193
|
for episode in traverse_obj(season, ('episodes', lambda _, v: v['id'])):
|
|
194
194
|
episode_id = episode['id']
|
|
@@ -2628,18 +2628,29 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
2628
2628
|
def _get_checkok_params():
|
|
2629
2629
|
return {'contentCheckOk': True, 'racyCheckOk': True}
|
|
2630
2630
|
|
|
2631
|
-
|
|
2632
|
-
def _generate_player_context(cls, sts=None):
|
|
2631
|
+
def _generate_player_context(self, sts=None):
|
|
2633
2632
|
context = {
|
|
2634
2633
|
'html5Preference': 'HTML5_PREF_WANTS',
|
|
2635
2634
|
}
|
|
2636
2635
|
if sts is not None:
|
|
2637
2636
|
context['signatureTimestamp'] = sts
|
|
2637
|
+
|
|
2638
|
+
playback_context = {
|
|
2639
|
+
'contentPlaybackContext': context,
|
|
2640
|
+
}
|
|
2641
|
+
|
|
2642
|
+
# The 'adPlaybackContext'/'request_no_ads' workaround results in a loss of premium formats.
|
|
2643
|
+
# Only default to 'true' if the user is unauthenticated, since we can't reliably detect all
|
|
2644
|
+
# types of premium accounts (e.g. YTMusic Premium), and since premium users don't have ads.
|
|
2645
|
+
default_arg_value = 'false' if self.is_authenticated else 'true'
|
|
2646
|
+
if self._configuration_arg('request_no_ads', [default_arg_value])[0] != 'false':
|
|
2647
|
+
playback_context['adPlaybackContext'] = {
|
|
2648
|
+
'pyv': True,
|
|
2649
|
+
}
|
|
2650
|
+
|
|
2638
2651
|
return {
|
|
2639
|
-
'playbackContext':
|
|
2640
|
-
|
|
2641
|
-
},
|
|
2642
|
-
**cls._get_checkok_params(),
|
|
2652
|
+
'playbackContext': playback_context,
|
|
2653
|
+
**self._get_checkok_params(),
|
|
2643
2654
|
}
|
|
2644
2655
|
|
|
2645
2656
|
def _get_config_po_token(self, client: str, context: _PoTokenContext):
|
|
@@ -4029,6 +4040,11 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
4029
4040
|
STREAMING_DATA_CLIENT_NAME: client_name,
|
|
4030
4041
|
})
|
|
4031
4042
|
|
|
4043
|
+
def set_audio_lang_from_orig_subs_lang(lang_code):
|
|
4044
|
+
for f in formats:
|
|
4045
|
+
if f.get('acodec') != 'none' and not f.get('language'):
|
|
4046
|
+
f['language'] = lang_code
|
|
4047
|
+
|
|
4032
4048
|
subtitles = {}
|
|
4033
4049
|
skipped_subs_clients = set()
|
|
4034
4050
|
|
|
@@ -4088,7 +4104,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
4088
4104
|
|
|
4089
4105
|
orig_lang = qs.get('lang', [None])[-1]
|
|
4090
4106
|
lang_name = self._get_text(caption_track, 'name', max_runs=1)
|
|
4091
|
-
|
|
4107
|
+
is_manual_subs = caption_track.get('kind') != 'asr'
|
|
4108
|
+
if is_manual_subs:
|
|
4092
4109
|
if not lang_code:
|
|
4093
4110
|
continue
|
|
4094
4111
|
process_language(
|
|
@@ -4099,16 +4116,14 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
4099
4116
|
if not trans_code:
|
|
4100
4117
|
continue
|
|
4101
4118
|
orig_trans_code = trans_code
|
|
4102
|
-
if
|
|
4119
|
+
if is_manual_subs and trans_code != 'und':
|
|
4103
4120
|
if not get_translated_subs:
|
|
4104
4121
|
continue
|
|
4105
4122
|
trans_code += f'-{lang_code}'
|
|
4106
4123
|
trans_name += format_field(lang_name, None, ' from %s')
|
|
4107
4124
|
if lang_code == f'a-{orig_trans_code}':
|
|
4108
4125
|
# Set audio language based on original subtitles
|
|
4109
|
-
|
|
4110
|
-
if f.get('acodec') != 'none' and not f.get('language'):
|
|
4111
|
-
f['language'] = orig_trans_code
|
|
4126
|
+
set_audio_lang_from_orig_subs_lang(orig_trans_code)
|
|
4112
4127
|
# Add an "-orig" label to the original language so that it can be distinguished.
|
|
4113
4128
|
# The subs are returned without "-orig" as well for compatibility
|
|
4114
4129
|
process_language(
|
|
@@ -4119,6 +4134,21 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
|
|
|
4119
4134
|
automatic_captions, base_url, trans_code, trans_name, client_name,
|
|
4120
4135
|
pot_params if orig_lang == orig_trans_code else {'tlang': trans_code, **pot_params})
|
|
4121
4136
|
|
|
4137
|
+
# Extract automatic captions when the language is not in 'translationLanguages'
|
|
4138
|
+
# e.g. Cantonese [yue], see https://github.com/yt-dlp/yt-dlp/issues/14889
|
|
4139
|
+
lang_code = remove_start(lang_code, 'a-')
|
|
4140
|
+
if is_manual_subs or not lang_code or lang_code in automatic_captions:
|
|
4141
|
+
continue
|
|
4142
|
+
lang_name = remove_end(lang_name, ' (auto-generated)')
|
|
4143
|
+
if caption_track.get('isTranslatable'):
|
|
4144
|
+
# We can assume this is the original audio language
|
|
4145
|
+
set_audio_lang_from_orig_subs_lang(lang_code)
|
|
4146
|
+
process_language(
|
|
4147
|
+
automatic_captions, base_url, f'{lang_code}-orig',
|
|
4148
|
+
f'{lang_name} (Original)', client_name, pot_params)
|
|
4149
|
+
process_language(
|
|
4150
|
+
automatic_captions, base_url, lang_code, lang_name, client_name, pot_params)
|
|
4151
|
+
|
|
4122
4152
|
# Avoid duplication if we've already got everything we need
|
|
4123
4153
|
need_subs_langs.difference_update(subtitles)
|
|
4124
4154
|
need_caps_langs.difference_update(automatic_captions)
|
yt_dlp/version.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Autogenerated by devscripts/update-version.py
|
|
2
2
|
|
|
3
|
-
__version__ = '2025.
|
|
3
|
+
__version__ = '2025.12.01.010606'
|
|
4
4
|
|
|
5
|
-
RELEASE_GIT_HEAD = '
|
|
5
|
+
RELEASE_GIT_HEAD = '56ea3a00eabb45d926a6b993708acf1b9951e23a'
|
|
6
6
|
|
|
7
7
|
VARIANT = 'pip'
|
|
8
8
|
|
|
@@ -12,4 +12,4 @@ CHANNEL = 'nightly'
|
|
|
12
12
|
|
|
13
13
|
ORIGIN = 'yt-dlp/yt-dlp-nightly-builds'
|
|
14
14
|
|
|
15
|
-
_pkg_version = '2025.
|
|
15
|
+
_pkg_version = '2025.12.01.010606dev'
|
|
@@ -2377,6 +2377,11 @@ youtube
|
|
|
2377
2377
|
for the given context)
|
|
2378
2378
|
- jsc_trace: Enable debug logging for JS Challenge fetching. Either
|
|
2379
2379
|
true or false (default)
|
|
2380
|
+
- request_no_ads: Skip preroll ads to eliminate the mandatory wait
|
|
2381
|
+
period before download. Either true (the default if unauthenticated)
|
|
2382
|
+
or false. The default is false when logged-in cookies have been
|
|
2383
|
+
passed to yt-dlp, since true will result in a loss of premium
|
|
2384
|
+
formats
|
|
2380
2385
|
|
|
2381
2386
|
youtube-ejs
|
|
2382
2387
|
|
{yt_dlp-2025.11.29.232949.dev0.data → yt_dlp-2025.12.1.10606.dev0.data}/data/share/man/man1/yt-dlp.1
RENAMED
|
@@ -2820,6 +2820,13 @@ client requires one for the given context)
|
|
|
2820
2820
|
.IP \[bu] 2
|
|
2821
2821
|
\f[V]jsc_trace\f[R]: Enable debug logging for JS Challenge fetching.
|
|
2822
2822
|
Either \f[V]true\f[R] or \f[V]false\f[R] (default)
|
|
2823
|
+
.IP \[bu] 2
|
|
2824
|
+
\f[V]request_no_ads\f[R]: Skip preroll ads to eliminate the mandatory
|
|
2825
|
+
wait period before download.
|
|
2826
|
+
Either \f[V]true\f[R] (the default if unauthenticated) or
|
|
2827
|
+
\f[V]false\f[R].
|
|
2828
|
+
The default is \f[V]false\f[R] when logged-in cookies have been passed
|
|
2829
|
+
to yt-dlp, since \f[V]true\f[R] will result in a loss of premium formats
|
|
2823
2830
|
.SS youtube-ejs
|
|
2824
2831
|
.IP \[bu] 2
|
|
2825
2832
|
\f[V]jitless\f[R]: Run suported Javascript engines in JIT-less mode.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: yt-dlp
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.12.1.10606.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
|
|
@@ -1940,6 +1940,7 @@ The following extractors use this feature:
|
|
|
1940
1940
|
* `pot_trace`: Enable debug logging for PO Token fetching. Either `true` or `false` (default)
|
|
1941
1941
|
* `fetch_pot`: Policy to use for fetching a PO Token from providers. One of `always` (always try fetch a PO Token regardless if the client requires one for the given context), `never` (never fetch a PO Token), or `auto` (default; only fetch a PO Token if the client requires one for the given context)
|
|
1942
1942
|
* `jsc_trace`: Enable debug logging for JS Challenge fetching. Either `true` or `false` (default)
|
|
1943
|
+
* `request_no_ads`: Skip preroll ads to eliminate the mandatory wait period before download. Either `true` (the default if unauthenticated) or `false`. The default is `false` when logged-in cookies have been passed to yt-dlp, since `true` will result in a loss of premium formats
|
|
1943
1944
|
|
|
1944
1945
|
#### youtube-ejs
|
|
1945
1946
|
* `jitless`: Run suported Javascript engines in JIT-less mode. Supported runtimes are `deno`, `node` and `bun`. Provides better security at the cost of performance/speed. Do note that `node` and `bun` are still considered unsecure. Either `true` or `false` (default)
|
|
@@ -11,7 +11,7 @@ yt_dlp/options.py,sha256=Icc0JRiKOzITWoMujE_ihEmkCS-uCcie42XhIh8LvS4,100388
|
|
|
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=gRQ7MhWbDgmeRbfdUEVJyE03EyVUxAYDO2eD1QFfQMc,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
|
|
@@ -297,7 +297,7 @@ yt_dlp/extractor/fancode.py,sha256=5g9vL3uSFkJuOGu9jA7RvNMa_JJOdsTY9tJK7MelTLI,7
|
|
|
297
297
|
yt_dlp/extractor/fathom.py,sha256=Zen0ODNNDno65GzB4VfDsarmYDb3vrMgXCQeRBSneoI,1836
|
|
298
298
|
yt_dlp/extractor/faulio.py,sha256=L_qcU0nW5PtQTi8grW6chqt_qaOJsClbR-XR2fQniYQ,8606
|
|
299
299
|
yt_dlp/extractor/faz.py,sha256=51DGSc2XTaSl2ulbuyS-kWpz3G-OFD5hOMvHc-NIeeI,3493
|
|
300
|
-
yt_dlp/extractor/fc2.py,sha256=
|
|
300
|
+
yt_dlp/extractor/fc2.py,sha256=8B6xh1aU_r7WTBZrcpk-dYChaXPjVWx67zM1WQDjoEw,11493
|
|
301
301
|
yt_dlp/extractor/fczenit.py,sha256=sXcb-FuTW3c34AeIoWa_Jz5tjVW--qr0hbQ-Tu8HmFI,1666
|
|
302
302
|
yt_dlp/extractor/fifa.py,sha256=pHwgFhsj1YfvSAx9TeIJMDMD2n0i-WQhGFjppOW481k,3795
|
|
303
303
|
yt_dlp/extractor/filmon.py,sha256=h0knvwSSFBZyNfCVTeTXrCASko39dlNXZTP-_aB25kc,5840
|
|
@@ -647,7 +647,7 @@ yt_dlp/extractor/panopto.py,sha256=RvBX5WEjCAl71v28-gRNSEWHv3aAArT4_kVVUne1LXk,2
|
|
|
647
647
|
yt_dlp/extractor/parler.py,sha256=QtII2_JqjExBdkECl7RUZh5PE1uylOf7HJ4Vkmn9Yu0,3766
|
|
648
648
|
yt_dlp/extractor/parlview.py,sha256=ItmCcfd6_045TwkrkqnEAYlf18-LcfpdpFBZIqdneBI,2611
|
|
649
649
|
yt_dlp/extractor/parti.py,sha256=I2_rksoMUYE67uU486xZb1-w76jZTfeJC8U9gTin8gk,3974
|
|
650
|
-
yt_dlp/extractor/patreon.py,sha256=
|
|
650
|
+
yt_dlp/extractor/patreon.py,sha256=SMpRPkkHzsP2otsV0rOyGQmFVfGb_hlNk3xiFff_qN8,28420
|
|
651
651
|
yt_dlp/extractor/pbs.py,sha256=PRoWH-vjD0B4d-txY8qt4AijhzVowQ6IbTDu6iePGxU,40932
|
|
652
652
|
yt_dlp/extractor/pearvideo.py,sha256=nrJKNV91R2gMfd65vH-i4LmrVCrVCarXxnXOHFW1RDs,2494
|
|
653
653
|
yt_dlp/extractor/peekvids.py,sha256=0HMQHpXFAJsW4HSCgS7Td9RECyO0kHuOQqX2VDU5Xf0,7214
|
|
@@ -908,7 +908,7 @@ yt_dlp/extractor/trunews.py,sha256=T_9ovvOwqtPHjCb6kR5ZDxvEXRR3T7tcGvPsc9l-4eE,1
|
|
|
908
908
|
yt_dlp/extractor/truth.py,sha256=zND7u4eWsBg8wZDIuxQiloZIOl5bwJv2y9B5eWOmugw,2790
|
|
909
909
|
yt_dlp/extractor/tube8.py,sha256=0CEsgUAnxqb70TkM4tBSH5TpII3rLem_HRUQS1dptPI,6248
|
|
910
910
|
yt_dlp/extractor/tubetugraz.py,sha256=rEWNBA469DS-r8hXXmtk-pdRlvD_ZgZyZhlZgvgdTfI,11143
|
|
911
|
-
yt_dlp/extractor/tubitv.py,sha256=
|
|
911
|
+
yt_dlp/extractor/tubitv.py,sha256=VsUGSym5YoQwppfhvIGrBtkHzJuQIAxllmIJX7qFBlk,8597
|
|
912
912
|
yt_dlp/extractor/tumblr.py,sha256=wlLpSdyQCZ-URyDrEcPb4bCJj35CUJFRnY8sEGT-nBM,24113
|
|
913
913
|
yt_dlp/extractor/tunein.py,sha256=Db7maeI5BaLpPbtAlXRLKJCkOKnwg-HFy4MoW1f0Dro,12542
|
|
914
914
|
yt_dlp/extractor/turner.py,sha256=DH8l6_U3NJ-eu2tmTGuHQt4-joNBcJ2IT9H1WIpghhU,11459
|
|
@@ -1066,7 +1066,7 @@ yt_dlp/extractor/youtube/_notifications.py,sha256=1nhavzW0e2QWFAWHkfbTU4sSXNp4vU
|
|
|
1066
1066
|
yt_dlp/extractor/youtube/_redirect.py,sha256=WWWnGEkfSGBXpZFi_bWY4XcHZ8PDeK7UsndDaTYYhQg,9005
|
|
1067
1067
|
yt_dlp/extractor/youtube/_search.py,sha256=E9raTPGjUD6mm81WBpT4AsaxyiTBHdNssgzeHwVeNOE,6552
|
|
1068
1068
|
yt_dlp/extractor/youtube/_tab.py,sha256=NcbpPvJ4XiTDDNBtaLtCZQBKyo2HuNcq_V-AalY8zj8,115736
|
|
1069
|
-
yt_dlp/extractor/youtube/_video.py,sha256=
|
|
1069
|
+
yt_dlp/extractor/youtube/_video.py,sha256=YxJyPO--Mi87mROriz2ivHOvShaEuc0dvcdxS_sAjG8,209898
|
|
1070
1070
|
yt_dlp/extractor/youtube/jsc/__init__.py,sha256=HaVFP8ikrLaE-ClAh39-S28WCF4S2KTRaSu7QvA28E8,289
|
|
1071
1071
|
yt_dlp/extractor/youtube/jsc/_director.py,sha256=92pB-KVSs6plmE5R8gpjkZL9aeoWNR0XTnGOBXMy9go,13167
|
|
1072
1072
|
yt_dlp/extractor/youtube/jsc/_registry.py,sha256=Vg9GkHKHKKPeRfUQ-XSw01mfx_2Xyodh0SJpwjawYCA,102
|
|
@@ -1122,13 +1122,13 @@ yt_dlp/utils/progress.py,sha256=t9kVvJ0oWuEqRzo9fdFbIhHUBtO_8mg348QwZ1faqLo,3261
|
|
|
1122
1122
|
yt_dlp/utils/traversal.py,sha256=64E3RcZ56iSX50RI_HbKdDNftkETMLBaEPX791_b7yQ,18265
|
|
1123
1123
|
yt_dlp/utils/jslib/__init__.py,sha256=CbdJiRA7Eh5PnjF2V4lDTcg0J0XjBMaaq0H4pCfq9Tk,87
|
|
1124
1124
|
yt_dlp/utils/jslib/devalue.py,sha256=7DCGK_zUN0ZeV5hwPT06zaRMUxX_hyUyFWqs79rxw24,5621
|
|
1125
|
-
yt_dlp-2025.
|
|
1126
|
-
yt_dlp-2025.
|
|
1127
|
-
yt_dlp-2025.
|
|
1128
|
-
yt_dlp-2025.
|
|
1129
|
-
yt_dlp-2025.
|
|
1130
|
-
yt_dlp-2025.
|
|
1131
|
-
yt_dlp-2025.
|
|
1132
|
-
yt_dlp-2025.
|
|
1133
|
-
yt_dlp-2025.
|
|
1134
|
-
yt_dlp-2025.
|
|
1125
|
+
yt_dlp-2025.12.1.10606.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
|
|
1126
|
+
yt_dlp-2025.12.1.10606.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=K2YvExtahn7ZnFDmKGGIAeak6EwnNJUqtR8JxfvjISo,164777
|
|
1127
|
+
yt_dlp-2025.12.1.10606.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=hLa6lZnm7keENpNCjml9A88hbvefdsdoOpAiaNCVyHo,51488
|
|
1128
|
+
yt_dlp-2025.12.1.10606.dev0.data/data/share/man/man1/yt-dlp.1,sha256=p4fIebSfwPwI_Y5nVa5Emw2vJ6EI2G2rvHWn-iiICvs,159262
|
|
1129
|
+
yt_dlp-2025.12.1.10606.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
|
|
1130
|
+
yt_dlp-2025.12.1.10606.dev0.dist-info/METADATA,sha256=GdHw-AOlr1gIwKpUAwCCxKzxLr1pSxkAoKeiESqwMS0,180161
|
|
1131
|
+
yt_dlp-2025.12.1.10606.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
1132
|
+
yt_dlp-2025.12.1.10606.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
|
|
1133
|
+
yt_dlp-2025.12.1.10606.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
|
|
1134
|
+
yt_dlp-2025.12.1.10606.dev0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yt_dlp-2025.11.29.232949.dev0.dist-info → yt_dlp-2025.12.1.10606.dev0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{yt_dlp-2025.11.29.232949.dev0.dist-info → yt_dlp-2025.12.1.10606.dev0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|