yt-dlp 2025.12.12.233036.dev0__py3-none-any.whl → 2025.12.15.233113.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/lazy_extractors.py +1 -1
- yt_dlp/extractor/parti.py +15 -21
- yt_dlp/extractor/youtube/_tab.py +2 -5
- yt_dlp/version.py +3 -3
- {yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.dev0.dist-info}/METADATA +1 -1
- {yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.dev0.dist-info}/RECORD +14 -14
- {yt_dlp-2025.12.12.233036.dev0.data → yt_dlp-2025.12.15.233113.dev0.data}/data/share/bash-completion/completions/yt-dlp +0 -0
- {yt_dlp-2025.12.12.233036.dev0.data → yt_dlp-2025.12.15.233113.dev0.data}/data/share/doc/yt_dlp/README.txt +0 -0
- {yt_dlp-2025.12.12.233036.dev0.data → yt_dlp-2025.12.15.233113.dev0.data}/data/share/fish/vendor_completions.d/yt-dlp.fish +0 -0
- {yt_dlp-2025.12.12.233036.dev0.data → yt_dlp-2025.12.15.233113.dev0.data}/data/share/man/man1/yt-dlp.1 +0 -0
- {yt_dlp-2025.12.12.233036.dev0.data → yt_dlp-2025.12.15.233113.dev0.data}/data/share/zsh/site-functions/_yt-dlp +0 -0
- {yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.dev0.dist-info}/WHEEL +0 -0
- {yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.dev0.dist-info}/entry_points.txt +0 -0
- {yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.dev0.dist-info}/licenses/LICENSE +0 -0
|
@@ -8930,7 +8930,7 @@ class PartiBaseIE(LazyLoadExtractor):
|
|
|
8930
8930
|
class PartiLivestreamIE(PartiBaseIE):
|
|
8931
8931
|
_module = 'yt_dlp.extractor.parti'
|
|
8932
8932
|
IE_NAME = 'parti:livestream'
|
|
8933
|
-
_VALID_URL = 'https?://(?:www\\.)?parti\\.com/
|
|
8933
|
+
_VALID_URL = 'https?://(?:www\\.)?parti\\.com/(?!video/)(?P<id>[\\w/-]+)'
|
|
8934
8934
|
_RETURN_TYPE = 'video'
|
|
8935
8935
|
|
|
8936
8936
|
|
yt_dlp/extractor/parti.py
CHANGED
|
@@ -6,7 +6,10 @@ from ..utils.traversal import traverse_obj
|
|
|
6
6
|
class PartiBaseIE(InfoExtractor):
|
|
7
7
|
def _call_api(self, path, video_id, note=None):
|
|
8
8
|
return self._download_json(
|
|
9
|
-
f'https://api
|
|
9
|
+
f'https://prod-api.parti.com/parti_v2/profile/{path}', video_id, note, headers={
|
|
10
|
+
'Origin': 'https://parti.com',
|
|
11
|
+
'Referer': 'https://parti.com/',
|
|
12
|
+
})
|
|
10
13
|
|
|
11
14
|
|
|
12
15
|
class PartiVideoIE(PartiBaseIE):
|
|
@@ -20,7 +23,7 @@ class PartiVideoIE(PartiBaseIE):
|
|
|
20
23
|
'title': 'NOW LIVE ',
|
|
21
24
|
'upload_date': '20250327',
|
|
22
25
|
'categories': ['Gaming'],
|
|
23
|
-
'thumbnail': 'https://
|
|
26
|
+
'thumbnail': 'https://media.parti.com/351424_eb9e5250-2821-484a-9c5f-ca99aa666c87.png',
|
|
24
27
|
'channel': 'ItZTMGG',
|
|
25
28
|
'timestamp': 1743044379,
|
|
26
29
|
},
|
|
@@ -34,7 +37,7 @@ class PartiVideoIE(PartiBaseIE):
|
|
|
34
37
|
return {
|
|
35
38
|
'id': video_id,
|
|
36
39
|
'formats': self._extract_m3u8_formats(
|
|
37
|
-
urljoin('https://
|
|
40
|
+
urljoin('https://media.parti.com/', data['livestream_recording']), video_id, 'mp4'),
|
|
38
41
|
**traverse_obj(data, {
|
|
39
42
|
'title': ('event_title', {str}),
|
|
40
43
|
'channel': ('user_name', {str}),
|
|
@@ -47,32 +50,27 @@ class PartiVideoIE(PartiBaseIE):
|
|
|
47
50
|
|
|
48
51
|
class PartiLivestreamIE(PartiBaseIE):
|
|
49
52
|
IE_NAME = 'parti:livestream'
|
|
50
|
-
_VALID_URL = r'https?://(?:www\.)?parti\.com/
|
|
53
|
+
_VALID_URL = r'https?://(?:www\.)?parti\.com/(?!video/)(?P<id>[\w/-]+)'
|
|
51
54
|
_TESTS = [{
|
|
52
|
-
'url': 'https://parti.com/
|
|
55
|
+
'url': 'https://parti.com/247CryptoTracker',
|
|
53
56
|
'info_dict': {
|
|
54
|
-
'id': 'Capt_Robs_Adventures',
|
|
55
57
|
'ext': 'mp4',
|
|
58
|
+
'id': '247CryptoTracker',
|
|
59
|
+
'description': 'md5:a78051f3d7e66e6a64c6b1eaf59fd364',
|
|
56
60
|
'title': r"re:I'm Live on Parti \d{4}-\d{2}-\d{2} \d{2}:\d{2}",
|
|
57
|
-
'
|
|
58
|
-
'thumbnail': r're:https://assets\.parti\.com/.+\.png',
|
|
59
|
-
'timestamp': 1743879776,
|
|
60
|
-
'upload_date': '20250405',
|
|
61
|
+
'thumbnail': r're:https://media\.parti\.com/stream-screenshots/.+\.png',
|
|
61
62
|
'live_status': 'is_live',
|
|
62
63
|
},
|
|
63
64
|
'params': {'skip_download': 'm3u8'},
|
|
64
|
-
}, {
|
|
65
|
-
'url': 'https://parti.com/creator/discord/sazboxgaming/0',
|
|
66
|
-
'only_matching': True,
|
|
67
65
|
}]
|
|
68
66
|
|
|
69
67
|
def _real_extract(self, url):
|
|
70
|
-
|
|
68
|
+
creator_slug = self._match_id(url)
|
|
71
69
|
|
|
72
70
|
encoded_creator_slug = creator_slug.replace('/', '%23')
|
|
73
71
|
creator_id = self._call_api(
|
|
74
|
-
f'
|
|
75
|
-
creator_slug, note='Fetching user ID')
|
|
72
|
+
f'user_id_from_name/{encoded_creator_slug}',
|
|
73
|
+
creator_slug, note='Fetching user ID')['user_id']
|
|
76
74
|
|
|
77
75
|
data = self._call_api(
|
|
78
76
|
f'get_livestream_channel_info/{creator_id}', creator_id,
|
|
@@ -85,11 +83,7 @@ class PartiLivestreamIE(PartiBaseIE):
|
|
|
85
83
|
|
|
86
84
|
return {
|
|
87
85
|
'id': creator_slug,
|
|
88
|
-
'formats': self._extract_m3u8_formats(
|
|
89
|
-
channel_info['playback_url'], creator_slug, live=True, query={
|
|
90
|
-
'token': channel_info['playback_auth_token'],
|
|
91
|
-
'player_version': '1.17.0',
|
|
92
|
-
}),
|
|
86
|
+
'formats': self._extract_m3u8_formats(channel_info['playback_url'], creator_slug, live=True),
|
|
93
87
|
'is_live': True,
|
|
94
88
|
**traverse_obj(data, {
|
|
95
89
|
'title': ('livestream_event_info', 'event_name', {str}),
|
yt_dlp/extractor/youtube/_tab.py
CHANGED
|
@@ -382,7 +382,8 @@ class YoutubeTabBaseInfoExtractor(YoutubeBaseInfoExtractor):
|
|
|
382
382
|
('accessibilityText', {lambda x: re.fullmatch(r'(.+), (?:[\d,.]+(?:[KM]| million)?|No) views? - play Short', x)}, 1)), any),
|
|
383
383
|
'view_count': ('overlayMetadata', 'secondaryText', 'content', {parse_count}),
|
|
384
384
|
}),
|
|
385
|
-
thumbnails=self._extract_thumbnails(
|
|
385
|
+
thumbnails=self._extract_thumbnails(
|
|
386
|
+
renderer, ('thumbnailViewModel', 'thumbnailViewModel', 'image'), final_key='sources'))
|
|
386
387
|
return
|
|
387
388
|
|
|
388
389
|
def _video_entry(self, video_renderer):
|
|
@@ -1585,7 +1586,6 @@ class YoutubeTabIE(YoutubeTabBaseInfoExtractor):
|
|
|
1585
1586
|
'playlist_count': 50,
|
|
1586
1587
|
'expected_warnings': ['YouTube Music is not directly supported'],
|
|
1587
1588
|
}, {
|
|
1588
|
-
# TODO: fix test suite, 208163447408c78673b08c172beafe5c310fb167 broke this test
|
|
1589
1589
|
'note': 'unlisted single video playlist',
|
|
1590
1590
|
'url': 'https://www.youtube.com/playlist?list=PLt5yu3-wZAlQLfIN0MMgp0wVV6MP3bM4_',
|
|
1591
1591
|
'info_dict': {
|
|
@@ -1885,8 +1885,6 @@ class YoutubeTabIE(YoutubeTabBaseInfoExtractor):
|
|
|
1885
1885
|
'playlist_mincount': 30,
|
|
1886
1886
|
}, {
|
|
1887
1887
|
# Shorts url result in shorts tab
|
|
1888
|
-
# TODO: Fix channel id extraction
|
|
1889
|
-
# TODO: fix test suite, 208163447408c78673b08c172beafe5c310fb167 broke this test
|
|
1890
1888
|
'url': 'https://www.youtube.com/channel/UCiu-3thuViMebBjw_5nWYrA/shorts',
|
|
1891
1889
|
'info_dict': {
|
|
1892
1890
|
'id': 'UCiu-3thuViMebBjw_5nWYrA',
|
|
@@ -1915,7 +1913,6 @@ class YoutubeTabIE(YoutubeTabBaseInfoExtractor):
|
|
|
1915
1913
|
'params': {'extract_flat': True},
|
|
1916
1914
|
}, {
|
|
1917
1915
|
# Live video status should be extracted
|
|
1918
|
-
# TODO: fix test suite, 208163447408c78673b08c172beafe5c310fb167 broke this test
|
|
1919
1916
|
'url': 'https://www.youtube.com/channel/UCQvWX73GQygcwXOTSf_VDVg/live',
|
|
1920
1917
|
'info_dict': {
|
|
1921
1918
|
'id': 'UCQvWX73GQygcwXOTSf_VDVg',
|
yt_dlp/version.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Autogenerated by devscripts/update-version.py
|
|
2
2
|
|
|
3
|
-
__version__ = '2025.12.
|
|
3
|
+
__version__ = '2025.12.15.233113'
|
|
4
4
|
|
|
5
|
-
RELEASE_GIT_HEAD = '
|
|
5
|
+
RELEASE_GIT_HEAD = 'ff61bef041d1f69fec1044f783fb938c005128af'
|
|
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.
|
|
15
|
+
_pkg_version = '2025.12.15.233113dev'
|
{yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.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.15.233113.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
|
|
@@ -11,7 +11,7 @@ yt_dlp/options.py,sha256=cEALlBE-OokSe0xGY5pHsLozTJpw-yR9pSVBCNp2SqI,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=j3Ez-qwOSuqnc7p8F7qNI9X-9nrVv7QVrphH-OmXfQ0,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
|
|
@@ -459,7 +459,7 @@ yt_dlp/extractor/la7.py,sha256=GShDLu1N0rS1bY4uIiUkznThvn7gNiwtSgmh7Rs7t08,9435
|
|
|
459
459
|
yt_dlp/extractor/laracasts.py,sha256=PzTqAbHXiUqog-mpp2qR_rpKa-sZel4mLyzWTPkbDuc,4587
|
|
460
460
|
yt_dlp/extractor/lastfm.py,sha256=OpmE-Y-2rcav2r2xaDQzX_EJiltmbbe6fO9VzkLqNWQ,4748
|
|
461
461
|
yt_dlp/extractor/laxarxames.py,sha256=-YyL-5y4t2L9ptTSLXhvK-SJwvXGqv5l1HfT129zF0c,2773
|
|
462
|
-
yt_dlp/extractor/lazy_extractors.py,sha256=
|
|
462
|
+
yt_dlp/extractor/lazy_extractors.py,sha256=B0vJZ2oVDS0Xn2GdGU1oYDAzBdiYesNCrqPOawyMYpg,815206
|
|
463
463
|
yt_dlp/extractor/lbry.py,sha256=gC9jRRo8wSXc1-6somhW13brAtmWGlJ5_Q0NMhZpKwk,18078
|
|
464
464
|
yt_dlp/extractor/lci.py,sha256=_0XuoITIt_QFA-6eBNpDXZZfouwUWfcdHQlpAOuiLEs,2131
|
|
465
465
|
yt_dlp/extractor/lcp.py,sha256=edMA8L-eJZLquDvHcSY4oFWI0C8yGgjqW1tmhhLMJ5U,2279
|
|
@@ -647,7 +647,7 @@ yt_dlp/extractor/palcomp3.py,sha256=wFqkBa1XEodaTw2OZqLqRQ8jQveL39R6sXCH_ibwyRo,
|
|
|
647
647
|
yt_dlp/extractor/panopto.py,sha256=RvBX5WEjCAl71v28-gRNSEWHv3aAArT4_kVVUne1LXk,25723
|
|
648
648
|
yt_dlp/extractor/parler.py,sha256=QtII2_JqjExBdkECl7RUZh5PE1uylOf7HJ4Vkmn9Yu0,3766
|
|
649
649
|
yt_dlp/extractor/parlview.py,sha256=ItmCcfd6_045TwkrkqnEAYlf18-LcfpdpFBZIqdneBI,2611
|
|
650
|
-
yt_dlp/extractor/parti.py,sha256=
|
|
650
|
+
yt_dlp/extractor/parti.py,sha256=9jRk7Lrop7J4ctihewo4Sl4zvQEbvcN5Ff8M8ZmFdpg,3721
|
|
651
651
|
yt_dlp/extractor/patreon.py,sha256=SMpRPkkHzsP2otsV0rOyGQmFVfGb_hlNk3xiFff_qN8,28420
|
|
652
652
|
yt_dlp/extractor/pbs.py,sha256=PRoWH-vjD0B4d-txY8qt4AijhzVowQ6IbTDu6iePGxU,40932
|
|
653
653
|
yt_dlp/extractor/pearvideo.py,sha256=nrJKNV91R2gMfd65vH-i4LmrVCrVCarXxnXOHFW1RDs,2494
|
|
@@ -1066,7 +1066,7 @@ yt_dlp/extractor/youtube/_mistakes.py,sha256=bLrxlAYqdR0mTuCLoMmJHh15BHuhxfHXeQF
|
|
|
1066
1066
|
yt_dlp/extractor/youtube/_notifications.py,sha256=1nhavzW0e2QWFAWHkfbTU4sSXNp4vUbGFygYNSgbxBE,4585
|
|
1067
1067
|
yt_dlp/extractor/youtube/_redirect.py,sha256=WWWnGEkfSGBXpZFi_bWY4XcHZ8PDeK7UsndDaTYYhQg,9005
|
|
1068
1068
|
yt_dlp/extractor/youtube/_search.py,sha256=E9raTPGjUD6mm81WBpT4AsaxyiTBHdNssgzeHwVeNOE,6552
|
|
1069
|
-
yt_dlp/extractor/youtube/_tab.py,sha256=
|
|
1069
|
+
yt_dlp/extractor/youtube/_tab.py,sha256=MiQGWZdHENOz8Ac-OAuAgqMWJ6gC-PZKJWPDG80QY6E,115490
|
|
1070
1070
|
yt_dlp/extractor/youtube/_video.py,sha256=m7x1HtlqCmuQFaExYrKazSPzDxPSnYeVdEIRevrHbps,209795
|
|
1071
1071
|
yt_dlp/extractor/youtube/jsc/__init__.py,sha256=HaVFP8ikrLaE-ClAh39-S28WCF4S2KTRaSu7QvA28E8,289
|
|
1072
1072
|
yt_dlp/extractor/youtube/jsc/_director.py,sha256=92pB-KVSs6plmE5R8gpjkZL9aeoWNR0XTnGOBXMy9go,13167
|
|
@@ -1123,13 +1123,13 @@ 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-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.
|
|
1135
|
-
yt_dlp-2025.12.
|
|
1126
|
+
yt_dlp-2025.12.15.233113.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
|
|
1127
|
+
yt_dlp-2025.12.15.233113.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=wmrt5znP_AlvkrvysScvz2QYyjT2kZ1y2RRmx0Qvy_U,164886
|
|
1128
|
+
yt_dlp-2025.12.15.233113.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=v2WQvWvk4qKpp2-97z2ULb5Msj5dgzU6nMkS-FwSmbM,51488
|
|
1129
|
+
yt_dlp-2025.12.15.233113.dev0.data/data/share/man/man1/yt-dlp.1,sha256=9Ll8XNcxtpdL-FmhXtOrDy3OuGmOCatIKNDzmwxzqxo,159421
|
|
1130
|
+
yt_dlp-2025.12.15.233113.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
|
|
1131
|
+
yt_dlp-2025.12.15.233113.dev0.dist-info/METADATA,sha256=lmxwuH8uaKPF_oK_dPyE3eclFej2ftR5hLWVlz4iJGo,180282
|
|
1132
|
+
yt_dlp-2025.12.15.233113.dev0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
1133
|
+
yt_dlp-2025.12.15.233113.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
|
|
1134
|
+
yt_dlp-2025.12.15.233113.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
|
|
1135
|
+
yt_dlp-2025.12.15.233113.dev0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.dev0.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{yt_dlp-2025.12.12.233036.dev0.dist-info → yt_dlp-2025.12.15.233113.dev0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|