yt-dlp 2026.1.2.233036.dev0__py3-none-any.whl → 2026.1.3.233044.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/YoutubeDL.py CHANGED
@@ -595,7 +595,7 @@ class YoutubeDL:
595
595
  'width', 'height', 'asr', 'audio_channels', 'fps',
596
596
  'tbr', 'abr', 'vbr', 'filesize', 'filesize_approx',
597
597
  'timestamp', 'release_timestamp', 'available_at',
598
- 'duration', 'view_count', 'like_count', 'dislike_count', 'repost_count',
598
+ 'duration', 'view_count', 'like_count', 'dislike_count', 'repost_count', 'save_count',
599
599
  'average_rating', 'comment_count', 'age_limit',
600
600
  'start_time', 'end_time',
601
601
  'chapter_number', 'season_number', 'episode_number',
yt_dlp/extractor/bigo.py CHANGED
@@ -1,5 +1,5 @@
1
1
  from .common import InfoExtractor
2
- from ..utils import ExtractorError, urlencode_postdata
2
+ from ..utils import ExtractorError, UserNotLive, urlencode_postdata
3
3
 
4
4
 
5
5
  class BigoIE(InfoExtractor):
@@ -40,7 +40,7 @@ class BigoIE(InfoExtractor):
40
40
  info = info_raw.get('data') or {}
41
41
 
42
42
  if not info.get('alive'):
43
- raise ExtractorError('This user is offline.', expected=True)
43
+ raise UserNotLive(video_id=user_id)
44
44
 
45
45
  formats, subs = self._extract_m3u8_formats_and_subtitles(
46
46
  info.get('hls_src'), user_id, 'mp4', 'm3u8')
@@ -348,6 +348,7 @@ class InfoExtractor:
348
348
  duration: Length of the video in seconds, as an integer or float.
349
349
  view_count: How many users have watched the video on the platform.
350
350
  concurrent_view_count: How many users are currently watching the video on the platform.
351
+ save_count: Number of times the video has been saved or bookmarked
351
352
  like_count: Number of positive ratings of the video
352
353
  dislike_count: Number of negative ratings of the video
353
354
  repost_count: Number of reposts of the video
@@ -454,6 +454,7 @@ class TikTokBaseIE(InfoExtractor):
454
454
  'like_count': 'digg_count',
455
455
  'repost_count': 'share_count',
456
456
  'comment_count': 'comment_count',
457
+ 'save_count': 'collect_count',
457
458
  }, expected_type=int_or_none),
458
459
  **author_info,
459
460
  'channel_url': format_field(author_info, 'channel_id', self._UPLOADER_URL_FORMAT, default=None),
@@ -607,6 +608,7 @@ class TikTokBaseIE(InfoExtractor):
607
608
  'like_count': 'diggCount',
608
609
  'repost_count': 'shareCount',
609
610
  'comment_count': 'commentCount',
611
+ 'save_count': 'collectCount',
610
612
  }), expected_type=int_or_none),
611
613
  'thumbnails': [
612
614
  {
@@ -646,6 +648,7 @@ class TikTokIE(TikTokBaseIE):
646
648
  'like_count': int,
647
649
  'repost_count': int,
648
650
  'comment_count': int,
651
+ 'save_count': int,
649
652
  'artist': 'Ysrbeats',
650
653
  'album': 'Lehanga',
651
654
  'track': 'Lehanga',
@@ -675,6 +678,7 @@ class TikTokIE(TikTokBaseIE):
675
678
  'like_count': int,
676
679
  'repost_count': int,
677
680
  'comment_count': int,
681
+ 'save_count': int,
678
682
  'artists': ['Evan Todd', 'Jessica Keenan Wynn', 'Alice Lee', 'Barrett Wilbert Weed', 'Jon Eidson'],
679
683
  'track': 'Big Fun',
680
684
  },
@@ -702,6 +706,7 @@ class TikTokIE(TikTokBaseIE):
702
706
  'like_count': int,
703
707
  'repost_count': int,
704
708
  'comment_count': int,
709
+ 'save_count': int,
705
710
  },
706
711
  }, {
707
712
  # Sponsored video, only available with feed workaround
@@ -725,6 +730,7 @@ class TikTokIE(TikTokBaseIE):
725
730
  'like_count': int,
726
731
  'repost_count': int,
727
732
  'comment_count': int,
733
+ 'save_count': int,
728
734
  },
729
735
  'skip': 'This video is unavailable',
730
736
  }, {
@@ -751,6 +757,7 @@ class TikTokIE(TikTokBaseIE):
751
757
  'like_count': int,
752
758
  'repost_count': int,
753
759
  'comment_count': int,
760
+ 'save_count': int,
754
761
  },
755
762
  }, {
756
763
  # hydration JSON is sent in a <script> element
@@ -773,6 +780,7 @@ class TikTokIE(TikTokBaseIE):
773
780
  'like_count': int,
774
781
  'repost_count': int,
775
782
  'comment_count': int,
783
+ 'save_count': int,
776
784
  },
777
785
  'skip': 'This video is unavailable',
778
786
  }, {
@@ -798,6 +806,7 @@ class TikTokIE(TikTokBaseIE):
798
806
  'like_count': int,
799
807
  'repost_count': int,
800
808
  'comment_count': int,
809
+ 'save_count': int,
801
810
  'thumbnail': r're:^https://.+\.(?:webp|jpe?g)',
802
811
  },
803
812
  }, {
@@ -824,6 +833,7 @@ class TikTokIE(TikTokBaseIE):
824
833
  'like_count': int,
825
834
  'repost_count': int,
826
835
  'comment_count': int,
836
+ 'save_count': int,
827
837
  'thumbnail': r're:^https://.+',
828
838
  'thumbnails': 'count:3',
829
839
  },
@@ -851,6 +861,7 @@ class TikTokIE(TikTokBaseIE):
851
861
  'like_count': int,
852
862
  'repost_count': int,
853
863
  'comment_count': int,
864
+ 'save_count': int,
854
865
  'thumbnail': r're:^https://.+\.webp',
855
866
  },
856
867
  'skip': 'Unavailable via feed API, only audio available via web',
@@ -879,6 +890,7 @@ class TikTokIE(TikTokBaseIE):
879
890
  'like_count': int,
880
891
  'comment_count': int,
881
892
  'repost_count': int,
893
+ 'save_count': int,
882
894
  'thumbnail': r're:^https://.+\.(?:webp|jpe?g)',
883
895
  },
884
896
  }, {
@@ -1288,6 +1300,7 @@ class DouyinIE(TikTokBaseIE):
1288
1300
  'like_count': int,
1289
1301
  'repost_count': int,
1290
1302
  'comment_count': int,
1303
+ 'save_count': int,
1291
1304
  'thumbnail': r're:https?://.+\.jpe?g',
1292
1305
  },
1293
1306
  }, {
@@ -1312,6 +1325,7 @@ class DouyinIE(TikTokBaseIE):
1312
1325
  'like_count': int,
1313
1326
  'repost_count': int,
1314
1327
  'comment_count': int,
1328
+ 'save_count': int,
1315
1329
  'thumbnail': r're:https?://.+\.jpe?g',
1316
1330
  },
1317
1331
  }, {
@@ -1336,6 +1350,7 @@ class DouyinIE(TikTokBaseIE):
1336
1350
  'like_count': int,
1337
1351
  'repost_count': int,
1338
1352
  'comment_count': int,
1353
+ 'save_count': int,
1339
1354
  'thumbnail': r're:https?://.+\.jpe?g',
1340
1355
  },
1341
1356
  }, {
@@ -1353,6 +1368,7 @@ class DouyinIE(TikTokBaseIE):
1353
1368
  'like_count': int,
1354
1369
  'repost_count': int,
1355
1370
  'comment_count': int,
1371
+ 'save_count': int,
1356
1372
  },
1357
1373
  'skip': 'No longer available',
1358
1374
  }, {
@@ -1377,6 +1393,7 @@ class DouyinIE(TikTokBaseIE):
1377
1393
  'like_count': int,
1378
1394
  'repost_count': int,
1379
1395
  'comment_count': int,
1396
+ 'save_count': int,
1380
1397
  'thumbnail': r're:https?://.+\.jpe?g',
1381
1398
  },
1382
1399
  }]
@@ -1437,6 +1454,7 @@ class TikTokVMIE(InfoExtractor):
1437
1454
  'view_count': int,
1438
1455
  'like_count': int,
1439
1456
  'comment_count': int,
1457
+ 'save_count': int,
1440
1458
  'thumbnail': r're:https://.+\.webp.*',
1441
1459
  'uploader_url': 'https://www.tiktok.com/@MS4wLjABAAAAdZ_NcPPgMneaGrW0hN8O_J_bwLshwNNERRF5DxOw2HKIzk0kdlLrR8RkVl1ksrMO',
1442
1460
  'duration': 29,
@@ -20,6 +20,8 @@ class TumblrIE(InfoExtractor):
20
20
  'id': '54196191430',
21
21
  'ext': 'mp4',
22
22
  'title': 'md5:dfac39636969fe6bf1caa2d50405f069',
23
+ 'timestamp': 1372531260,
24
+ 'upload_date': '20130629',
23
25
  'description': 'md5:390ab77358960235b6937ab3b8528956',
24
26
  'uploader_id': 'tatianamaslanydaily',
25
27
  'uploader_url': 'https://tatianamaslanydaily.tumblr.com/',
@@ -39,6 +41,8 @@ class TumblrIE(InfoExtractor):
39
41
  'ext': 'mp4',
40
42
  'title': 'Mona\xa0“talking” in\xa0“english”',
41
43
  'description': 'md5:082a3a621530cb786ad2b7592a6d9e2c',
44
+ 'timestamp': 1597865276,
45
+ 'upload_date': '20200819',
42
46
  'uploader_id': 'maskofthedragon',
43
47
  'uploader_url': 'https://maskofthedragon.tumblr.com/',
44
48
  'thumbnail': r're:^https?://.*\.jpg',
@@ -76,6 +80,8 @@ class TumblrIE(InfoExtractor):
76
80
  'id': '159704441298',
77
81
  'ext': 'mp4',
78
82
  'title': 'md5:ba79365861101f4911452728d2950561',
83
+ 'timestamp': 1492489550,
84
+ 'upload_date': '20170418',
79
85
  'description': 'md5:773738196cea76b6996ec71e285bdabc',
80
86
  'uploader_id': 'jujanon',
81
87
  'uploader_url': 'https://jujanon.tumblr.com/',
@@ -93,6 +99,8 @@ class TumblrIE(InfoExtractor):
93
99
  'id': '180294460076',
94
100
  'ext': 'mp4',
95
101
  'title': 'duality of bird',
102
+ 'timestamp': 1542651819,
103
+ 'upload_date': '20181119',
96
104
  'description': 'duality of bird',
97
105
  'uploader_id': 'todaysbird',
98
106
  'uploader_url': 'https://todaysbird.tumblr.com/',
@@ -238,6 +246,8 @@ class TumblrIE(InfoExtractor):
238
246
  'info_dict': {
239
247
  'id': '730460905855467520',
240
248
  'uploader_id': 'felixcosm',
249
+ 'upload_date': '20231006',
250
+ 'timestamp': 1696621805,
241
251
  'repost_count': int,
242
252
  'tags': 'count:15',
243
253
  'description': 'md5:2eb3482a3c6987280cbefb6839068f32',
@@ -327,6 +337,8 @@ class TumblrIE(InfoExtractor):
327
337
  'url': 'https://www.tumblr.com/anyaboz/765332564457209856/my-music-video-for-selkie-by-nobodys-wolf-child',
328
338
  'info_dict': {
329
339
  'id': '765332564457209856',
340
+ 'timestamp': 1729878010,
341
+ 'upload_date': '20241025',
330
342
  'uploader_id': 'anyaboz',
331
343
  'repost_count': int,
332
344
  'age_limit': 0,
@@ -445,6 +457,8 @@ class TumblrIE(InfoExtractor):
445
457
  'uploader_id': uploader_id,
446
458
  'uploader_url': f'https://{uploader_id}.tumblr.com/' if uploader_id else None,
447
459
  **traverse_obj(post_json, {
460
+ # Try oldest post in reblog chain, fall back to timestamp of the post itself
461
+ 'timestamp': ((('trail', 0, 'post'), None), 'timestamp', {int_or_none}, any),
448
462
  'like_count': ('like_count', {int_or_none}),
449
463
  'repost_count': ('reblog_count', {int_or_none}),
450
464
  'tags': ('tags', ..., {str}),
@@ -680,6 +680,10 @@ class TwitchPlaylistBaseIE(TwitchBaseIE):
680
680
  }],
681
681
  f'Downloading {self._NODE_KIND}s GraphQL page {page_num}',
682
682
  fatal=False)
683
+ # Avoid extracting random/unrelated entries when channel_name doesn't exist
684
+ # See https://github.com/yt-dlp/yt-dlp/issues/15450
685
+ if traverse_obj(page, (0, 'data', 'user', 'id', {str})) == '':
686
+ raise ExtractorError(f'Channel "{channel_name}" not found', expected=True)
683
687
  if not page:
684
688
  break
685
689
  edges = try_get(
yt_dlp/extractor/zoom.py CHANGED
@@ -4,13 +4,15 @@ from ..utils import (
4
4
  int_or_none,
5
5
  js_to_json,
6
6
  parse_filesize,
7
+ parse_qs,
7
8
  parse_resolution,
8
9
  str_or_none,
9
- traverse_obj,
10
+ update_url_query,
10
11
  url_basename,
11
12
  urlencode_postdata,
12
13
  urljoin,
13
14
  )
15
+ from ..utils.traversal import traverse_obj
14
16
 
15
17
 
16
18
  class ZoomIE(InfoExtractor):
@@ -87,6 +89,7 @@ class ZoomIE(InfoExtractor):
87
89
  def _real_extract(self, url):
88
90
  base_url, url_type, video_id = self._match_valid_url(url).group('base_url', 'type', 'id')
89
91
  query = {}
92
+ start_params = traverse_obj(url, {'startTime': ({parse_qs}, 'startTime', -1)})
90
93
 
91
94
  if url_type == 'share':
92
95
  webpage = self._get_real_webpage(url, base_url, video_id, 'share')
@@ -94,7 +97,7 @@ class ZoomIE(InfoExtractor):
94
97
  redirect_path = self._download_json(
95
98
  f'{base_url}nws/recording/1.0/play/share-info/{meeting_id}',
96
99
  video_id, note='Downloading share info JSON')['result']['redirectUrl']
97
- url = urljoin(base_url, redirect_path)
100
+ url = update_url_query(urljoin(base_url, redirect_path), start_params)
98
101
  query['continueMode'] = 'true'
99
102
 
100
103
  webpage = self._get_real_webpage(url, base_url, video_id, 'play')
@@ -103,6 +106,7 @@ class ZoomIE(InfoExtractor):
103
106
  # When things go wrong, file_id can be empty string
104
107
  raise ExtractorError('Unable to extract file ID')
105
108
 
109
+ query.update(start_params)
106
110
  data = self._download_json(
107
111
  f'{base_url}nws/recording/1.0/play/info/{file_id}', video_id, query=query,
108
112
  note='Downloading play info JSON')['result']
yt_dlp/utils/_utils.py CHANGED
@@ -2830,7 +2830,7 @@ def js_to_json(code, vars={}, *, strict=False):
2830
2830
  {STRING_RE}|
2831
2831
  {COMMENT_RE}|,(?={SKIP_RE}[\]}}])|
2832
2832
  void\s0|(?:(?<![0-9])[eE]|[a-df-zA-DF-Z_$])[.a-zA-Z_$0-9]*|
2833
- \b(?:0[xX][0-9a-fA-F]+|0+[0-7]+)(?:{SKIP_RE}:)?|
2833
+ \b(?:0[xX][0-9a-fA-F]+|(?<!\.)0+[0-7]+)(?:{SKIP_RE}:)?|
2834
2834
  [0-9]+(?={SKIP_RE}:)|
2835
2835
  !+
2836
2836
  ''', fix_kv, code)
yt_dlp/version.py CHANGED
@@ -1,8 +1,8 @@
1
1
  # Autogenerated by devscripts/update-version.py
2
2
 
3
- __version__ = '2026.01.02.233036'
3
+ __version__ = '2026.01.03.233044'
4
4
 
5
- RELEASE_GIT_HEAD = '3763d0d4ab8bdbe433ce08e45e21f36ebdeb5db3'
5
+ RELEASE_GIT_HEAD = '9c393e3f6220d34d534bef7d9d345782003b58ad'
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 = '2026.01.02.233036dev'
15
+ _pkg_version = '2026.01.03.233044dev'
@@ -1563,6 +1563,8 @@ The available fields are:
1563
1563
  - comment_count (numeric): Number of comments on the video (For some
1564
1564
  extractors, comments are only downloaded at the end, and so this
1565
1565
  field cannot be used)
1566
+ - save_count (numeric): Number of times the video has been saved or
1567
+ bookmarked
1566
1568
  - age_limit (numeric): Age restriction for the video (years)
1567
1569
  - live_status (string): One of "not_live", "is_live", "is_upcoming",
1568
1570
  "was_live", "post_live" (was live, but VOD is not yet processed)
@@ -1650,6 +1650,9 @@ scale used depends on the webpage
1650
1650
  some extractors, comments are only downloaded at the end, and so this
1651
1651
  field cannot be used)
1652
1652
  .IP \[bu] 2
1653
+ \f[V]save_count\f[R] (numeric): Number of times the video has been saved
1654
+ or bookmarked
1655
+ .IP \[bu] 2
1653
1656
  \f[V]age_limit\f[R] (numeric): Age restriction for the video (years)
1654
1657
  .IP \[bu] 2
1655
1658
  \f[V]live_status\f[R] (string): One of \[dq]not_live\[dq],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yt-dlp
3
- Version: 2026.1.2.233036.dev0
3
+ Version: 2026.1.3.233044.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
@@ -1420,6 +1420,7 @@ The available fields are:
1420
1420
  - `repost_count` (numeric): Number of reposts of the video
1421
1421
  - `average_rating` (numeric): Average rating given by users, the scale used depends on the webpage
1422
1422
  - `comment_count` (numeric): Number of comments on the video (For some extractors, comments are only downloaded at the end, and so this field cannot be used)
1423
+ - `save_count` (numeric): Number of times the video has been saved or bookmarked
1423
1424
  - `age_limit` (numeric): Age restriction for the video (years)
1424
1425
  - `live_status` (string): One of "not_live", "is_live", "is_upcoming", "was_live", "post_live" (was live, but VOD is not yet processed)
1425
1426
  - `is_live` (boolean): Whether this video is a live stream or a fixed-length video
@@ -1,4 +1,4 @@
1
- yt_dlp/YoutubeDL.py,sha256=H05y5EO1r4j4_iSs9gZaLUidSheO8xm40qaLzebF-Jk,216635
1
+ yt_dlp/YoutubeDL.py,sha256=nk4plDMtrPHOUodTf6_pD_1JeIW6kXIvod-pQjpZzl8,216649
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=BbgDw4_0zaRVLo3K2sAJzxnAeZCxG2_c0m_BK6v_PV0,360
14
+ yt_dlp/version.py,sha256=UhHdKz3tJ1aVlJSdaFkq9oi1QRb5pq2qS5uX0UnNy-M,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
@@ -126,7 +126,7 @@ yt_dlp/extractor/bfi.py,sha256=nqsDl9-d7dF1aIdsxy8vYZDrl5ipoQioeubw2RWrRYY,1305
126
126
  yt_dlp/extractor/bfmtv.py,sha256=pumqV7VruC7dLgk2Z10qqc_5KU3AiZo9HHq4PkTWJDY,6400
127
127
  yt_dlp/extractor/bibeltv.py,sha256=cPbk9RrVB5aqD8tY69dpy7x0YZVo-ZUZxT_-60BHTC8,6795
128
128
  yt_dlp/extractor/bigflix.py,sha256=ggTZQzEoN996CDgQQnENzCL8L2HBT-RUEkbhEhL8HVg,2187
129
- yt_dlp/extractor/bigo.py,sha256=qXaGfrodgcDKzpz_FMq_E4S_sPVEMM_QwzULNPuZ2kA,2021
129
+ yt_dlp/extractor/bigo.py,sha256=BpDfwDXygDo1Yw9ID_Mj-odAjNKE5U_PvGaQkEde7X4,2009
130
130
  yt_dlp/extractor/bild.py,sha256=xMe3iiiVhzR-yroNWGND02qE1jV-k4Bmffv4h57T70I,2445
131
131
  yt_dlp/extractor/bilibili.py,sha256=eLbpt30OVk--vF5cpCvhJ9Oy4s8cloaxUa-Yd_6kMOw,111214
132
132
  yt_dlp/extractor/biobiochiletv.py,sha256=NL40X9OPHI9UydixpWtlFjTNVHI4W0Luynf-gWMvPzU,3454
@@ -205,7 +205,7 @@ yt_dlp/extractor/clyp.py,sha256=eSp0p9RCfH_QMOtleXboLcY7Crf2rHKUYT5KMwYjYuI,3073
205
205
  yt_dlp/extractor/cnbc.py,sha256=_W4ltJdeNq1-AazHK3kYBYabqyHxhSWC15bzRLjuw7Q,4615
206
206
  yt_dlp/extractor/cnn.py,sha256=gGU8dxUKuYcGEtZZ5L4YC7-0y7rDsQZKYC99sdsxR54,13381
207
207
  yt_dlp/extractor/comedycentral.py,sha256=vbi-CeCzA_gLd0THNVcysBQxnanqXXUwRxVavjSF7qM,1048
208
- yt_dlp/extractor/common.py,sha256=RHzUA1S3qfzo6faMMHfXb8bbq8RxLImMYeqTybAupiI,203124
208
+ yt_dlp/extractor/common.py,sha256=fjAMTGaYESQFeZaVmH4ih8s7768Ko0affWIrntoiim8,203199
209
209
  yt_dlp/extractor/commonmistakes.py,sha256=h5ytKJIAIJJ_XD9jIOqRnFf3dkQfo0ogQxqxW0ALcWU,1738
210
210
  yt_dlp/extractor/commonprotocols.py,sha256=fUHepBydlFUEuIwQCSyB1q9O8f6KOMegRHcf63SgITg,1937
211
211
  yt_dlp/extractor/condenast.py,sha256=IgmDOe2k_a7EaXuNN2PDs6opKh2kjL_s4VKhrr_RbVQ,10391
@@ -889,7 +889,7 @@ yt_dlp/extractor/thisoldhouse.py,sha256=YLnhWuuA0xMbY766tVDVKi-iaRwwmgOs8sdD-ydB
889
889
  yt_dlp/extractor/thisvid.py,sha256=dxN-I56UieWt92iS2VSXK7IckobVNQ6BYPgvOJ9vWJI,8628
890
890
  yt_dlp/extractor/threeqsdn.py,sha256=zNHqF2ELqulYpoUCp1YYPlf0tyPS2krsrEUkS0Cw8YQ,6219
891
891
  yt_dlp/extractor/threespeak.py,sha256=agG3Ue0h19dAknJHwrK9a3RBQB4aja-5cx1crkOCIUc,4025
892
- yt_dlp/extractor/tiktok.py,sha256=qru40ieiAp7jwxYYIrWZEHvBb3RsZ0JnADzdEYiHuMo,73286
892
+ yt_dlp/extractor/tiktok.py,sha256=DF97KMx2bxwKfVWAsYs_vqmOSRvk3Yzy-DefqCO0SkI,73875
893
893
  yt_dlp/extractor/tmz.py,sha256=Nu3xReAc7dKyZcxTGwXYjOpDjeMdfLKSIgJMpjSobNI,9626
894
894
  yt_dlp/extractor/tnaflix.py,sha256=PAWzd7LtF97MF-aHSdUOpWpAmLUqBlAhP0FH0T3tpk0,13561
895
895
  yt_dlp/extractor/toggle.py,sha256=unbnd9IcJJOKcpoYSySISehBRbYeqHhr1x-fHmeLba4,7892
@@ -910,7 +910,7 @@ yt_dlp/extractor/truth.py,sha256=zND7u4eWsBg8wZDIuxQiloZIOl5bwJv2y9B5eWOmugw,279
910
910
  yt_dlp/extractor/tube8.py,sha256=0CEsgUAnxqb70TkM4tBSH5TpII3rLem_HRUQS1dptPI,6248
911
911
  yt_dlp/extractor/tubetugraz.py,sha256=rEWNBA469DS-r8hXXmtk-pdRlvD_ZgZyZhlZgvgdTfI,11143
912
912
  yt_dlp/extractor/tubitv.py,sha256=BdizhV-1lf0Q9pg37KpHC_YumE2UBXS1si_mfLuFb8o,8771
913
- yt_dlp/extractor/tumblr.py,sha256=wlLpSdyQCZ-URyDrEcPb4bCJj35CUJFRnY8sEGT-nBM,24113
913
+ yt_dlp/extractor/tumblr.py,sha256=C0tVMK63z18kb7HOk1bl5M5GDBM5nq2VURjSKxsVlnQ,24756
914
914
  yt_dlp/extractor/tunein.py,sha256=Db7maeI5BaLpPbtAlXRLKJCkOKnwg-HFy4MoW1f0Dro,12542
915
915
  yt_dlp/extractor/turner.py,sha256=DH8l6_U3NJ-eu2tmTGuHQt4-joNBcJ2IT9H1WIpghhU,11459
916
916
  yt_dlp/extractor/tv2.py,sha256=OpiiiJ789PODJ8WuZteS79UmqRTff4zmVG4VIFCRjFQ,13722
@@ -937,7 +937,7 @@ yt_dlp/extractor/tweakers.py,sha256=3B8ssCQGPLaaiPBb340aV6-3iEIpxOLqJjooG5_Au3k,
937
937
  yt_dlp/extractor/twentymin.py,sha256=c3vIstexHUmthQP6R3Hl0DVyI70LfC4MWIb4_VxYhsY,3036
938
938
  yt_dlp/extractor/twentythreevideo.py,sha256=bnnGCFO-WVnXTDrpgOKl8jot9nxmelPwR3vnqWyIaUQ,3241
939
939
  yt_dlp/extractor/twitcasting.py,sha256=1L0h5kir4_HxCoMD18N-x5wvOJCKuX9Wj6p47uAzPBA,12990
940
- yt_dlp/extractor/twitch.py,sha256=EJHC5LQvWdf2oBbb-h_WaitRev-YVeGmccfqvWPFXhk,47616
940
+ yt_dlp/extractor/twitch.py,sha256=ADNLgSBp77w9eGioR3LT4N7l2DZBcC_FAnbmUFgSWM0,47934
941
941
  yt_dlp/extractor/twitter.py,sha256=D6XMMIz55mXbPsh2IDDl3HzT8MobJX7ROEk72gouE6w,76608
942
942
  yt_dlp/extractor/txxx.py,sha256=lnYZFfSoZuR9A8gmfCUexZrifLU7JoGdZmiTs0o0Luw,17085
943
943
  yt_dlp/extractor/udemy.py,sha256=hcSht3C1N_fnXHYFaIMzv843WeyToj7yMiepDK31sqI,19341
@@ -1057,7 +1057,7 @@ yt_dlp/extractor/zenporn.py,sha256=WnkN_cSf5CgxLGgmTvFUeywNTTNJuLblBwkdZYi2eNc,4
1057
1057
  yt_dlp/extractor/zetland.py,sha256=KGVNAqyjL1w6jGevhqeKTHSWZixJWBXh3YNJJV657uc,3918
1058
1058
  yt_dlp/extractor/zhihu.py,sha256=2pkvnIOcHvQj_DxPKR3w7MYp229HriAJd-ShJiy_HxQ,2546
1059
1059
  yt_dlp/extractor/zingmp3.py,sha256=KHD-f-1vUPy18Xk-_F_H_LfFR9N7-bONFYWeNRvJ1Z4,23549
1060
- yt_dlp/extractor/zoom.py,sha256=DW5TmRR4GWWWloSysqYqN-R5jvDkLTMdsOzsyIWcltk,7090
1060
+ yt_dlp/extractor/zoom.py,sha256=7FwI0aJRG3evlKmCC97Ndc7oFRrFT3LHiHye__QZ7Do,7305
1061
1061
  yt_dlp/extractor/zype.py,sha256=e3_07aMl65x-ziI5Ge_Ph_lCV4q67DnqeRq2PjIKZj4,5507
1062
1062
  yt_dlp/extractor/youtube/__init__.py,sha256=3F72z6WHXlv41giIdmmVY7Fws-bAnkiWz8Eh3A19004,1454
1063
1063
  yt_dlp/extractor/youtube/_base.py,sha256=HlC-OeuoGS8gJhiErGJ8My_wpjYL5iCJnQpgWjrpYXI,55551
@@ -1117,19 +1117,19 @@ yt_dlp/utils/__init__.py,sha256=fktzbumix8bd9Xi288JebTYkxCuNhG21qkcSno-3g_s,283
1117
1117
  yt_dlp/utils/_deprecated.py,sha256=5KjqmcPW8uIc77xkhvz1gwxBb-jBF7cwG5nI6xxHebU,1300
1118
1118
  yt_dlp/utils/_jsruntime.py,sha256=cPLHquABqggAepWHIYlG9zgrnwjV4Le55mr8Fx71nCo,4319
1119
1119
  yt_dlp/utils/_legacy.py,sha256=hmczdkw5SELzsFcB2AUblAY9bw8gIBDuPFTBlYvXe_4,7858
1120
- yt_dlp/utils/_utils.py,sha256=rhzvAlyBERlgLmlNnLQuIzY3xEg9eWH05U1OazHrysI,191027
1120
+ yt_dlp/utils/_utils.py,sha256=3ARez4w3Mv-_r3dTYA1eEF9GMx5JYzdiT2KOezcxVZo,191034
1121
1121
  yt_dlp/utils/networking.py,sha256=OFupeRqIwaw5_GYWRYums5kpy--IyhE7Rt5JkZeFLIM,8651
1122
1122
  yt_dlp/utils/progress.py,sha256=t9kVvJ0oWuEqRzo9fdFbIhHUBtO_8mg348QwZ1faqLo,3261
1123
1123
  yt_dlp/utils/traversal.py,sha256=64E3RcZ56iSX50RI_HbKdDNftkETMLBaEPX791_b7yQ,18265
1124
1124
  yt_dlp/utils/jslib/__init__.py,sha256=CbdJiRA7Eh5PnjF2V4lDTcg0J0XjBMaaq0H4pCfq9Tk,87
1125
1125
  yt_dlp/utils/jslib/devalue.py,sha256=7DCGK_zUN0ZeV5hwPT06zaRMUxX_hyUyFWqs79rxw24,5621
1126
- yt_dlp-2026.1.2.233036.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
1127
- yt_dlp-2026.1.2.233036.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=cPx4ZehhabGCBTYTosfKHInDIeDasDSR2Xtxtl-xo58,165135
1128
- yt_dlp-2026.1.2.233036.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=v2WQvWvk4qKpp2-97z2ULb5Msj5dgzU6nMkS-FwSmbM,51488
1129
- yt_dlp-2026.1.2.233036.dev0.data/data/share/man/man1/yt-dlp.1,sha256=yyBAVJTtg0xPpkUsET4pkWywEepOaZ5Pap5UnleI85M,159690
1130
- yt_dlp-2026.1.2.233036.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
1131
- yt_dlp-2026.1.2.233036.dev0.dist-info/METADATA,sha256=AMZXXXrJH9JkHGu60Z0g1-WjnFy-tRsjhdxWd-0Gc7Q,180511
1132
- yt_dlp-2026.1.2.233036.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1133
- yt_dlp-2026.1.2.233036.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
1134
- yt_dlp-2026.1.2.233036.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
1135
- yt_dlp-2026.1.2.233036.dev0.dist-info/RECORD,,
1126
+ yt_dlp-2026.1.3.233044.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
1127
+ yt_dlp-2026.1.3.233044.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=tt0TDGwdMoOxnPTbcAwib0CshxC47M1o1twsNyDSVgI,165220
1128
+ yt_dlp-2026.1.3.233044.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=v2WQvWvk4qKpp2-97z2ULb5Msj5dgzU6nMkS-FwSmbM,51488
1129
+ yt_dlp-2026.1.3.233044.dev0.data/data/share/man/man1/yt-dlp.1,sha256=I76tezS4KEGpoILtX3Z-4uJuwa0G21_lbMMHtN5WHW0,159789
1130
+ yt_dlp-2026.1.3.233044.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
1131
+ yt_dlp-2026.1.3.233044.dev0.dist-info/METADATA,sha256=JtEViHBE31Kx0welkSQlINzLD40E6BaKc3d48TGxIEk,180593
1132
+ yt_dlp-2026.1.3.233044.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
1133
+ yt_dlp-2026.1.3.233044.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
1134
+ yt_dlp-2026.1.3.233044.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
1135
+ yt_dlp-2026.1.3.233044.dev0.dist-info/RECORD,,