yt-dlp 2025.12.18.235942.dev0__py3-none-any.whl → 2025.12.20.232942.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.
Files changed (22) hide show
  1. yt_dlp/YoutubeDL.py +4 -0
  2. yt_dlp/extractor/_extractors.py +2 -0
  3. yt_dlp/extractor/bandcamp.py +40 -41
  4. yt_dlp/extractor/dropbox.py +4 -1
  5. yt_dlp/extractor/filmarchiv.py +52 -0
  6. yt_dlp/extractor/lazy_extractors.py +23 -10
  7. yt_dlp/extractor/nebula.py +53 -0
  8. yt_dlp/extractor/neteasemusic.py +4 -1
  9. yt_dlp/extractor/tubitv.py +4 -1
  10. yt_dlp/extractor/yahoo.py +52 -115
  11. yt_dlp/utils/_utils.py +4 -2
  12. yt_dlp/version.py +3 -3
  13. {yt_dlp-2025.12.18.235942.dev0.dist-info → yt_dlp-2025.12.20.232942.dev0.dist-info}/METADATA +1 -1
  14. {yt_dlp-2025.12.18.235942.dev0.dist-info → yt_dlp-2025.12.20.232942.dev0.dist-info}/RECORD +22 -21
  15. {yt_dlp-2025.12.18.235942.dev0.data → yt_dlp-2025.12.20.232942.dev0.data}/data/share/bash-completion/completions/yt-dlp +0 -0
  16. {yt_dlp-2025.12.18.235942.dev0.data → yt_dlp-2025.12.20.232942.dev0.data}/data/share/doc/yt_dlp/README.txt +0 -0
  17. {yt_dlp-2025.12.18.235942.dev0.data → yt_dlp-2025.12.20.232942.dev0.data}/data/share/fish/vendor_completions.d/yt-dlp.fish +0 -0
  18. {yt_dlp-2025.12.18.235942.dev0.data → yt_dlp-2025.12.20.232942.dev0.data}/data/share/man/man1/yt-dlp.1 +0 -0
  19. {yt_dlp-2025.12.18.235942.dev0.data → yt_dlp-2025.12.20.232942.dev0.data}/data/share/zsh/site-functions/_yt-dlp +0 -0
  20. {yt_dlp-2025.12.18.235942.dev0.dist-info → yt_dlp-2025.12.20.232942.dev0.dist-info}/WHEEL +0 -0
  21. {yt_dlp-2025.12.18.235942.dev0.dist-info → yt_dlp-2025.12.20.232942.dev0.dist-info}/entry_points.txt +0 -0
  22. {yt_dlp-2025.12.18.235942.dev0.dist-info → yt_dlp-2025.12.20.232942.dev0.dist-info}/licenses/LICENSE +0 -0
yt_dlp/extractor/yahoo.py CHANGED
@@ -13,55 +13,16 @@ from ..utils import (
13
13
  parse_iso8601,
14
14
  traverse_obj,
15
15
  try_get,
16
+ update_url,
16
17
  url_or_none,
17
18
  )
18
19
 
19
20
 
20
21
  class YahooIE(InfoExtractor):
21
- IE_DESC = 'Yahoo screen and movies'
22
+ IE_NAME = 'yahoo'
22
23
  _VALID_URL = r'(?P<url>https?://(?:(?P<country>[a-zA-Z]{2}(?:-[a-zA-Z]{2})?|malaysia)\.)?(?:[\da-zA-Z_-]+\.)?yahoo\.com/(?:[^/]+/)*(?P<id>[^?&#]*-[0-9]+(?:-[a-z]+)?)\.html)'
23
- _EMBED_REGEX = [r'<iframe[^>]+?src=(["\'])(?P<url>https?://(?:screen|movies)\.yahoo\.com/.+?\.html\?format=embed)\1']
24
-
25
24
  _TESTS = [{
26
- 'url': 'http://screen.yahoo.com/julian-smith-travis-legg-watch-214727115.html',
27
- 'info_dict': {
28
- 'id': '2d25e626-2378-391f-ada0-ddaf1417e588',
29
- 'ext': 'mp4',
30
- 'title': 'Julian Smith & Travis Legg Watch Julian Smith',
31
- 'description': 'Julian and Travis watch Julian Smith',
32
- 'duration': 6863,
33
- 'timestamp': 1369812016,
34
- 'upload_date': '20130529',
35
- },
36
- 'skip': 'No longer exists',
37
- }, {
38
- 'url': 'https://screen.yahoo.com/community/community-sizzle-reel-203225340.html?format=embed',
39
- 'md5': '7993e572fac98e044588d0b5260f4352',
40
- 'info_dict': {
41
- 'id': '4fe78544-8d48-39d8-97cd-13f205d9fcdb',
42
- 'ext': 'mp4',
43
- 'title': "Yahoo Saves 'Community'",
44
- 'description': 'md5:4d4145af2fd3de00cbb6c1d664105053',
45
- 'duration': 170,
46
- 'timestamp': 1406838636,
47
- 'upload_date': '20140731',
48
- },
49
- 'skip': 'Unfortunately, this video is not available in your region',
50
- }, {
51
- 'url': 'https://uk.screen.yahoo.com/editor-picks/cute-raccoon-freed-drain-using-091756545.html',
52
- 'md5': '71298482f7c64cbb7fa064e4553ff1c1',
53
- 'info_dict': {
54
- 'id': 'b3affa53-2e14-3590-852b-0e0db6cd1a58',
55
- 'ext': 'webm',
56
- 'title': 'Cute Raccoon Freed From Drain\u00a0Using Angle Grinder',
57
- 'description': 'md5:f66c890e1490f4910a9953c941dee944',
58
- 'duration': 97,
59
- 'timestamp': 1414489862,
60
- 'upload_date': '20141028',
61
- },
62
- 'skip': 'No longer exists',
63
- }, {
64
- 'url': 'http://news.yahoo.com/video/china-moses-crazy-blues-104538833.html',
25
+ 'url': 'https://news.yahoo.com/video/china-moses-crazy-blues-104538833.html',
65
26
  'md5': '88e209b417f173d86186bef6e4d1f160',
66
27
  'info_dict': {
67
28
  'id': 'f885cf7f-43d4-3450-9fac-46ac30ece521',
@@ -69,27 +30,33 @@ class YahooIE(InfoExtractor):
69
30
  'title': 'China Moses Is Crazy About the Blues',
70
31
  'description': 'md5:9900ab8cd5808175c7b3fe55b979bed0',
71
32
  'duration': 128,
72
- 'timestamp': 1385722202,
33
+ 'timestamp': 1385721938,
73
34
  'upload_date': '20131129',
35
+ 'display_id': 'china-moses-crazy-blues-104538833',
36
+ 'view_count': int,
37
+ 'thumbnail': r're:https://media\.zenfs\.com/.+',
74
38
  },
75
39
  }, {
76
40
  'url': 'https://www.yahoo.com/movies/v/true-story-trailer-173000497.html',
77
- 'md5': '2a9752f74cb898af5d1083ea9f661b58',
41
+ # 'md5': '989396ae73d20c6f057746fb226aa215', # varies between this and 'b17ac378b1134fa44370fb27db09a744'
78
42
  'info_dict': {
79
43
  'id': '071c4013-ce30-3a93-a5b2-e0413cd4a9d1',
80
44
  'ext': 'mp4',
81
45
  'title': '\'True Story\' Trailer',
82
46
  'description': 'True Story',
83
47
  'duration': 150,
84
- 'timestamp': 1418919206,
48
+ 'timestamp': 1418923800,
85
49
  'upload_date': '20141218',
50
+ 'display_id': 'true-story-trailer-173000497',
51
+ 'view_count': int,
52
+ 'thumbnail': r're:https://media\.zenfs\.com/.+\.jpg',
86
53
  },
87
54
  }, {
88
55
  'url': 'https://gma.yahoo.com/pizza-delivery-man-surprised-huge-tip-college-kids-195200785.html',
89
56
  'only_matching': True,
90
57
  }, {
91
58
  'note': 'NBC Sports embeds',
92
- 'url': 'http://sports.yahoo.com/blogs/ncaab-the-dagger/tyler-kalinoski-s-buzzer-beater-caps-davidson-s-comeback-win-185609842.html?guid=nbc_cbk_davidsonbuzzerbeater_150313',
59
+ 'url': 'https://sports.yahoo.com/blogs/ncaab-the-dagger/tyler-kalinoski-s-buzzer-beater-caps-davidson-s-comeback-win-185609842.html?guid=nbc_cbk_davidsonbuzzerbeater_150313',
93
60
  'info_dict': {
94
61
  'id': '9CsDKds0kvHI',
95
62
  'ext': 'flv',
@@ -99,26 +66,10 @@ class YahooIE(InfoExtractor):
99
66
  'uploader': 'NBCU-SPORTS',
100
67
  'timestamp': 1426270238,
101
68
  },
69
+ 'skip': 'Page no longer has video',
102
70
  }, {
103
71
  'url': 'https://tw.news.yahoo.com/-100120367.html',
104
72
  'only_matching': True,
105
- }, {
106
- # Query result is embedded in webpage, but explicit request to video API fails with geo restriction
107
- 'url': 'https://screen.yahoo.com/community/communitary-community-episode-1-ladders-154501237.html',
108
- 'md5': '4fbafb9c9b6f07aa8f870629f6671b35',
109
- 'info_dict': {
110
- 'id': '1f32853c-a271-3eef-8cb6-f6d6872cb504',
111
- 'ext': 'mp4',
112
- 'title': 'Communitary - Community Episode 1: Ladders',
113
- 'description': 'md5:8fc39608213295748e1e289807838c97',
114
- 'duration': 1646,
115
- 'timestamp': 1440436550,
116
- 'upload_date': '20150824',
117
- 'series': 'Communitary',
118
- 'season_number': 6,
119
- 'episode_number': 1,
120
- },
121
- 'skip': 'No longer exists',
122
73
  }, {
123
74
  # ytwnews://cavideo/
124
75
  'url': 'https://tw.video.yahoo.com/movie-tw/單車天使-中文版預-092316541.html',
@@ -129,12 +80,16 @@ class YahooIE(InfoExtractor):
129
80
  'description': '中文版預',
130
81
  'timestamp': 1476696196,
131
82
  'upload_date': '20161017',
83
+ 'view_count': int,
84
+ 'duration': 141,
85
+ 'thumbnail': r're:https://media\.zenfs\.com/.+\.jpg',
86
+ 'series': '電影',
87
+ 'display_id': '單車天使-中文版預-092316541',
132
88
  },
133
89
  'params': {
134
90
  'skip_download': True,
135
91
  },
136
92
  }, {
137
- # Contains both a Yahoo hosted video and multiple Youtube embeds
138
93
  'url': 'https://www.yahoo.com/entertainment/gwen-stefani-reveals-the-pop-hit-she-passed-on-assigns-it-to-her-voice-contestant-instead-033045672.html',
139
94
  'info_dict': {
140
95
  'id': '46c5d95a-528f-3d03-b732-732fcadd51de',
@@ -147,24 +102,29 @@ class YahooIE(InfoExtractor):
147
102
  'ext': 'mp4',
148
103
  'title': 'Gwen Stefani reveals she turned down one of Sia\'s best songs',
149
104
  'description': 'On "The Voice" Tuesday, Gwen Stefani told Taylor Swift which Sia hit was almost hers.',
150
- 'timestamp': 1572406500,
105
+ 'timestamp': 1572406499,
151
106
  'upload_date': '20191030',
152
- },
153
- }, {
154
- 'info_dict': {
155
- 'id': '352CFDOQrKg',
156
- 'ext': 'mp4',
157
- 'title': 'Kyndal Inskeep "Performs the Hell Out of" Sia\'s "Elastic Heart" - The Voice Knockouts 2019',
158
- 'description': 'md5:7fe8e3d5806f96002e55f190d1d94479',
159
- 'uploader': 'The Voice',
160
- 'uploader_id': 'NBCTheVoice',
161
- 'upload_date': '20191029',
107
+ 'display_id': 'gwen-stefani-reveals-she-turned-033459311',
108
+ 'view_count': int,
109
+ 'duration': 97,
110
+ 'thumbnail': 'https://s.yimg.com/os/creatr-uploaded-images/2019-10/348bb330-fac6-11e9-8d27-38e85d573702',
111
+ 'series': 'Last Night Now',
162
112
  },
163
113
  }],
164
- 'params': {
165
- 'playlistend': 2,
114
+ }, {
115
+ 'url': 'https://sports.yahoo.com/video/rams-lose-grip-nfcs-top-174614409.html',
116
+ 'info_dict': {
117
+ 'id': '6b15f100-cf5c-3ad0-9c96-87cbd2f72d4a',
118
+ 'ext': 'mp4',
119
+ 'display_id': 'rams-lose-grip-nfcs-top-174614409',
120
+ 'title': 'Rams lose their grip on NFC\'s top seed — can they still secure the bye?',
121
+ 'description': 'md5:5f4f98ab3c4de80e54c105b6bbb1d024',
122
+ 'view_count': int,
123
+ 'duration': 85,
124
+ 'thumbnail': 'https://s.yimg.com/os/creatr-uploaded-images/2025-12/94fc4840-dd02-11f0-beff-38ba3a4992e3',
125
+ 'timestamp': 1766166374,
126
+ 'upload_date': '20251219',
166
127
  },
167
- 'expected_warnings': ['HTTP Error 404', 'Ignoring subtitle tracks'],
168
128
  }, {
169
129
  'url': 'https://malaysia.news.yahoo.com/video/bystanders-help-ontario-policeman-bust-190932818.html',
170
130
  'only_matching': True,
@@ -178,14 +138,12 @@ class YahooIE(InfoExtractor):
178
138
 
179
139
  def _extract_yahoo_video(self, video_id, country):
180
140
  video = self._download_json(
181
- f'https://{country}.yahoo.com/_td/api/resource/VideoService.videos;view=full;video_ids=["{video_id}"]',
182
- video_id, 'Downloading video JSON metadata')[0]
183
- title = video['title']
184
-
141
+ f'https://video-api.yql.yahoo.com/v1/video/sapi/streams/{video_id}',
142
+ video_id, 'Downloading video JSON metadata')['query']['results']['mediaObj'][0]['meta']
185
143
  if country == 'malaysia':
186
144
  country = 'my'
187
145
 
188
- is_live = video.get('live_state') == 'live'
146
+ is_live = traverse_obj(video, ('uplynk_live', {bool})) is True
189
147
  fmts = ('m3u8',) if is_live else ('webm', 'mp4')
190
148
 
191
149
  urls = []
@@ -231,43 +189,23 @@ class YahooIE(InfoExtractor):
231
189
  'ext': mimetype2ext(cc.get('content_type')),
232
190
  })
233
191
 
234
- streaming_url = video.get('streaming_url')
235
- if streaming_url and not is_live:
236
- formats.extend(self._extract_m3u8_formats(
237
- streaming_url, video_id, 'mp4',
238
- 'm3u8_native', m3u8_id='hls', fatal=False))
239
-
240
192
  if not formats and msg == 'geo restricted':
241
193
  self.raise_geo_restricted(metadata_available=True)
242
194
 
243
- thumbnails = []
244
- for thumb in video.get('thumbnails', []):
245
- thumb_url = thumb.get('url')
246
- if not thumb_url:
247
- continue
248
- thumbnails.append({
249
- 'id': thumb.get('tag'),
250
- 'url': thumb.get('url'),
251
- 'width': int_or_none(thumb.get('width')),
252
- 'height': int_or_none(thumb.get('height')),
253
- })
254
-
255
- series_info = video.get('series_info') or {}
256
-
257
195
  return {
258
196
  'id': video_id,
259
- 'title': title,
260
197
  'formats': formats,
261
- 'thumbnails': thumbnails,
262
- 'description': clean_html(video.get('description')),
263
- 'timestamp': parse_iso8601(video.get('publish_time')),
264
198
  'subtitles': subtitles,
265
- 'duration': int_or_none(video.get('duration')),
266
- 'view_count': int_or_none(video.get('view_count')),
267
199
  'is_live': is_live,
268
- 'series': video.get('show_name'),
269
- 'season_number': int_or_none(series_info.get('season_number')),
270
- 'episode_number': int_or_none(series_info.get('episode_number')),
200
+ **traverse_obj(video, {
201
+ 'title': ('title', {clean_html}),
202
+ 'description': ('description', {clean_html}),
203
+ 'thumbnail': ('thumbnail', {url_or_none}, {update_url(scheme='https')}),
204
+ 'timestamp': ('publish_time', {parse_iso8601}),
205
+ 'duration': ('duration', {int_or_none}),
206
+ 'view_count': ('view_count', {int_or_none}),
207
+ 'series': ('show_name', {str}, filter),
208
+ }),
271
209
  }
272
210
 
273
211
  def _real_extract(self, url):
@@ -321,14 +259,13 @@ class YahooIE(InfoExtractor):
321
259
 
322
260
 
323
261
  class YahooSearchIE(SearchInfoExtractor):
324
- IE_DESC = 'Yahoo screen search'
325
262
  _MAX_RESULTS = 1000
326
- IE_NAME = 'screen.yahoo:search'
263
+ IE_NAME = 'yahoo:search'
327
264
  _SEARCH_KEY = 'yvsearch'
328
265
 
329
266
  def _search_results(self, query):
330
267
  for pagenum in itertools.count(0):
331
- result_url = f'http://video.search.yahoo.com/search/?p={urllib.parse.quote_plus(query)}&fr=screen&o=js&gs=0&b={pagenum * 30}'
268
+ result_url = f'https://video.search.yahoo.com/search/?p={urllib.parse.quote_plus(query)}&fr=screen&o=js&gs=0&b={pagenum * 30}'
332
269
  info = self._download_json(result_url, query,
333
270
  note='Downloading results page ' + str(pagenum + 1))
334
271
  yield from (self.url_result(result['rurl']) for result in info['results'])
yt_dlp/utils/_utils.py CHANGED
@@ -1262,7 +1262,8 @@ def unified_strdate(date_str, day_first=True):
1262
1262
  return str(upload_date)
1263
1263
 
1264
1264
 
1265
- def unified_timestamp(date_str, day_first=True):
1265
+ @partial_application
1266
+ def unified_timestamp(date_str, day_first=True, tz_offset=0):
1266
1267
  if not isinstance(date_str, str):
1267
1268
  return None
1268
1269
 
@@ -1270,7 +1271,8 @@ def unified_timestamp(date_str, day_first=True):
1270
1271
  r'(?i)[,|]|(mon|tues?|wed(nes)?|thu(rs)?|fri|sat(ur)?|sun)(day)?', '', date_str))
1271
1272
 
1272
1273
  pm_delta = 12 if re.search(r'(?i)PM', date_str) else 0
1273
- timezone, date_str = extract_timezone(date_str)
1274
+ timezone, date_str = extract_timezone(
1275
+ date_str, default=dt.timedelta(hours=tz_offset) if tz_offset else None)
1274
1276
 
1275
1277
  # Remove AM/PM + timezone
1276
1278
  date_str = re.sub(r'(?i)\s*(?:AM|PM)(?:\s+[A-Z]+)?', '', date_str)
yt_dlp/version.py CHANGED
@@ -1,8 +1,8 @@
1
1
  # Autogenerated by devscripts/update-version.py
2
2
 
3
- __version__ = '2025.12.18.235942'
3
+ __version__ = '2025.12.20.232942'
4
4
 
5
- RELEASE_GIT_HEAD = 'f6dc7d5279bcb7f29839c700d54ac148b332d208'
5
+ RELEASE_GIT_HEAD = '15263d049cb3f47e921b414782490052feca3def'
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.12.18.235942dev'
15
+ _pkg_version = '2025.12.20.232942dev'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yt-dlp
3
- Version: 2025.12.18.235942.dev0
3
+ Version: 2025.12.20.232942.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
@@ -1,4 +1,4 @@
1
- yt_dlp/YoutubeDL.py,sha256=Mo4GA7c0ti2f8i8chWwDR6P-bsTdAvpXTKBx8dhVQC8,216430
1
+ yt_dlp/YoutubeDL.py,sha256=H05y5EO1r4j4_iSs9gZaLUidSheO8xm40qaLzebF-Jk,216635
2
2
  yt_dlp/__init__.py,sha256=Nyir0qVukv9-pdfRtHPVm3EDOYDvwa1AXHOIX9oR0ps,47897
3
3
  yt_dlp/__main__.py,sha256=DzqMhNY2y89eqs0Hnd4hOhjMfW9OhnhdhJdDH9yizmw,367
4
4
  yt_dlp/aes.py,sha256=OU2t7oHbaKSIT-evc75vU58XK20b6wqgJvNlG_fois0,22033
@@ -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=CwlhUFfEenB9NRLFJRroB4lBoTCs-XhhY85BGpDgRuY,360
14
+ yt_dlp/version.py,sha256=olpeObwoyw4XdqpJrPA78OZyb4e45Mhon_8LPxvwEgo,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=x9mMw9m4deoXmTjDSkVigGywMfMOO9yW1COH9CCPYE0,54475
46
+ yt_dlp/extractor/_extractors.py,sha256=3ymtRbI48THTsFZFm3jqUka6VxUtFe2FPXb7KzJsxHk,54532
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
@@ -111,7 +111,7 @@ yt_dlp/extractor/axs.py,sha256=1IU-4qKI5RovjNmV-SK76nSn8FQjYlPmdGluc3sq0dA,3328
111
111
  yt_dlp/extractor/azmedien.py,sha256=xK42x-QoXM-IFr3vDrJdRZ4bg9tTbSv2kbNrAQUN9uM,2304
112
112
  yt_dlp/extractor/baidu.py,sha256=W_Qyx580Fl5VRuJFFgK9XHh2nT4-6KqRZw6yl7Q7drw,1913
113
113
  yt_dlp/extractor/banbye.py,sha256=0rvWhxRooMFgQA0PMwauPuy8X9S6aq3zrRGyzBF-Tb8,8969
114
- yt_dlp/extractor/bandcamp.py,sha256=nFqXy_OLxMnaFnYdu8fwKcZ_r2CIFdC6uRIgH9YnHas,21408
114
+ yt_dlp/extractor/bandcamp.py,sha256=-hpGzRZ4hrfjCVg3HBKlunXHEH60O2A3JSX8t-Wx1eA,21933
115
115
  yt_dlp/extractor/bandlab.py,sha256=VmgZY6taqH5CZIbGFiwjWqY7TikY1cXMHRk2WzcgCDM,19200
116
116
  yt_dlp/extractor/bannedvideo.py,sha256=OicbEPxaA3-LYFjgexNyoR5Pfqyv4M9kG0841RUr6zw,5315
117
117
  yt_dlp/extractor/bbc.py,sha256=9jr7dQ3GPhKaRHupbB7dzKIZSjn5jIbSrW235crw9wQ,82419
@@ -253,7 +253,7 @@ yt_dlp/extractor/dplay.py,sha256=xNBS5AZjc6XordqX-x6c1iaOeOyb1RGwwnRkAIPZ1-g,536
253
253
  yt_dlp/extractor/drbonanza.py,sha256=6FP9N_qO1Y6Uto1HxK-HpShuI5U1DGF1g-zzvGEEIAE,1879
254
254
  yt_dlp/extractor/dreisat.py,sha256=uN1oY3KJT916KgfedJ6eFHLacSztuKkOI_gONHkEdd0,6131
255
255
  yt_dlp/extractor/drooble.py,sha256=xnj8I9JU7EEZ3ok77vPOKefpHcWMitMQEJ8NvHsB3E4,4190
256
- yt_dlp/extractor/dropbox.py,sha256=3mhW6qM2uiCDu54H2K2j54g9fSQnvxZnFlLIGf-3efI,4248
256
+ yt_dlp/extractor/dropbox.py,sha256=Zvy59k-dVkYoraO6_udVMfH_Xr9CXEGnTpxdiEqgHEQ,4450
257
257
  yt_dlp/extractor/dropout.py,sha256=IFf_GWmCVvlA5SB6-6gMzm66Mgio3aZ4-aCjF1BpIbk,10162
258
258
  yt_dlp/extractor/drtalks.py,sha256=hrpjjkOj1TK8YqcRRC-i3gAco45LlRYPeVDpC-4wPUU,2251
259
259
  yt_dlp/extractor/drtuber.py,sha256=Sbprvt1L-PV8wTpmF4d18CNtbw0b-O0aowD_jo4vADw,3792
@@ -301,6 +301,7 @@ yt_dlp/extractor/faz.py,sha256=51DGSc2XTaSl2ulbuyS-kWpz3G-OFD5hOMvHc-NIeeI,3493
301
301
  yt_dlp/extractor/fc2.py,sha256=8B6xh1aU_r7WTBZrcpk-dYChaXPjVWx67zM1WQDjoEw,11493
302
302
  yt_dlp/extractor/fczenit.py,sha256=sXcb-FuTW3c34AeIoWa_Jz5tjVW--qr0hbQ-Tu8HmFI,1666
303
303
  yt_dlp/extractor/fifa.py,sha256=pHwgFhsj1YfvSAx9TeIJMDMD2n0i-WQhGFjppOW481k,3795
304
+ yt_dlp/extractor/filmarchiv.py,sha256=eO4Hzge0gMip0meejKr78aNwHxA4j20fHeRH0C8QUQY,2257
304
305
  yt_dlp/extractor/filmon.py,sha256=h0knvwSSFBZyNfCVTeTXrCASko39dlNXZTP-_aB25kc,5840
305
306
  yt_dlp/extractor/filmweb.py,sha256=lceng_wqtsGbzAbhnJkJQLviJzJmTo3bhpRSgwBQ-i8,1424
306
307
  yt_dlp/extractor/firsttv.py,sha256=QAYWEkjRtRpGEB41iCET-aa0OvA3Rja1v-f7NOawEhU,6916
@@ -459,7 +460,7 @@ yt_dlp/extractor/la7.py,sha256=GShDLu1N0rS1bY4uIiUkznThvn7gNiwtSgmh7Rs7t08,9435
459
460
  yt_dlp/extractor/laracasts.py,sha256=PzTqAbHXiUqog-mpp2qR_rpKa-sZel4mLyzWTPkbDuc,4587
460
461
  yt_dlp/extractor/lastfm.py,sha256=OpmE-Y-2rcav2r2xaDQzX_EJiltmbbe6fO9VzkLqNWQ,4748
461
462
  yt_dlp/extractor/laxarxames.py,sha256=-YyL-5y4t2L9ptTSLXhvK-SJwvXGqv5l1HfT129zF0c,2773
462
- yt_dlp/extractor/lazy_extractors.py,sha256=eGfWGq30I6zvAUzOGM0vjbYEGlRq528CTO805JwT7Lg,813940
463
+ yt_dlp/extractor/lazy_extractors.py,sha256=86L2zegrSYL2aGNzay3HEnZ-C5d4b4K_WhG-n1x8nBY,814513
463
464
  yt_dlp/extractor/lbry.py,sha256=gC9jRRo8wSXc1-6somhW13brAtmWGlJ5_Q0NMhZpKwk,18078
464
465
  yt_dlp/extractor/lci.py,sha256=_0XuoITIt_QFA-6eBNpDXZZfouwUWfcdHQlpAOuiLEs,2131
465
466
  yt_dlp/extractor/lcp.py,sha256=edMA8L-eJZLquDvHcSY4oFWI0C8yGgjqW1tmhhLMJ5U,2279
@@ -568,12 +569,12 @@ yt_dlp/extractor/nba.py,sha256=8PGYkiVMnZoI2nZ3AHv5hI8GgnStNahL86H6M--4eiE,16293
568
569
  yt_dlp/extractor/nbc.py,sha256=gwNEyy4ufAXrDqHQf2ARjyxnKpnzUDYQngyjbG07P8E,48091
569
570
  yt_dlp/extractor/ndr.py,sha256=HSKkrQJdlXKLrBP4QZO_01wLcsEwAbcQpsSVsr1qhYE,18173
570
571
  yt_dlp/extractor/ndtv.py,sha256=5ASCATnDJzjKzFEjfreqUxn0Eq5xKqH5fAldX8D4yZE,4513
571
- yt_dlp/extractor/nebula.py,sha256=pAFaiYDqdog5B-AWF2l_BKcZn7vjYMzFKNXMlfLchqs,21377
572
+ yt_dlp/extractor/nebula.py,sha256=wHte1PbcugiyJvdCh78UwY_hilCxKFvfAh5aBuJvF4A,23451
572
573
  yt_dlp/extractor/nekohacker.py,sha256=XrqJBtLxxrUfc8QfM53aCV_kEEpsds79rEI2CleWX5Y,9549
573
574
  yt_dlp/extractor/nerdcubed.py,sha256=dX8_GfnRcoYADJKN-pzQxXRd8CvqyT13Lry9v7rcTbg,1486
574
575
  yt_dlp/extractor/nest.py,sha256=xjFemzRYlcac7GEhUOtFreKZHxhJ3r_bqTFxOHZazKY,4647
575
576
  yt_dlp/extractor/netapp.py,sha256=uf9YQpnYcKKwqm09wInteEGgD24-OK2DKh5ttq08QYw,3346
576
- yt_dlp/extractor/neteasemusic.py,sha256=Z2A_LHFY_CG3RjM1zSsHGDD1X8UitqKO3n40WHCSEcM,25183
577
+ yt_dlp/extractor/neteasemusic.py,sha256=GFApfOWjK-UoWLVmxUHRwM_OC75pSGZSudgoF2byoe4,25289
577
578
  yt_dlp/extractor/netverse.py,sha256=EgIx4pNFnZKdwRz_8wjxHCYpIL3oKxb476ee6bU4e6w,10995
578
579
  yt_dlp/extractor/netzkino.py,sha256=yaIbKuCHx1aacVlrqkxCwdsS0ceJhj_y6PSbBZ9HKnc,2481
579
580
  yt_dlp/extractor/newgrounds.py,sha256=5hMDFJqEvpNL_ITBLy87NS-l7r_yNBTRmTw4uXUamZM,11830
@@ -908,7 +909,7 @@ yt_dlp/extractor/trunews.py,sha256=T_9ovvOwqtPHjCb6kR5ZDxvEXRR3T7tcGvPsc9l-4eE,1
908
909
  yt_dlp/extractor/truth.py,sha256=zND7u4eWsBg8wZDIuxQiloZIOl5bwJv2y9B5eWOmugw,2790
909
910
  yt_dlp/extractor/tube8.py,sha256=0CEsgUAnxqb70TkM4tBSH5TpII3rLem_HRUQS1dptPI,6248
910
911
  yt_dlp/extractor/tubetugraz.py,sha256=rEWNBA469DS-r8hXXmtk-pdRlvD_ZgZyZhlZgvgdTfI,11143
911
- yt_dlp/extractor/tubitv.py,sha256=VsUGSym5YoQwppfhvIGrBtkHzJuQIAxllmIJX7qFBlk,8597
912
+ yt_dlp/extractor/tubitv.py,sha256=BdizhV-1lf0Q9pg37KpHC_YumE2UBXS1si_mfLuFb8o,8771
912
913
  yt_dlp/extractor/tumblr.py,sha256=wlLpSdyQCZ-URyDrEcPb4bCJj35CUJFRnY8sEGT-nBM,24113
913
914
  yt_dlp/extractor/tunein.py,sha256=Db7maeI5BaLpPbtAlXRLKJCkOKnwg-HFy4MoW1f0Dro,12542
914
915
  yt_dlp/extractor/turner.py,sha256=DH8l6_U3NJ-eu2tmTGuHQt4-joNBcJ2IT9H1WIpghhU,11459
@@ -1034,7 +1035,7 @@ yt_dlp/extractor/xnxx.py,sha256=QvsRTxTJ3mOUNUKcExap3HRTjOYS1jvqt6qKXzSyCvg,2887
1034
1035
  yt_dlp/extractor/xstream.py,sha256=4_E5oarzqDwytmOI5yB4iBdvEGCFsxZ3_l7GiWfvS1U,3869
1035
1036
  yt_dlp/extractor/xvideos.py,sha256=9xO17ewhBX9cr2qAfSKCZeeu-IZj4LHgWCbqg-CIo1E,8598
1036
1037
  yt_dlp/extractor/xxxymovies.py,sha256=aUbNj_da7H6U9sLY0fJ-F22EnYUHvQMLycRX2a1iBoc,2613
1037
- yt_dlp/extractor/yahoo.py,sha256=4la0KsCkuSJmT9IGs9i3JlLXR7scxxpX6TxtgrQcB18,17996
1038
+ yt_dlp/extractor/yahoo.py,sha256=cF50k3zwvlWtPXVTmB8YrStlrAL1VgUyG0Hm9r5SZR0,15642
1038
1039
  yt_dlp/extractor/yandexdisk.py,sha256=8Y3uPVm5z8kELjsmSZIascZ59t5yEiWE35sit5hEjnA,5117
1039
1040
  yt_dlp/extractor/yandexmusic.py,sha256=MWrxFAxW2e2wY9-H-8jjmCWqZ3w0Py0O12vOglUtutk,17423
1040
1041
  yt_dlp/extractor/yandexvideo.py,sha256=U_bLUG7Xxzd7ddSjcXhP7d4WbDiQCAoqfX7oZoapFKY,17989
@@ -1116,19 +1117,19 @@ yt_dlp/utils/__init__.py,sha256=fktzbumix8bd9Xi288JebTYkxCuNhG21qkcSno-3g_s,283
1116
1117
  yt_dlp/utils/_deprecated.py,sha256=5KjqmcPW8uIc77xkhvz1gwxBb-jBF7cwG5nI6xxHebU,1300
1117
1118
  yt_dlp/utils/_jsruntime.py,sha256=cPLHquABqggAepWHIYlG9zgrnwjV4Le55mr8Fx71nCo,4319
1118
1119
  yt_dlp/utils/_legacy.py,sha256=hmczdkw5SELzsFcB2AUblAY9bw8gIBDuPFTBlYvXe_4,7858
1119
- yt_dlp/utils/_utils.py,sha256=uPKu-EMJD14NgU7XXiZL0_gMicnnkl8hqXufEzfZY88,190861
1120
+ yt_dlp/utils/_utils.py,sha256=ei6I1v-9DLMJZK1abjO0JZAwqfSvSn9Hm0bSyDmUvtA,190966
1120
1121
  yt_dlp/utils/networking.py,sha256=2GeL1sPpEvQaj_E8J_3Xl-TkalawkmoPCZTwo5akU08,8651
1121
1122
  yt_dlp/utils/progress.py,sha256=t9kVvJ0oWuEqRzo9fdFbIhHUBtO_8mg348QwZ1faqLo,3261
1122
1123
  yt_dlp/utils/traversal.py,sha256=64E3RcZ56iSX50RI_HbKdDNftkETMLBaEPX791_b7yQ,18265
1123
1124
  yt_dlp/utils/jslib/__init__.py,sha256=CbdJiRA7Eh5PnjF2V4lDTcg0J0XjBMaaq0H4pCfq9Tk,87
1124
1125
  yt_dlp/utils/jslib/devalue.py,sha256=7DCGK_zUN0ZeV5hwPT06zaRMUxX_hyUyFWqs79rxw24,5621
1125
- yt_dlp-2025.12.18.235942.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
1126
- yt_dlp-2025.12.18.235942.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=wmrt5znP_AlvkrvysScvz2QYyjT2kZ1y2RRmx0Qvy_U,164886
1127
- yt_dlp-2025.12.18.235942.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=v2WQvWvk4qKpp2-97z2ULb5Msj5dgzU6nMkS-FwSmbM,51488
1128
- yt_dlp-2025.12.18.235942.dev0.data/data/share/man/man1/yt-dlp.1,sha256=9Ll8XNcxtpdL-FmhXtOrDy3OuGmOCatIKNDzmwxzqxo,159421
1129
- yt_dlp-2025.12.18.235942.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
1130
- yt_dlp-2025.12.18.235942.dev0.dist-info/METADATA,sha256=BHVR1ZhXcFslK6MxFoQnLc18TYt6d73eU6qhKTBVmm8,180282
1131
- yt_dlp-2025.12.18.235942.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1132
- yt_dlp-2025.12.18.235942.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
1133
- yt_dlp-2025.12.18.235942.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
1134
- yt_dlp-2025.12.18.235942.dev0.dist-info/RECORD,,
1126
+ yt_dlp-2025.12.20.232942.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
1127
+ yt_dlp-2025.12.20.232942.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=wmrt5znP_AlvkrvysScvz2QYyjT2kZ1y2RRmx0Qvy_U,164886
1128
+ yt_dlp-2025.12.20.232942.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=v2WQvWvk4qKpp2-97z2ULb5Msj5dgzU6nMkS-FwSmbM,51488
1129
+ yt_dlp-2025.12.20.232942.dev0.data/data/share/man/man1/yt-dlp.1,sha256=9Ll8XNcxtpdL-FmhXtOrDy3OuGmOCatIKNDzmwxzqxo,159421
1130
+ yt_dlp-2025.12.20.232942.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
1131
+ yt_dlp-2025.12.20.232942.dev0.dist-info/METADATA,sha256=FYIveNR0vSxeYFy7V5p6U3tRSlee1k20iJjcZg7qY1o,180282
1132
+ yt_dlp-2025.12.20.232942.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1133
+ yt_dlp-2025.12.20.232942.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
1134
+ yt_dlp-2025.12.20.232942.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
1135
+ yt_dlp-2025.12.20.232942.dev0.dist-info/RECORD,,