Skip to content

Commit a79b741

Browse files
[CI] auto update yt_dlp to upstream commit 1c6068af997cfc0e28061fc00f4d6091e1de57da
1 parent 68920dd commit a79b741

60 files changed

Lines changed: 4768 additions & 5478 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

lib/yt_dlp/extractor/adobetv.py

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -84,22 +84,23 @@ def _parse_video_data(self, video_data):
8484

8585

8686
class AdobeTVEmbedIE(AdobeTVBaseIE):
87+
_WORKING = False
8788
IE_NAME = 'adobetv:embed'
8889
_VALID_URL = r'https?://tv\.adobe\.com/embed/\d+/(?P<id>\d+)'
89-
_TEST = {
90+
_TESTS = [{
9091
'url': 'https://tv.adobe.com/embed/22/4153',
9192
'md5': 'c8c0461bf04d54574fc2b4d07ac6783a',
9293
'info_dict': {
9394
'id': '4153',
9495
'ext': 'flv',
9596
'title': 'Creating Graphics Optimized for BlackBerry',
9697
'description': 'md5:eac6e8dced38bdaae51cd94447927459',
97-
'thumbnail': r're:https?://.*\.jpg$',
98+
'thumbnail': r're:https?://.+\.jpg',
9899
'upload_date': '20091109',
99100
'duration': 377,
100101
'view_count': int,
101102
},
102-
}
103+
}]
103104

104105
def _real_extract(self, url):
105106
video_id = self._match_id(url)
@@ -110,23 +111,23 @@ def _real_extract(self, url):
110111

111112

112113
class AdobeTVIE(AdobeTVBaseIE):
114+
_WORKING = False
113115
IE_NAME = 'adobetv'
114116
_VALID_URL = r'https?://tv\.adobe\.com/(?:(?P<language>fr|de|es|jp)/)?watch/(?P<show_urlname>[^/]+)/(?P<id>[^/]+)'
115-
116-
_TEST = {
117+
_TESTS = [{
117118
'url': 'http://tv.adobe.com/watch/the-complete-picture-with-julieanne-kost/quick-tip-how-to-draw-a-circle-around-an-object-in-photoshop/',
118119
'md5': '9bc5727bcdd55251f35ad311ca74fa1e',
119120
'info_dict': {
120121
'id': '10981',
121122
'ext': 'mp4',
122123
'title': 'Quick Tip - How to Draw a Circle Around an Object in Photoshop',
123124
'description': 'md5:99ec318dc909d7ba2a1f2b038f7d2311',
124-
'thumbnail': r're:https?://.*\.jpg$',
125+
'thumbnail': r're:https?://.+\.jpg',
125126
'upload_date': '20110914',
126127
'duration': 60,
127128
'view_count': int,
128129
},
129-
}
130+
}]
130131

131132
def _real_extract(self, url):
132133
language, show_urlname, urlname = self._match_valid_url(url).groups()
@@ -159,18 +160,18 @@ def _extract_playlist_entries(self, display_id, query):
159160

160161

161162
class AdobeTVShowIE(AdobeTVPlaylistBaseIE):
163+
_WORKING = False
162164
IE_NAME = 'adobetv:show'
163165
_VALID_URL = r'https?://tv\.adobe\.com/(?:(?P<language>fr|de|es|jp)/)?show/(?P<id>[^/]+)'
164-
165-
_TEST = {
166+
_TESTS = [{
166167
'url': 'http://tv.adobe.com/show/the-complete-picture-with-julieanne-kost',
167168
'info_dict': {
168169
'id': '36',
169170
'title': 'The Complete Picture with Julieanne Kost',
170171
'description': 'md5:fa50867102dcd1aa0ddf2ab039311b27',
171172
},
172173
'playlist_mincount': 136,
173-
}
174+
}]
174175
_RESOURCE = 'episode'
175176
_process_data = AdobeTVBaseIE._parse_video_data
176177

@@ -195,16 +196,16 @@ def _real_extract(self, url):
195196

196197

197198
class AdobeTVChannelIE(AdobeTVPlaylistBaseIE):
199+
_WORKING = False
198200
IE_NAME = 'adobetv:channel'
199201
_VALID_URL = r'https?://tv\.adobe\.com/(?:(?P<language>fr|de|es|jp)/)?channel/(?P<id>[^/]+)(?:/(?P<category_urlname>[^/]+))?'
200-
201-
_TEST = {
202+
_TESTS = [{
202203
'url': 'http://tv.adobe.com/channel/development',
203204
'info_dict': {
204205
'id': 'development',
205206
},
206207
'playlist_mincount': 96,
207-
}
208+
}]
208209
_RESOURCE = 'show'
209210

210211
def _process_data(self, show_data):
@@ -231,8 +232,7 @@ class AdobeTVVideoIE(AdobeTVBaseIE):
231232
IE_NAME = 'adobetv:video'
232233
_VALID_URL = r'https?://video\.tv\.adobe\.com/v/(?P<id>\d+)'
233234
_EMBED_REGEX = [r'<iframe[^>]+src=[\'"](?P<url>(?:https?:)?//video\.tv\.adobe\.com/v/\d+[^"]+)[\'"]']
234-
235-
_TEST = {
235+
_TESTS = [{
236236
# From https://helpx.adobe.com/acrobat/how-to/new-experience-acrobat-dc.html?set=acrobat--get-started--essential-beginners
237237
'url': 'https://video.tv.adobe.com/v/2456/',
238238
'md5': '43662b577c018ad707a63766462b1e87',
@@ -242,8 +242,20 @@ class AdobeTVVideoIE(AdobeTVBaseIE):
242242
'title': 'New experience with Acrobat DC',
243243
'description': 'New experience with Acrobat DC',
244244
'duration': 248.667,
245+
'thumbnail': r're:https?://images-tv\.adobe\.com/.+\.jpg',
246+
},
247+
}]
248+
_WEBPAGE_TESTS = [{
249+
# FIXME: Invalid extension
250+
'url': 'https://www.adobe.com/learn/acrobat/web/customize-toolbar',
251+
'info_dict': {
252+
'id': '3463980',
253+
'ext': 'm3u8',
254+
'title': 'Adobe Acrobat: How to Customize the Toolbar for Faster PDF Editing',
255+
'description': 'md5:94368ab95ae24f9c1bee0cb346e03dc3',
256+
'duration': 97.557,
245257
},
246-
}
258+
}]
247259

248260
def _real_extract(self, url):
249261
video_id = self._match_id(url)

lib/yt_dlp/extractor/apa.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,11 @@ class APAIE(InfoExtractor):
1111
_EMBED_REGEX = [r'<iframe[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//[^/]+\.apa\.at/embed/[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}.*?)\1']
1212
_TESTS = [{
1313
'url': 'http://uvp.apa.at/embed/293f6d17-692a-44e3-9fd5-7b178f3a1029',
14-
'md5': '2b12292faeb0a7d930c778c7a5b4759b',
1514
'info_dict': {
1615
'id': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
1716
'ext': 'mp4',
1817
'title': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
19-
'thumbnail': r're:^https?://.*\.jpg$',
18+
'thumbnail': r're:https?://kf-vn\.sf\.apa\.at/vn/.+\.jpg',
2019
},
2120
}, {
2221
'url': 'https://uvp-apapublisher.sf.apa.at/embed/2f94e9e6-d945-4db2-9548-f9a41ebf7b78',
@@ -28,6 +27,15 @@ class APAIE(InfoExtractor):
2827
'url': 'http://uvp-kleinezeitung.sf.apa.at/embed/f1c44979-dba2-4ebf-b021-e4cf2cac3c81',
2928
'only_matching': True,
3029
}]
30+
_WEBPAGE_TESTS = [{
31+
'url': 'https://www.vol.at/blue-man-group/5593454',
32+
'info_dict': {
33+
'id': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
34+
'ext': 'mp4',
35+
'title': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
36+
'thumbnail': r're:https?://kf-vn\.sf\.apa\.at/vn/.+\.jpg',
37+
},
38+
}]
3139

3240
def _real_extract(self, url):
3341
mobj = self._match_valid_url(url)

lib/yt_dlp/extractor/arcpublishing.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,20 @@ class ArcPublishingIE(InfoExtractor):
6262
'url': 'arcpublishing:tronc:460f2931-8130-4719-8ea1-ffcb2d7cb685',
6363
'only_matching': True,
6464
}]
65+
_WEBPAGE_TESTS = [{
66+
'url': 'https://www.uppermichiganssource.com/2025/07/18/scattered-showers-storms-bring-heavy-rain-potential/',
67+
'info_dict': {
68+
'id': '508116f7-e999-48db-b7c2-60a04842679b',
69+
'ext': 'mp4',
70+
'title': 'Scattered showers & storms bring heavy rain potential',
71+
'description': 'Scattered showers & storms bring heavy rain potential',
72+
'duration': 2016,
73+
'thumbnail': r're:https?://.+\.jpg',
74+
'timestamp': 1752881287,
75+
'upload_date': '20250718',
76+
},
77+
'expected_warnings': ['Ignoring subtitle tracks found in the HLS manifest'],
78+
}]
6579
_POWA_DEFAULTS = [
6680
(['cmg', 'prisa'], '%s-config-prod.api.cdn.arcpublishing.com/video'),
6781
([

lib/yt_dlp/extractor/arte.py

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ class ArteTVIE(ArteTVBaseIE):
5151
'id': '109067-000-A',
5252
'ext': 'mp4',
5353
'description': 'md5:d2ca367b8ecee028dddaa8bd1aebc739',
54+
'thumbnail': r're:https?://api-cdn\.arte\.tv/img/v2/image/.+',
5455
'timestamp': 1713927600,
55-
'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/3rR6PLzfbigSkkeHtkCZNF/940x530',
5656
'duration': 7599,
5757
'title': 'La loi de Téhéran',
5858
'upload_date': '20240424',
@@ -62,16 +62,17 @@ class ArteTVIE(ArteTVBaseIE):
6262
'fr-forced': 'mincount:1',
6363
},
6464
},
65+
'skip': 'Invalid URL',
6566
}, {
6667
'note': 'age-restricted',
6768
'url': 'https://www.arte.tv/de/videos/006785-000-A/the-element-of-crime/',
6869
'info_dict': {
6970
'id': '006785-000-A',
7071
'description': 'md5:c2f94fdfefc8a280e4dab68ab96ab0ba',
7172
'title': 'The Element of Crime',
73+
'thumbnail': r're:https?://api-cdn\.arte\.tv/img/v2/image/.+',
7274
'timestamp': 1696111200,
7375
'duration': 5849,
74-
'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/q82dTTfyuCXupPsGxXsd7B/940x530',
7576
'upload_date': '20230930',
7677
'ext': 'mp4',
7778
},
@@ -252,6 +253,30 @@ class ArteTVEmbedIE(InfoExtractor):
252253
'url': 'https://www.arte.tv/player/v3/index.php?json_url=https://api.arte.tv/api/player/v2/config/de/100605-013-A',
253254
'only_matching': True,
254255
}]
256+
_WEBPAGE_TESTS = [{
257+
# FIXME: Embed detection
258+
'url': 'https://timesofmalta.com/article/watch-sunken-warships-north-sea-arte.1108358',
259+
'info_dict': {
260+
'id': '110288-000-A',
261+
'ext': 'mp4',
262+
'title': 'Danger on the Seabed',
263+
'alt_title': 'Sunken Warships in the North Sea',
264+
'description': 'md5:a2c84cbad37d280bddb6484087120add',
265+
'duration': 3148,
266+
'thumbnail': r're:https?://api-cdn\.arte\.tv/img/v2/image/.+',
267+
'timestamp': 1741686820,
268+
'upload_date': '20250311',
269+
},
270+
'params': {'skip_download': 'm3u8'},
271+
}, {
272+
# FIXME: Embed detection
273+
'url': 'https://www.eurockeennes.fr/en-live/',
274+
'info_dict': {
275+
'id': 'en-live',
276+
'title': 'Les Eurocks en live | Les Eurockéennes de Belfort – 3-4-5-6 juillet 2025 sur la Presqu&#039;Île du Malsaucy',
277+
},
278+
'playlist_count': 4,
279+
}]
255280

256281
def _real_extract(self, url):
257282
qs = parse_qs(url)
@@ -304,9 +329,9 @@ class ArteTVCategoryIE(ArteTVBaseIE):
304329
'info_dict': {
305330
'id': 'politics-and-society',
306331
'title': 'Politics and society',
307-
'description': 'Investigative documentary series, geopolitical analysis, and international commentary',
332+
'description': 'Watch documentaries and reportage about politics, society and current affairs.',
308333
},
309-
'playlist_mincount': 13,
334+
'playlist_mincount': 3,
310335
}]
311336

312337
@classmethod

lib/yt_dlp/extractor/bandcamp.py

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,12 @@ class BandcampIE(InfoExtractor):
3636
'duration': 9.8485,
3737
'uploader': 'youtube-dl "\'/\\ä↭',
3838
'upload_date': '20121129',
39+
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
3940
'timestamp': 1354224127,
4041
'track': 'youtube-dl "\'/\\ä↭ - youtube-dl test song "\'/\\ä↭',
41-
'album_artist': 'youtube-dl "\'/\\ä↭',
4242
'track_id': '1812978515',
43-
'artist': 'youtube-dl "\'/\\ä↭',
4443
'uploader_url': 'https://youtube-dl.bandcamp.com',
4544
'uploader_id': 'youtube-dl',
46-
'thumbnail': 'https://f4.bcbits.com/img/a3216802731_5.jpg',
4745
'artists': ['youtube-dl "\'/\\ä↭'],
4846
'album_artists': ['youtube-dl "\'/\\ä↭'],
4947
},
@@ -54,10 +52,9 @@ class BandcampIE(InfoExtractor):
5452
'info_dict': {
5553
'id': '2650410135',
5654
'ext': 'm4a',
57-
'acodec': r're:[fa]lac',
5855
'title': 'Ben Prunty - Lanius (Battle)',
59-
'thumbnail': r're:^https?://.*\.jpg$',
6056
'uploader': 'Ben Prunty',
57+
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
6158
'timestamp': 1396508491,
6259
'upload_date': '20140403',
6360
'release_timestamp': 1396483200,
@@ -66,8 +63,6 @@ class BandcampIE(InfoExtractor):
6663
'track': 'Lanius (Battle)',
6764
'track_number': 1,
6865
'track_id': '2650410135',
69-
'artist': 'Ben Prunty',
70-
'album_artist': 'Ben Prunty',
7166
'album': 'FTL: Advanced Edition Soundtrack',
7267
'uploader_url': 'https://benprunty.bandcamp.com',
7368
'uploader_id': 'benprunty',
@@ -83,8 +78,8 @@ class BandcampIE(InfoExtractor):
8378
'id': '2584466013',
8479
'ext': 'mp3',
8580
'title': 'Mastodon - Hail to Fire',
86-
'thumbnail': r're:^https?://.*\.jpg$',
8781
'uploader': 'Mastodon',
82+
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
8883
'timestamp': 1322005399,
8984
'upload_date': '20111122',
9085
'release_timestamp': 1076112000,
@@ -93,8 +88,6 @@ class BandcampIE(InfoExtractor):
9388
'track': 'Hail to Fire',
9489
'track_number': 5,
9590
'track_id': '2584466013',
96-
'artist': 'Mastodon',
97-
'album_artist': 'Mastodon',
9891
'album': 'Call of the Mastodon',
9992
'uploader_url': 'https://relapsealumni.bandcamp.com',
10093
'uploader_id': 'relapsealumni',
@@ -110,8 +103,8 @@ class BandcampIE(InfoExtractor):
110103
'id': '1978174799',
111104
'ext': 'mp3',
112105
'title': 'submerse - submerse - Safehouse',
113-
'thumbnail': r're:^https?://.*\.jpg$',
114106
'uploader': 'submerse',
107+
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
115108
'timestamp': 1480779297,
116109
'upload_date': '20161203',
117110
'release_timestamp': 1481068800,
@@ -120,8 +113,6 @@ class BandcampIE(InfoExtractor):
120113
'track': 'submerse - Safehouse',
121114
'track_number': 3,
122115
'track_id': '1978174799',
123-
'artist': 'submerse',
124-
'album_artist': 'Diskotopia',
125116
'album': 'DSK F/W 2016-2017 Free Compilation',
126117
'uploader_url': 'https://diskotopia.bandcamp.com',
127118
'uploader_id': 'diskotopia',
@@ -130,6 +121,30 @@ class BandcampIE(InfoExtractor):
130121
'album_artists': ['Diskotopia'],
131122
},
132123
}]
124+
_WEBPAGE_TESTS = [{
125+
# FIXME: Embed detection
126+
'url': 'https://www.punknews.org/article/85809/stay-inside-super-sonic',
127+
'info_dict': {
128+
'id': '2475540375',
129+
'ext': 'mp3',
130+
'title': 'Stay Inside - Super Sonic',
131+
'album': 'Lunger',
132+
'album_artists': ['Stay Inside'],
133+
'artists': ['Stay Inside'],
134+
'duration': 166.157,
135+
'release_date': '20251003',
136+
'release_timestamp': 1759449600.0,
137+
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
138+
'timestamp': 1749473029.0,
139+
'track': 'Super Sonic',
140+
'track_id': '2475540375',
141+
'track_number': 3,
142+
'upload_date': '20250609',
143+
'uploader': 'Stay Inside',
144+
'uploader_id': 'stayinside',
145+
'uploader_url': 'https://stayinside.bandcamp.com',
146+
},
147+
}]
133148

134149
def _extract_data_attr(self, webpage, video_id, attr='tralbum', fatal=True):
135150
return self._parse_json(self._html_search_regex(
@@ -279,10 +294,10 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
279294
'id': '1353101989',
280295
'ext': 'mp3',
281296
'title': 'Blazo - Intro',
297+
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
282298
'timestamp': 1311756226,
283299
'upload_date': '20110727',
284300
'uploader': 'Blazo',
285-
'thumbnail': 'https://f4.bcbits.com/img/a1721150828_5.jpg',
286301
'album_artists': ['Blazo'],
287302
'uploader_url': 'https://blazo.bandcamp.com',
288303
'release_date': '20110727',
@@ -302,6 +317,7 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
302317
'id': '38097443',
303318
'ext': 'mp3',
304319
'title': 'Blazo - Kero One - Keep It Alive (Blazo remix)',
320+
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
305321
'timestamp': 1311757238,
306322
'upload_date': '20110727',
307323
'uploader': 'Blazo',
@@ -315,7 +331,6 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
315331
'uploader_id': 'blazo',
316332
'album_artists': ['Blazo'],
317333
'artists': ['Blazo'],
318-
'thumbnail': 'https://f4.bcbits.com/img/a1721150828_5.jpg',
319334
'release_timestamp': 1311724800.0,
320335
},
321336
},

0 commit comments

Comments
 (0)