mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-08-08 05:28:30 +00:00
[cleanup] Move embed tests to dedicated extractors (#13782)
Authored by: doe1080
This commit is contained in:
parent
71f30921a2
commit
1c6068af99
@ -84,9 +84,10 @@ def _parse_video_data(self, video_data):
|
||||
|
||||
|
||||
class AdobeTVEmbedIE(AdobeTVBaseIE):
|
||||
_WORKING = False
|
||||
IE_NAME = 'adobetv:embed'
|
||||
_VALID_URL = r'https?://tv\.adobe\.com/embed/\d+/(?P<id>\d+)'
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'https://tv.adobe.com/embed/22/4153',
|
||||
'md5': 'c8c0461bf04d54574fc2b4d07ac6783a',
|
||||
'info_dict': {
|
||||
@ -94,12 +95,12 @@ class AdobeTVEmbedIE(AdobeTVBaseIE):
|
||||
'ext': 'flv',
|
||||
'title': 'Creating Graphics Optimized for BlackBerry',
|
||||
'description': 'md5:eac6e8dced38bdaae51cd94447927459',
|
||||
'thumbnail': r're:https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20091109',
|
||||
'duration': 377,
|
||||
'view_count': int,
|
||||
},
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
@ -110,10 +111,10 @@ def _real_extract(self, url):
|
||||
|
||||
|
||||
class AdobeTVIE(AdobeTVBaseIE):
|
||||
_WORKING = False
|
||||
IE_NAME = 'adobetv'
|
||||
_VALID_URL = r'https?://tv\.adobe\.com/(?:(?P<language>fr|de|es|jp)/)?watch/(?P<show_urlname>[^/]+)/(?P<id>[^/]+)'
|
||||
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'http://tv.adobe.com/watch/the-complete-picture-with-julieanne-kost/quick-tip-how-to-draw-a-circle-around-an-object-in-photoshop/',
|
||||
'md5': '9bc5727bcdd55251f35ad311ca74fa1e',
|
||||
'info_dict': {
|
||||
@ -121,12 +122,12 @@ class AdobeTVIE(AdobeTVBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'Quick Tip - How to Draw a Circle Around an Object in Photoshop',
|
||||
'description': 'md5:99ec318dc909d7ba2a1f2b038f7d2311',
|
||||
'thumbnail': r're:https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20110914',
|
||||
'duration': 60,
|
||||
'view_count': int,
|
||||
},
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
language, show_urlname, urlname = self._match_valid_url(url).groups()
|
||||
@ -159,10 +160,10 @@ def _extract_playlist_entries(self, display_id, query):
|
||||
|
||||
|
||||
class AdobeTVShowIE(AdobeTVPlaylistBaseIE):
|
||||
_WORKING = False
|
||||
IE_NAME = 'adobetv:show'
|
||||
_VALID_URL = r'https?://tv\.adobe\.com/(?:(?P<language>fr|de|es|jp)/)?show/(?P<id>[^/]+)'
|
||||
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'http://tv.adobe.com/show/the-complete-picture-with-julieanne-kost',
|
||||
'info_dict': {
|
||||
'id': '36',
|
||||
@ -170,7 +171,7 @@ class AdobeTVShowIE(AdobeTVPlaylistBaseIE):
|
||||
'description': 'md5:fa50867102dcd1aa0ddf2ab039311b27',
|
||||
},
|
||||
'playlist_mincount': 136,
|
||||
}
|
||||
}]
|
||||
_RESOURCE = 'episode'
|
||||
_process_data = AdobeTVBaseIE._parse_video_data
|
||||
|
||||
@ -195,16 +196,16 @@ def _real_extract(self, url):
|
||||
|
||||
|
||||
class AdobeTVChannelIE(AdobeTVPlaylistBaseIE):
|
||||
_WORKING = False
|
||||
IE_NAME = 'adobetv:channel'
|
||||
_VALID_URL = r'https?://tv\.adobe\.com/(?:(?P<language>fr|de|es|jp)/)?channel/(?P<id>[^/]+)(?:/(?P<category_urlname>[^/]+))?'
|
||||
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'http://tv.adobe.com/channel/development',
|
||||
'info_dict': {
|
||||
'id': 'development',
|
||||
},
|
||||
'playlist_mincount': 96,
|
||||
}
|
||||
}]
|
||||
_RESOURCE = 'show'
|
||||
|
||||
def _process_data(self, show_data):
|
||||
@ -231,8 +232,7 @@ class AdobeTVVideoIE(AdobeTVBaseIE):
|
||||
IE_NAME = 'adobetv:video'
|
||||
_VALID_URL = r'https?://video\.tv\.adobe\.com/v/(?P<id>\d+)'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+src=[\'"](?P<url>(?:https?:)?//video\.tv\.adobe\.com/v/\d+[^"]+)[\'"]']
|
||||
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
# From https://helpx.adobe.com/acrobat/how-to/new-experience-acrobat-dc.html?set=acrobat--get-started--essential-beginners
|
||||
'url': 'https://video.tv.adobe.com/v/2456/',
|
||||
'md5': '43662b577c018ad707a63766462b1e87',
|
||||
@ -242,8 +242,20 @@ class AdobeTVVideoIE(AdobeTVBaseIE):
|
||||
'title': 'New experience with Acrobat DC',
|
||||
'description': 'New experience with Acrobat DC',
|
||||
'duration': 248.667,
|
||||
'thumbnail': r're:https?://images-tv\.adobe\.com/.+\.jpg',
|
||||
},
|
||||
}
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Invalid extension
|
||||
'url': 'https://www.adobe.com/learn/acrobat/web/customize-toolbar',
|
||||
'info_dict': {
|
||||
'id': '3463980',
|
||||
'ext': 'm3u8',
|
||||
'title': 'Adobe Acrobat: How to Customize the Toolbar for Faster PDF Editing',
|
||||
'description': 'md5:94368ab95ae24f9c1bee0cb346e03dc3',
|
||||
'duration': 97.557,
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -11,12 +11,11 @@ class APAIE(InfoExtractor):
|
||||
_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']
|
||||
_TESTS = [{
|
||||
'url': 'http://uvp.apa.at/embed/293f6d17-692a-44e3-9fd5-7b178f3a1029',
|
||||
'md5': '2b12292faeb0a7d930c778c7a5b4759b',
|
||||
'info_dict': {
|
||||
'id': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
|
||||
'ext': 'mp4',
|
||||
'title': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://kf-vn\.sf\.apa\.at/vn/.+\.jpg',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://uvp-apapublisher.sf.apa.at/embed/2f94e9e6-d945-4db2-9548-f9a41ebf7b78',
|
||||
@ -28,6 +27,15 @@ class APAIE(InfoExtractor):
|
||||
'url': 'http://uvp-kleinezeitung.sf.apa.at/embed/f1c44979-dba2-4ebf-b021-e4cf2cac3c81',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.vol.at/blue-man-group/5593454',
|
||||
'info_dict': {
|
||||
'id': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
|
||||
'ext': 'mp4',
|
||||
'title': '293f6d17-692a-44e3-9fd5-7b178f3a1029',
|
||||
'thumbnail': r're:https?://kf-vn\.sf\.apa\.at/vn/.+\.jpg',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
mobj = self._match_valid_url(url)
|
||||
|
@ -62,6 +62,20 @@ class ArcPublishingIE(InfoExtractor):
|
||||
'url': 'arcpublishing:tronc:460f2931-8130-4719-8ea1-ffcb2d7cb685',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.uppermichiganssource.com/2025/07/18/scattered-showers-storms-bring-heavy-rain-potential/',
|
||||
'info_dict': {
|
||||
'id': '508116f7-e999-48db-b7c2-60a04842679b',
|
||||
'ext': 'mp4',
|
||||
'title': 'Scattered showers & storms bring heavy rain potential',
|
||||
'description': 'Scattered showers & storms bring heavy rain potential',
|
||||
'duration': 2016,
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'timestamp': 1752881287,
|
||||
'upload_date': '20250718',
|
||||
},
|
||||
'expected_warnings': ['Ignoring subtitle tracks found in the HLS manifest'],
|
||||
}]
|
||||
_POWA_DEFAULTS = [
|
||||
(['cmg', 'prisa'], '%s-config-prod.api.cdn.arcpublishing.com/video'),
|
||||
([
|
||||
|
@ -51,8 +51,8 @@ class ArteTVIE(ArteTVBaseIE):
|
||||
'id': '109067-000-A',
|
||||
'ext': 'mp4',
|
||||
'description': 'md5:d2ca367b8ecee028dddaa8bd1aebc739',
|
||||
'thumbnail': r're:https?://api-cdn\.arte\.tv/img/v2/image/.+',
|
||||
'timestamp': 1713927600,
|
||||
'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/3rR6PLzfbigSkkeHtkCZNF/940x530',
|
||||
'duration': 7599,
|
||||
'title': 'La loi de Téhéran',
|
||||
'upload_date': '20240424',
|
||||
@ -62,6 +62,7 @@ class ArteTVIE(ArteTVBaseIE):
|
||||
'fr-forced': 'mincount:1',
|
||||
},
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'note': 'age-restricted',
|
||||
'url': 'https://www.arte.tv/de/videos/006785-000-A/the-element-of-crime/',
|
||||
@ -69,9 +70,9 @@ class ArteTVIE(ArteTVBaseIE):
|
||||
'id': '006785-000-A',
|
||||
'description': 'md5:c2f94fdfefc8a280e4dab68ab96ab0ba',
|
||||
'title': 'The Element of Crime',
|
||||
'thumbnail': r're:https?://api-cdn\.arte\.tv/img/v2/image/.+',
|
||||
'timestamp': 1696111200,
|
||||
'duration': 5849,
|
||||
'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/q82dTTfyuCXupPsGxXsd7B/940x530',
|
||||
'upload_date': '20230930',
|
||||
'ext': 'mp4',
|
||||
},
|
||||
@ -252,6 +253,30 @@ class ArteTVEmbedIE(InfoExtractor):
|
||||
'url': 'https://www.arte.tv/player/v3/index.php?json_url=https://api.arte.tv/api/player/v2/config/de/100605-013-A',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://timesofmalta.com/article/watch-sunken-warships-north-sea-arte.1108358',
|
||||
'info_dict': {
|
||||
'id': '110288-000-A',
|
||||
'ext': 'mp4',
|
||||
'title': 'Danger on the Seabed',
|
||||
'alt_title': 'Sunken Warships in the North Sea',
|
||||
'description': 'md5:a2c84cbad37d280bddb6484087120add',
|
||||
'duration': 3148,
|
||||
'thumbnail': r're:https?://api-cdn\.arte\.tv/img/v2/image/.+',
|
||||
'timestamp': 1741686820,
|
||||
'upload_date': '20250311',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://www.eurockeennes.fr/en-live/',
|
||||
'info_dict': {
|
||||
'id': 'en-live',
|
||||
'title': 'Les Eurocks en live | Les Eurockéennes de Belfort – 3-4-5-6 juillet 2025 sur la Presqu'Île du Malsaucy',
|
||||
},
|
||||
'playlist_count': 4,
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
qs = parse_qs(url)
|
||||
@ -304,9 +329,9 @@ class ArteTVCategoryIE(ArteTVBaseIE):
|
||||
'info_dict': {
|
||||
'id': 'politics-and-society',
|
||||
'title': 'Politics and society',
|
||||
'description': 'Investigative documentary series, geopolitical analysis, and international commentary',
|
||||
'description': 'Watch documentaries and reportage about politics, society and current affairs.',
|
||||
},
|
||||
'playlist_mincount': 13,
|
||||
'playlist_mincount': 3,
|
||||
}]
|
||||
|
||||
@classmethod
|
||||
|
@ -36,14 +36,12 @@ class BandcampIE(InfoExtractor):
|
||||
'duration': 9.8485,
|
||||
'uploader': 'youtube-dl "\'/\\ä↭',
|
||||
'upload_date': '20121129',
|
||||
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
|
||||
'timestamp': 1354224127,
|
||||
'track': 'youtube-dl "\'/\\ä↭ - youtube-dl test song "\'/\\ä↭',
|
||||
'album_artist': 'youtube-dl "\'/\\ä↭',
|
||||
'track_id': '1812978515',
|
||||
'artist': 'youtube-dl "\'/\\ä↭',
|
||||
'uploader_url': 'https://youtube-dl.bandcamp.com',
|
||||
'uploader_id': 'youtube-dl',
|
||||
'thumbnail': 'https://f4.bcbits.com/img/a3216802731_5.jpg',
|
||||
'artists': ['youtube-dl "\'/\\ä↭'],
|
||||
'album_artists': ['youtube-dl "\'/\\ä↭'],
|
||||
},
|
||||
@ -54,10 +52,9 @@ class BandcampIE(InfoExtractor):
|
||||
'info_dict': {
|
||||
'id': '2650410135',
|
||||
'ext': 'm4a',
|
||||
'acodec': r're:[fa]lac',
|
||||
'title': 'Ben Prunty - Lanius (Battle)',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'uploader': 'Ben Prunty',
|
||||
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
|
||||
'timestamp': 1396508491,
|
||||
'upload_date': '20140403',
|
||||
'release_timestamp': 1396483200,
|
||||
@ -66,8 +63,6 @@ class BandcampIE(InfoExtractor):
|
||||
'track': 'Lanius (Battle)',
|
||||
'track_number': 1,
|
||||
'track_id': '2650410135',
|
||||
'artist': 'Ben Prunty',
|
||||
'album_artist': 'Ben Prunty',
|
||||
'album': 'FTL: Advanced Edition Soundtrack',
|
||||
'uploader_url': 'https://benprunty.bandcamp.com',
|
||||
'uploader_id': 'benprunty',
|
||||
@ -83,8 +78,8 @@ class BandcampIE(InfoExtractor):
|
||||
'id': '2584466013',
|
||||
'ext': 'mp3',
|
||||
'title': 'Mastodon - Hail to Fire',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'uploader': 'Mastodon',
|
||||
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
|
||||
'timestamp': 1322005399,
|
||||
'upload_date': '20111122',
|
||||
'release_timestamp': 1076112000,
|
||||
@ -93,8 +88,6 @@ class BandcampIE(InfoExtractor):
|
||||
'track': 'Hail to Fire',
|
||||
'track_number': 5,
|
||||
'track_id': '2584466013',
|
||||
'artist': 'Mastodon',
|
||||
'album_artist': 'Mastodon',
|
||||
'album': 'Call of the Mastodon',
|
||||
'uploader_url': 'https://relapsealumni.bandcamp.com',
|
||||
'uploader_id': 'relapsealumni',
|
||||
@ -110,8 +103,8 @@ class BandcampIE(InfoExtractor):
|
||||
'id': '1978174799',
|
||||
'ext': 'mp3',
|
||||
'title': 'submerse - submerse - Safehouse',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'uploader': 'submerse',
|
||||
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
|
||||
'timestamp': 1480779297,
|
||||
'upload_date': '20161203',
|
||||
'release_timestamp': 1481068800,
|
||||
@ -120,8 +113,6 @@ class BandcampIE(InfoExtractor):
|
||||
'track': 'submerse - Safehouse',
|
||||
'track_number': 3,
|
||||
'track_id': '1978174799',
|
||||
'artist': 'submerse',
|
||||
'album_artist': 'Diskotopia',
|
||||
'album': 'DSK F/W 2016-2017 Free Compilation',
|
||||
'uploader_url': 'https://diskotopia.bandcamp.com',
|
||||
'uploader_id': 'diskotopia',
|
||||
@ -130,6 +121,30 @@ class BandcampIE(InfoExtractor):
|
||||
'album_artists': ['Diskotopia'],
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://www.punknews.org/article/85809/stay-inside-super-sonic',
|
||||
'info_dict': {
|
||||
'id': '2475540375',
|
||||
'ext': 'mp3',
|
||||
'title': 'Stay Inside - Super Sonic',
|
||||
'album': 'Lunger',
|
||||
'album_artists': ['Stay Inside'],
|
||||
'artists': ['Stay Inside'],
|
||||
'duration': 166.157,
|
||||
'release_date': '20251003',
|
||||
'release_timestamp': 1759449600.0,
|
||||
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
|
||||
'timestamp': 1749473029.0,
|
||||
'track': 'Super Sonic',
|
||||
'track_id': '2475540375',
|
||||
'track_number': 3,
|
||||
'upload_date': '20250609',
|
||||
'uploader': 'Stay Inside',
|
||||
'uploader_id': 'stayinside',
|
||||
'uploader_url': 'https://stayinside.bandcamp.com',
|
||||
},
|
||||
}]
|
||||
|
||||
def _extract_data_attr(self, webpage, video_id, attr='tralbum', fatal=True):
|
||||
return self._parse_json(self._html_search_regex(
|
||||
@ -279,10 +294,10 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
|
||||
'id': '1353101989',
|
||||
'ext': 'mp3',
|
||||
'title': 'Blazo - Intro',
|
||||
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
|
||||
'timestamp': 1311756226,
|
||||
'upload_date': '20110727',
|
||||
'uploader': 'Blazo',
|
||||
'thumbnail': 'https://f4.bcbits.com/img/a1721150828_5.jpg',
|
||||
'album_artists': ['Blazo'],
|
||||
'uploader_url': 'https://blazo.bandcamp.com',
|
||||
'release_date': '20110727',
|
||||
@ -302,6 +317,7 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
|
||||
'id': '38097443',
|
||||
'ext': 'mp3',
|
||||
'title': 'Blazo - Kero One - Keep It Alive (Blazo remix)',
|
||||
'thumbnail': r're:https?://f4\.bcbits\.com/img/.+\.jpg',
|
||||
'timestamp': 1311757238,
|
||||
'upload_date': '20110727',
|
||||
'uploader': 'Blazo',
|
||||
@ -315,7 +331,6 @@ class BandcampAlbumIE(BandcampIE): # XXX: Do not subclass from concrete IE
|
||||
'uploader_id': 'blazo',
|
||||
'album_artists': ['Blazo'],
|
||||
'artists': ['Blazo'],
|
||||
'thumbnail': 'https://f4.bcbits.com/img/a1721150828_5.jpg',
|
||||
'release_timestamp': 1311724800.0,
|
||||
},
|
||||
},
|
||||
|
@ -19,8 +19,19 @@ class BloggerIE(InfoExtractor):
|
||||
'id': 'BLOGGER-video-3c740e3a49197e16-796',
|
||||
'title': 'BLOGGER-video-3c740e3a49197e16-796',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'duration': 76.068,
|
||||
'thumbnail': r're:https?://i9\.ytimg\.com/vi_blogger/.+',
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://blog.tomeuvizoso.net/2019/01/a-panfrost-milestone.html',
|
||||
'md5': 'f1bc19b6ea1b0fd1d81e84ca9ec467ac',
|
||||
'info_dict': {
|
||||
'id': 'BLOGGER-video-3c740e3a49197e16-12203',
|
||||
'ext': 'mp4',
|
||||
'title': 'BLOGGER-video-3c740e3a49197e16-12203',
|
||||
'duration': 76.068,
|
||||
'thumbnail': r're:https?://i9\.ytimg\.com/vi_blogger/.+',
|
||||
},
|
||||
}]
|
||||
|
||||
|
@ -19,18 +19,16 @@ class CloudflareStreamIE(InfoExtractor):
|
||||
'id': '31c9291ab41fac05471db4e73aa11717',
|
||||
'ext': 'mp4',
|
||||
'title': '31c9291ab41fac05471db4e73aa11717',
|
||||
'thumbnail': 'https://cloudflarestream.com/31c9291ab41fac05471db4e73aa11717/thumbnails/thumbnail.jpg',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
'thumbnail': r're:https?://cloudflarestream\.com/.+\.jpg',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://watch.cloudflarestream.com/embed/sdk-iframe-integration.fla9.latest.js?video=0e8e040aec776862e1d632a699edf59e',
|
||||
'info_dict': {
|
||||
'id': '0e8e040aec776862e1d632a699edf59e',
|
||||
'ext': 'mp4',
|
||||
'title': '0e8e040aec776862e1d632a699edf59e',
|
||||
'thumbnail': 'https://cloudflarestream.com/0e8e040aec776862e1d632a699edf59e/thumbnails/thumbnail.jpg',
|
||||
'thumbnail': r're:https?://cloudflarestream\.com/.+\.jpg',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://watch.cloudflarestream.com/9df17203414fd1db3e3ed74abbe936c1',
|
||||
@ -54,11 +52,21 @@ class CloudflareStreamIE(InfoExtractor):
|
||||
'id': 'eaef9dea5159cf968be84241b5cedfe7',
|
||||
'ext': 'mp4',
|
||||
'title': 'eaef9dea5159cf968be84241b5cedfe7',
|
||||
'thumbnail': 'https://cloudflarestream.com/eaef9dea5159cf968be84241b5cedfe7/thumbnails/thumbnail.jpg',
|
||||
'thumbnail': r're:https?://cloudflarestream\.com/.+\.jpg',
|
||||
},
|
||||
'params': {
|
||||
'extractor_args': {'generic': {'impersonate': ['chrome']}},
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
}, {
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://www.cloudflare.com/developer-platform/products/cloudflare-stream/',
|
||||
'info_dict': {
|
||||
'id': 'e7bd2dd67e0f8860b4ae81e33a966049',
|
||||
'ext': 'mp4',
|
||||
'title': 'e7bd2dd67e0f8860b4ae81e33a966049',
|
||||
'thumbnail': r're:https?://cloudflarestream\.com/.+\.jpg',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
|
@ -96,6 +96,24 @@ class CondeNastIE(InfoExtractor):
|
||||
'upload_date': '20150916',
|
||||
'timestamp': 1442434920,
|
||||
},
|
||||
}, {
|
||||
# FIXME: Subtitles
|
||||
'url': 'https://www.vanityfair.com/video/watch/vf-quiz-show-squid-game-s3',
|
||||
'info_dict': {
|
||||
'id': '6862f999c1afbc5ff06b4803',
|
||||
'ext': 'mp4',
|
||||
'title': '\'Squid Game\' Cast Tests How Well They Know Each Other',
|
||||
'categories': ['Arts & Culture', 'Hollywood'],
|
||||
'description': 'md5:7a9c668a1fc87648e77da13842ec1534',
|
||||
'duration': 955,
|
||||
'season': 'Season 1',
|
||||
'series': 'Quizzing Each Other',
|
||||
'tags': 'count:2',
|
||||
'thumbnail': r're:https?://dwgyu36up6iuz\.cloudfront\.net/.+\.jpg',
|
||||
'timestamp': 1751341306,
|
||||
'upload_date': '20250701',
|
||||
'uploader': 'vanityfair',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://player.cnevids.com/inline/video/59138decb57ac36b83000005.js?target=js-cne-player',
|
||||
'only_matching': True,
|
||||
|
@ -8,7 +8,6 @@
|
||||
class CrooksAndLiarsIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://embed\.crooksandliars\.com/(?:embed|v)/(?P<id>[A-Za-z0-9]+)'
|
||||
_EMBED_REGEX = [r'<(?:iframe[^>]+src|param[^>]+value)=(["\'])(?P<url>(?:https?:)?//embed\.crooksandliars\.com/(?:embed|v)/.+?)\1']
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://embed.crooksandliars.com/embed/8RUoRhRi',
|
||||
'info_dict': {
|
||||
@ -16,7 +15,7 @@ class CrooksAndLiarsIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Fox & Friends Says Protecting Atheists From Discrimination Is Anti-Christian!',
|
||||
'description': 'md5:e1a46ad1650e3a5ec7196d432799127f',
|
||||
'thumbnail': r're:^https?://.*\.jpg',
|
||||
'thumbnail': r're:https?://crooksandliars\.com/files/.+',
|
||||
'timestamp': 1428207000,
|
||||
'upload_date': '20150405',
|
||||
'uploader': 'Heather',
|
||||
@ -26,6 +25,20 @@ class CrooksAndLiarsIE(InfoExtractor):
|
||||
'url': 'http://embed.crooksandliars.com/v/MTE3MjUtMzQ2MzA',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://crooksandliars.com/2015/04/fox-friends-says-protecting-atheists',
|
||||
'info_dict': {
|
||||
'id': '8RUoRhRi',
|
||||
'ext': 'mp4',
|
||||
'title': 'Fox & Friends Says Protecting Atheists From Discrimination Is Anti-Christian!',
|
||||
'description': 'md5:e1a46ad1650e3a5ec7196d432799127f',
|
||||
'duration': 236,
|
||||
'thumbnail': r're:https?://crooksandliars\.com/files/.+',
|
||||
'timestamp': 1428207000,
|
||||
'upload_date': '20150405',
|
||||
'uploader': 'Heather',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -19,11 +19,22 @@ class DailyMailIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'The Mountain appears in sparkling water ad for \'Heavy Bubbles\'',
|
||||
'description': 'md5:a93d74b6da172dd5dc4d973e0b766a84',
|
||||
'thumbnail': r're:https?://i\.dailymail\.co\.uk/.+\.jpg',
|
||||
},
|
||||
}, {
|
||||
'url': 'http://www.dailymail.co.uk/embed/video/1295863.html',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.daily-news.gr/lifestyle/%ce%b7-%cf%84%cf%81%ce%b1%ce%b3%ce%bf%cf%85%ce%b4%ce%af%cf%83%cf%84%cf%81%ce%b9%ce%b1-jessie-j-%ce%bc%ce%bf%ce%b9%cf%81%ce%ac%cf%83%cf%84%ce%b7%ce%ba%ce%b5-%cf%83%cf%85%ce%b3%ce%ba%ce%bb%ce%bf%ce%bd/',
|
||||
'info_dict': {
|
||||
'id': '3463585',
|
||||
'ext': 'mp4',
|
||||
'title': 'Jessie J reveals she has undergone surgery as she shares clips',
|
||||
'description': 'md5:9fa9a25feca5b656b0b4a39c922fad1e',
|
||||
'thumbnail': r're:https?://i\.dailymail\.co\.uk/.+\.jpg',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -119,13 +119,14 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
_EMBED_REGEX = [rf'(?ix)<(?:(?:embed|iframe)[^>]+?src=|input[^>]+id=[\'"]dmcloudUrlEmissionSelect[\'"][^>]+value=)["\'](?P<url>{_VALID_URL[5:]})']
|
||||
_TESTS = [{
|
||||
'url': 'http://www.dailymotion.com/video/x5kesuj_office-christmas-party-review-jason-bateman-olivia-munn-t-j-miller_news',
|
||||
'md5': '074b95bdee76b9e3654137aee9c79dfe',
|
||||
'info_dict': {
|
||||
'id': 'x5kesuj',
|
||||
'ext': 'mp4',
|
||||
'title': 'Office Christmas Party Review – Jason Bateman, Olivia Munn, T.J. Miller',
|
||||
'description': 'Office Christmas Party Review - Jason Bateman, Olivia Munn, T.J. Miller',
|
||||
'duration': 187,
|
||||
'tags': 'count:5',
|
||||
'thumbnail': r're:https?://s[12]\.dmcdn\.net/v/.+',
|
||||
'timestamp': 1493651285,
|
||||
'upload_date': '20170501',
|
||||
'uploader': 'Deadline',
|
||||
@ -133,18 +134,17 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'age_limit': 0,
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'tags': ['hollywood', 'celeb', 'celebrity', 'movies', 'red carpet'],
|
||||
'thumbnail': r're:https://(?:s[12]\.)dmcdn\.net/v/K456B1cmt4ZcZ9KiM/x1080',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://geo.dailymotion.com/player.html?video=x89eyek&mute=true',
|
||||
'md5': 'e2f9717c6604773f963f069ca53a07f8',
|
||||
'info_dict': {
|
||||
'id': 'x89eyek',
|
||||
'ext': 'mp4',
|
||||
'title': "En quête d'esprit du 27/03/2022",
|
||||
'title': 'En quête d\'esprit du 27/03/2022',
|
||||
'description': 'md5:66542b9f4df2eb23f314fc097488e553',
|
||||
'duration': 2756,
|
||||
'tags': 'count:1',
|
||||
'thumbnail': r're:https?://s[12]\.dmcdn\.net/v/.+',
|
||||
'timestamp': 1648383669,
|
||||
'upload_date': '20220327',
|
||||
'uploader': 'CNEWS',
|
||||
@ -152,8 +152,6 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'age_limit': 0,
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'tags': ['en_quete_d_esprit'],
|
||||
'thumbnail': r're:https://(?:s[12]\.)dmcdn\.net/v/Tncwi1clTH6StrxMP/x1080',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.dailymotion.com/video/x2iuewm_steam-machine-models-pricing-listed-on-steam-store-ign-news_videogames',
|
||||
@ -163,8 +161,8 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Steam Machine Models, Pricing Listed on Steam Store - IGN News',
|
||||
'description': 'Several come bundled with the Steam Controller.',
|
||||
'thumbnail': r're:^https?:.*\.(?:jpg|png)$',
|
||||
'duration': 74,
|
||||
'thumbnail': r're:https?://s[12]\.dmcdn\.net/v/.+',
|
||||
'timestamp': 1425657362,
|
||||
'upload_date': '20150306',
|
||||
'uploader': 'IGN',
|
||||
@ -183,10 +181,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'uploader': 'Katy Perry',
|
||||
'upload_date': '20130905',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'VEVO is only available in some countries',
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# age-restricted video
|
||||
'url': 'http://www.dailymotion.com/video/xyh2zz_leanna-decker-cyber-girl-of-the-year-desires-nude-playboy-plus_redband',
|
||||
@ -259,9 +254,9 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'uploader_id': 'x2vtgmm',
|
||||
'age_limit': 0,
|
||||
'tags': [],
|
||||
'thumbnail': r're:https?://s[12]\.dmcdn\.net/v/.+',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'thumbnail': r're:https://\w+.dmcdn.net/v/WnEY61cmvMxt2Fi6d/x1080',
|
||||
},
|
||||
}, {
|
||||
# https://geo.dailymotion.com/player/xf7zn.html?playlist=x7wdsj
|
||||
@ -276,18 +271,18 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'info_dict': {
|
||||
'id': 'x8u4owg',
|
||||
'ext': 'mp4',
|
||||
'description': 'À bord du « véloto », l’alternative à la voiture pour la campagne',
|
||||
'like_count': int,
|
||||
'uploader': 'Le Parisien',
|
||||
'thumbnail': 'https://www.leparisien.fr/resizer/ho_GwveeYftNkLwg_cEta--5Bv4=/1200x675/cloudfront-eu-central-1.images.arcpublishing.com/leparisien/BFXJNEBN75EUNHGYJLORUC3TX4.jpg',
|
||||
'upload_date': '20240309',
|
||||
'view_count': int,
|
||||
'tags': 'count:7',
|
||||
'thumbnail': r're:https?://www\.leparisien\.fr/.+\.jpg',
|
||||
'timestamp': 1709997866,
|
||||
'age_limit': 0,
|
||||
'uploader_id': 'x32f7b',
|
||||
'title': 'VIDÉO. Le «\xa0véloto\xa0», la voiture à pédales qui aimerait se faire une place sur les routes',
|
||||
'duration': 428.0,
|
||||
'description': 'À bord du « véloto », l’alternative à la voiture pour la campagne',
|
||||
'tags': ['biclou', 'vélo', 'véloto', 'campagne', 'voiture', 'environnement', 'véhicules intermédiaires'],
|
||||
},
|
||||
}, {
|
||||
# https://geo.dailymotion.com/player/xry80.html?video=x8vu47w
|
||||
@ -297,9 +292,9 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'like_count': int,
|
||||
'uploader': 'Metatube',
|
||||
'thumbnail': r're:https://\w+.dmcdn.net/v/W1G_S1coGSFTfkTeR/x1080',
|
||||
'upload_date': '20240326',
|
||||
'view_count': int,
|
||||
'thumbnail': r're:https?://s[12]\.dmcdn\.net/v/.+',
|
||||
'timestamp': 1711496732,
|
||||
'age_limit': 0,
|
||||
'uploader_id': 'x2xpy74',
|
||||
@ -308,6 +303,7 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'description': 'Que lindura',
|
||||
'tags': [],
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# //geo.dailymotion.com/player/xysxq.html?video=k2Y4Mjp7krAF9iCuINM
|
||||
'url': 'https://lcp.fr/programmes/avant-la-catastrophe-la-naissance-de-la-dictature-nazie-1933-1936-346819',
|
||||
@ -322,11 +318,30 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
||||
'like_count': int,
|
||||
'age_limit': 0,
|
||||
'duration': 3220,
|
||||
'thumbnail': 'https://s1.dmcdn.net/v/Xvumk1djJBUZfjj2a/x1080',
|
||||
'tags': [],
|
||||
'thumbnail': r're:https?://s[12]\.dmcdn\.net/v/.+',
|
||||
'timestamp': 1739919947,
|
||||
'upload_date': '20250218',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://forum.ionicframework.com/t/ionic-2-jw-player-dailymotion-player/83248',
|
||||
'info_dict': {
|
||||
'id': 'xwr14q',
|
||||
'ext': 'mp4',
|
||||
'title': 'Macklemore & Ryan Lewis - Thrift Shop (feat. Wanz)',
|
||||
'age_limit': 0,
|
||||
'description': 'md5:47fbe168b5a6ddc4a205e20dd6c841b2',
|
||||
'duration': 234,
|
||||
'like_count': int,
|
||||
'tags': 'count:5',
|
||||
'thumbnail': r're:https?://s[12]\.dmcdn\.net/v/.+',
|
||||
'timestamp': 1358177670,
|
||||
'upload_date': '20130114',
|
||||
'uploader': 'Macklemore Official',
|
||||
'uploader_id': 'x19qlwr',
|
||||
'view_count': int,
|
||||
},
|
||||
}]
|
||||
_GEO_BYPASS = False
|
||||
_COMMON_MEDIA_FIELDS = '''description
|
||||
@ -540,7 +555,7 @@ class DailymotionSearchIE(DailymotionPlaylistBaseIE):
|
||||
'id': 'king of turtles',
|
||||
'title': 'king of turtles',
|
||||
},
|
||||
'playlist_mincount': 90,
|
||||
'playlist_mincount': 0,
|
||||
}]
|
||||
_SEARCH_QUERY = 'query SEARCH_QUERY( $query: String! $page: Int $limit: Int ) { search { videos( query: $query first: $limit page: $page ) { edges { node { xid } } } } } '
|
||||
|
||||
@ -584,7 +599,7 @@ class DailymotionUserIE(DailymotionPlaylistBaseIE):
|
||||
'info_dict': {
|
||||
'id': 'nqtv',
|
||||
},
|
||||
'playlist_mincount': 152,
|
||||
'playlist_mincount': 148,
|
||||
}, {
|
||||
'url': 'http://www.dailymotion.com/user/UnderProject',
|
||||
'info_dict': {
|
||||
|
@ -12,13 +12,13 @@ class DBTVIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Skulle teste ut fornøyelsespark, men kollegaen var bare opptatt av bikinikroppen',
|
||||
'description': 'md5:49cc8370e7d66e8a2ef15c3b4631fd3f',
|
||||
'thumbnail': r're:https?://.*\.jpg',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20160916',
|
||||
'duration': 69,
|
||||
'uploader_id': 'UCk5pvsyZJoYJBd7_oFPTlRQ',
|
||||
'uploader': 'Dagbladet',
|
||||
},
|
||||
'add_ie': ['Youtube'],
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://www.dagbladet.no/video/embed/xlGmyIeN9Jo/?autoplay=false',
|
||||
'only_matching': True,
|
||||
@ -26,6 +26,20 @@ class DBTVIE(InfoExtractor):
|
||||
'url': 'https://www.dagbladet.no/video/truer-iran-bor-passe-dere/PalfB2Cw',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://www.dagbladet.no/nyheter/rekordstort-russisk-angrep/83325693',
|
||||
'info_dict': {
|
||||
'id': '1HW7fYry',
|
||||
'ext': 'mp4',
|
||||
'title': 'Putin taler - så skjer dette',
|
||||
'description': 'md5:3e8bacee33de861a9663d9a3fcc54e5e',
|
||||
'display_id': 'putin-taler-sa-skjer-dette',
|
||||
'thumbnail': r're:https?://cdn\.jwplayer\.com/v2/media/.+',
|
||||
'timestamp': 1751043600,
|
||||
'upload_date': '20250627',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
display_id, video_id = self._match_valid_url(url).groups()
|
||||
|
@ -64,14 +64,12 @@ class ERTFlixCodenameIE(ERTFlixBaseIE):
|
||||
_VALID_URL = r'ertflix:(?P<id>[\w-]+)'
|
||||
_TESTS = [{
|
||||
'url': 'ertflix:monogramma-praxitelis-tzanoylinos',
|
||||
'md5': '5b9c2cd171f09126167e4082fc1dd0ef',
|
||||
'info_dict': {
|
||||
'id': 'monogramma-praxitelis-tzanoylinos',
|
||||
'ext': 'mp4',
|
||||
'title': 'md5:ef0b439902963d56c43ac83c3f41dd0e',
|
||||
'title': 'monogramma-praxitelis-tzanoylinos',
|
||||
},
|
||||
},
|
||||
]
|
||||
}]
|
||||
|
||||
def _extract_formats_and_subs(self, video_id):
|
||||
media_info = self._call_api(video_id, codename=video_id)
|
||||
@ -131,13 +129,14 @@ class ERTFlixIE(ERTFlixBaseIE):
|
||||
'duration': 3166,
|
||||
'age_limit': 8,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://www.ertflix.gr/series/ser.3448-monogramma',
|
||||
'info_dict': {
|
||||
'id': 'ser.3448',
|
||||
'age_limit': 8,
|
||||
'description': 'Η εκπομπή σαράντα ετών που σημάδεψε τον πολιτισμό μας.',
|
||||
'title': 'Μονόγραμμα',
|
||||
'title': 'Monogramma',
|
||||
'description': 'md5:e30cc640e6463da87f210a8ed10b2439',
|
||||
},
|
||||
'playlist_mincount': 64,
|
||||
}, {
|
||||
@ -145,28 +144,28 @@ class ERTFlixIE(ERTFlixBaseIE):
|
||||
'info_dict': {
|
||||
'id': 'ser.3448',
|
||||
'age_limit': 8,
|
||||
'description': 'Η εκπομπή σαράντα ετών που σημάδεψε τον πολιτισμό μας.',
|
||||
'title': 'Μονόγραμμα',
|
||||
'title': 'Monogramma',
|
||||
'description': 'md5:e30cc640e6463da87f210a8ed10b2439',
|
||||
},
|
||||
'playlist_count': 22,
|
||||
'playlist_mincount': 66,
|
||||
}, {
|
||||
'url': 'https://www.ertflix.gr/series/ser.3448-monogramma?season=1&season=2021%20-%202022',
|
||||
'info_dict': {
|
||||
'id': 'ser.3448',
|
||||
'age_limit': 8,
|
||||
'description': 'Η εκπομπή σαράντα ετών που σημάδεψε τον πολιτισμό μας.',
|
||||
'title': 'Μονόγραμμα',
|
||||
'title': 'Monogramma',
|
||||
'description': 'md5:e30cc640e6463da87f210a8ed10b2439',
|
||||
},
|
||||
'playlist_mincount': 36,
|
||||
'playlist_mincount': 25,
|
||||
}, {
|
||||
'url': 'https://www.ertflix.gr/series/ser.164991-to-diktuo-1?season=1-9',
|
||||
'info_dict': {
|
||||
'id': 'ser.164991',
|
||||
'age_limit': 8,
|
||||
'description': 'Η πρώτη ελληνική εκπομπή με θεματολογία αποκλειστικά γύρω από το ίντερνετ.',
|
||||
'title': 'Το δίκτυο',
|
||||
'title': 'The Network',
|
||||
'description': 'The first Greek show featuring topics exclusively around the internet.',
|
||||
},
|
||||
'playlist_mincount': 9,
|
||||
'playlist_mincount': 0,
|
||||
}, {
|
||||
'url': 'https://www.ertflix.gr/en/vod/vod.127652-ta-kalytera-mas-chronia-ep1-mia-volta-sto-feggari',
|
||||
'only_matching': True,
|
||||
@ -282,6 +281,16 @@ class ERTWebtvEmbedIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'thumbnail': 'https://program.ert.gr/photos/2022/1/to_diktio_ep09_i_istoria_tou_diadiktiou_stin_Ellada_1021x576.jpg',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.ertnews.gr/video/manolis-goyalles-o-anthropos-piso-apo-ti-diadiktyaki-vasilopita/',
|
||||
'info_dict': {
|
||||
'id': '2022/tv/news-themata-ianouarios/20220114-apotis6-gouales-pita.mp4',
|
||||
'ext': 'mp4',
|
||||
'title': 'VOD - 2022/tv/news-themata-ianouarios/20220114-apotis6-gouales-pita.mp4',
|
||||
'thumbnail': r're:https?://www\.ert\.gr/themata/photos/.+\.jpg',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
|
@ -81,13 +81,14 @@ class FacebookIE(InfoExtractor):
|
||||
'description': 'md5:34675bda53336b1d16400265c2bb9b3b',
|
||||
'uploader': 'RADIO KICKS FM',
|
||||
'upload_date': '20230818',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1692346159,
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'uploader_id': '100063551323670',
|
||||
'duration': 3133.583,
|
||||
'view_count': int,
|
||||
'concurrent_view_count': 0,
|
||||
},
|
||||
'expected_warnings': ['Cannot parse data'],
|
||||
}, {
|
||||
'url': 'https://www.facebook.com/video.php?v=637842556329505&fref=nf',
|
||||
'md5': '6a40d33c0eccbb1af76cf0485a052659',
|
||||
@ -106,17 +107,18 @@ class FacebookIE(InfoExtractor):
|
||||
'info_dict': {
|
||||
'id': '274175099429670',
|
||||
'ext': 'mp4',
|
||||
'title': 'Asif',
|
||||
'title': '119 reactions · 1.4K shares | Asif Nawab Butt on Reels',
|
||||
'description': '',
|
||||
'uploader': 'Asif Nawab Butt',
|
||||
'upload_date': '20140506',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1399398998,
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'uploader_id': 'pfbid05AzrFTXgY37tqwaSgbFTTEpCLBjjEJHkigogwGiRPtKEpAsJYJpzE94H1RxYXWEtl',
|
||||
'uploader_id': 'pfbid028xue38TBXRyNbiqBSV2LFs3QK3yopvKjupbqFoL6U9SKbx4p2SMdJjQSBvnjsHGWl',
|
||||
'duration': 131.03,
|
||||
'concurrent_view_count': int,
|
||||
'view_count': int,
|
||||
},
|
||||
'expected_warnings': ['Cannot parse data'],
|
||||
}, {
|
||||
'note': 'Video with DASH manifest',
|
||||
'url': 'https://www.facebook.com/video.php?v=957955867617029',
|
||||
@ -158,7 +160,7 @@ class FacebookIE(InfoExtractor):
|
||||
'id': '10153664894881749',
|
||||
'ext': 'mp4',
|
||||
'title': 'Average time to confirm recent Supreme Court nominees: 67 days Longest it\'s t...',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1456259628,
|
||||
'upload_date': '20160223',
|
||||
'uploader': 'Barack Obama',
|
||||
@ -168,7 +170,7 @@ class FacebookIE(InfoExtractor):
|
||||
# have 1080P, but only up to 720p in swf params
|
||||
# data.video.story.attachments[].media
|
||||
'url': 'https://www.facebook.com/cnn/videos/10155529876156509/',
|
||||
'md5': '1659aa21fb3dd1585874f668e81a72c8',
|
||||
'md5': '70b82ebf5f0e9b91b2a49d3db3563611',
|
||||
'info_dict': {
|
||||
'id': '10155529876156509',
|
||||
'ext': 'mp4',
|
||||
@ -177,7 +179,7 @@ class FacebookIE(InfoExtractor):
|
||||
'timestamp': 1477818095,
|
||||
'upload_date': '20161030',
|
||||
'uploader': 'CNN',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'view_count': int,
|
||||
'uploader_id': '100059479812265',
|
||||
'concurrent_view_count': int,
|
||||
@ -198,13 +200,11 @@ class FacebookIE(InfoExtractor):
|
||||
'uploader': 'Yaroslav Korpan',
|
||||
'uploader_id': 'pfbid06AScABAWcW91qpiuGrLt99Ef9tvwHoXP6t8KeFYEqkSfreMtfa9nTveh8b2ZEVSWl',
|
||||
'concurrent_view_count': int,
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'view_count': int,
|
||||
'duration': 11736.446,
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# FIXME: Cannot parse data error
|
||||
'url': 'https://www.facebook.com/LaGuiaDelVaron/posts/1072691702860471',
|
||||
@ -215,7 +215,7 @@ class FacebookIE(InfoExtractor):
|
||||
'timestamp': 1477305000,
|
||||
'upload_date': '20161024',
|
||||
'uploader': 'La Guía Del Varón',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
},
|
||||
'skip': 'Requires logging in',
|
||||
}, {
|
||||
@ -244,9 +244,10 @@ class FacebookIE(InfoExtractor):
|
||||
'upload_date': '20171124',
|
||||
'uploader': 'Vickie Gentry',
|
||||
'uploader_id': 'pfbid0FkkycT95ySNNyfCw4Cho6u5G7WbbZEcxT496Hq8rtx1K3LcTCATpR3wnyYhmyGC5l',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'duration': 148.224,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# data.node.comet_sections.content.story.attachments[].styles.attachment.media
|
||||
'url': 'https://www.facebook.com/attn/posts/pfbid0j1Czf2gGDVqeQ8KiMLFm3pWN8GxsQmeRrVhimWDzMuKQoR8r4b1knNsejELmUgyhl',
|
||||
@ -260,7 +261,7 @@ class FacebookIE(InfoExtractor):
|
||||
'duration': 132.675,
|
||||
'uploader_id': '100064451419378',
|
||||
'view_count': int,
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1701975646,
|
||||
},
|
||||
}, {
|
||||
@ -271,9 +272,9 @@ class FacebookIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Lela Evans',
|
||||
'description': 'Today Makkovik\'s own Pilot Mandy Smith made her inaugural landing on the airstrip in her hometown. What a proud moment as we all cheered and...',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'uploader': 'Lela Evans',
|
||||
'uploader_id': 'pfbid0swT2y7t6TAsZVBvcyeYPdhTMefGaS26mzUwML3vd1ma6ndGZKxsyS4Ssu3jitZLXl',
|
||||
'uploader_id': 'pfbid02wjMpknobSMnyynK3TNKN4Ww1StcpAKXgowqTyge3bz7LwHZMQ68uiXzzbu7xeryBl',
|
||||
'upload_date': '20231228',
|
||||
'timestamp': 1703804085,
|
||||
'duration': 394.347,
|
||||
@ -326,28 +327,27 @@ class FacebookIE(InfoExtractor):
|
||||
'uploader_id': '100066514874195',
|
||||
'duration': 4524.001,
|
||||
'view_count': int,
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'concurrent_view_count': int,
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'params': {'skip_download': True},
|
||||
}, {
|
||||
# data.node.comet_sections.content.story.attachments[].style_type_renderer.attachment.all_subattachments.nodes[].media
|
||||
'url': 'https://www.facebook.com/100033620354545/videos/106560053808006/',
|
||||
'info_dict': {
|
||||
'id': '106560053808006',
|
||||
'ext': 'mp4',
|
||||
'title': 'Josef',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'title': 'Josef Novak on Reels',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'concurrent_view_count': int,
|
||||
'uploader_id': 'pfbid02gpfwRM2XvdEJfsERupwQiNmBiDArc38RMRYZnap372q6Vs7MtFTVy72mmFWpJBTKl',
|
||||
'uploader_id': 'pfbid0cjYJYXpePWqhZ9DgpB6gKXrN2q3obwducdKm4wT7K5nkhbfKg5cneocYbsdaji7fl',
|
||||
'timestamp': 1549275572,
|
||||
'duration': 3.283,
|
||||
'uploader': 'Josef Novak',
|
||||
'description': '',
|
||||
'upload_date': '20190204',
|
||||
},
|
||||
'expected_warnings': ['Cannot parse data'],
|
||||
}, {
|
||||
# data.video.story.attachments[].media
|
||||
'url': 'https://www.facebook.com/watch/?v=647537299265662',
|
||||
@ -406,7 +406,7 @@ class FacebookIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'ANALISI IN CAMPO OSCURO " Coaguli nel sangue dei vaccinati"',
|
||||
'description': 'Other event by Comitato Liberi Pensatori on Tuesday, October 18 2022',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'uploader': 'Comitato Liberi Pensatori',
|
||||
'uploader_id': '100065709540881',
|
||||
},
|
||||
@ -414,6 +414,56 @@ class FacebookIE(InfoExtractor):
|
||||
'url': 'https://www.facebook.com/groups/1513990329015294/posts/d41d8cd9/2013209885760000/?app=fbl',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# <iframe> embed
|
||||
'url': 'http://www.unique-almeria.com/mini-hollywood.html',
|
||||
'md5': 'cba5d8c5021e9340dcefe925255e2c3e',
|
||||
'info_dict': {
|
||||
'id': '1529066599879',
|
||||
'ext': 'mp4',
|
||||
'title': 'Facebook video #1529066599879',
|
||||
},
|
||||
'expected_warnings': ['unable to extract uploader'],
|
||||
}, {
|
||||
# FIXME: Embed detection
|
||||
# <iframe> embed, plugin video
|
||||
'url': 'https://www.newsmemory.com/eedition/e-publishing-solutions/2-in-one-app/',
|
||||
'md5': 'ae97d4a44f8cc9a8b1a4c03b9ed793af',
|
||||
'info_dict': {
|
||||
'id': '10155710648695814',
|
||||
'ext': 'mp4',
|
||||
'title': 'Download the all new and improved Trinidad Express App',
|
||||
'concurrent_view_count': int,
|
||||
'description': 'md5:4806195c99908e4189b45b1c23bd4f89',
|
||||
'duration': 69.408,
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1533919195,
|
||||
'upload_date': '20180810',
|
||||
'uploader': 'Trinidad Express Newspapers',
|
||||
'uploader_id': '100064446413648',
|
||||
'view_count': int,
|
||||
},
|
||||
'expected_warnings': ['Cannot parse data'],
|
||||
}, {
|
||||
# API embed
|
||||
'url': 'https://www.curs.md/ro',
|
||||
'md5': '090bae53b9bff2be993c896edc2ea205',
|
||||
'info_dict': {
|
||||
'id': '334484292523563',
|
||||
'ext': 'mp4',
|
||||
'title': 'md5:9abffe1c86cdd967ffa224e1ccc13b90',
|
||||
'concurrent_view_count': int,
|
||||
'description': 'md5:0ba98567a61c640f9fabf1882235b33d',
|
||||
'duration': 8789.891,
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1700603114,
|
||||
'upload_date': '20231121',
|
||||
'uploader': 'Istoria Moldovei',
|
||||
'uploader_id': '100063529778592',
|
||||
'view_count': int,
|
||||
},
|
||||
'params': {'extractor_args': {'generic': {'impersonate': ['chrome']}}},
|
||||
}]
|
||||
_SUPPORTED_PAGLETS_REGEX = r'(?:pagelet_group_mall|permalink_video_pagelet|hyperfeed_story_id_[0-9a-f]+)'
|
||||
_api_config = {
|
||||
'graphURI': '/api/graphql/',
|
||||
@ -898,20 +948,24 @@ def _real_extract(self, url):
|
||||
|
||||
class FacebookPluginsVideoIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:[\w-]+\.)?facebook\.com/plugins/video\.php\?.*?\bhref=(?P<id>https.+)'
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fgov.sg%2Fvideos%2F10154383743583686%2F&show_text=0&width=560',
|
||||
'md5': '5954e92cdfe51fe5782ae9bda7058a07',
|
||||
'md5': 'af83aeae1d595f377c6e47a450828155',
|
||||
'info_dict': {
|
||||
'id': '10154383743583686',
|
||||
'ext': 'mp4',
|
||||
# TODO: Fix title, uploader
|
||||
'title': 'What to do during the haze?',
|
||||
'uploader': 'Gov.sg',
|
||||
'upload_date': '20160826',
|
||||
'concurrent_view_count': int,
|
||||
'description': 'md5:81839c0979803a014b20798df255ed0b',
|
||||
'duration': 65.087,
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1472184808,
|
||||
'upload_date': '20160826',
|
||||
'uploader': 'gov.sg',
|
||||
'uploader_id': '100064718678925',
|
||||
'view_count': int,
|
||||
},
|
||||
'add_ie': [FacebookIE.ie_key()],
|
||||
'expected_warnings': ['Cannot parse data'],
|
||||
}, {
|
||||
'url': 'https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fvideo.php%3Fv%3D10204634152394104',
|
||||
'only_matching': True,
|
||||
@ -945,7 +999,7 @@ class FacebookRedirectURLIE(InfoExtractor):
|
||||
'tags': 'count:11',
|
||||
'duration': 3332,
|
||||
'live_status': 'not_live',
|
||||
'thumbnail': 'https://i.ytimg.com/vi/pO8h3EaFRdo/maxresdefault.jpg',
|
||||
'thumbnail': r're:https?://i\.ytimg\.com/vi/.+',
|
||||
'channel_url': 'https://www.youtube.com/channel/UCGBpxWJr9FNOcFYA5GkKrMg',
|
||||
'availability': 'public',
|
||||
'uploader_url': 'http://www.youtube.com/user/brtvofficial',
|
||||
@ -954,8 +1008,7 @@ class FacebookRedirectURLIE(InfoExtractor):
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
},
|
||||
'add_ie': ['Youtube'],
|
||||
'params': {'skip_download': 'Youtube'},
|
||||
'skip': 'Youtube video is now private',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
@ -968,22 +1021,20 @@ def _real_extract(self, url):
|
||||
class FacebookReelIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:[\w-]+\.)?facebook\.com/reel/(?P<id>\d+)'
|
||||
IE_NAME = 'facebook:reel'
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://www.facebook.com/reel/1195289147628387',
|
||||
'md5': 'a53256d10fc2105441fe0c4212ed8cea',
|
||||
'md5': 'aeb0153ecb2eaacdf2dc2bf88f593fef',
|
||||
'info_dict': {
|
||||
'id': '1195289147628387',
|
||||
'ext': 'mp4',
|
||||
'title': r're:9\.6K views · 355 reactions .+ Let the “Slapathon” commence!! .+ LL COOL J · Mama Said Knock You Out$',
|
||||
'description': r're:When your trying to help your partner .+ LL COOL J · Mama Said Knock You Out$',
|
||||
'uploader': 'Beast Camp Training',
|
||||
'title': '9.7K views · 352 reactions | When your trying to help your partner out with an arrest and #FAAFO games begin. Let the “Slapathon” commence!! 👊👋 | Beast Camp Training',
|
||||
'description': 'md5:5a767dc7e78718667b150a7facc4a34f',
|
||||
'uploader': '9.7K views · 352 reactions | When your trying to help your partner out with an arrest and #FAAFO games begin. Let the “Slapathon” commence!! 👊👋 | Beast Camp Training',
|
||||
'uploader_id': '100040874179269',
|
||||
'duration': 9.579,
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1637502609,
|
||||
'upload_date': '20211121',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
},
|
||||
@ -998,7 +1049,6 @@ def _real_extract(self, url):
|
||||
class FacebookAdsIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:[\w-]+\.)?facebook\.com/ads/library/?\?(?:[^#]+&)?id=(?P<id>\d+)'
|
||||
IE_NAME = 'facebook:ads'
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://www.facebook.com/ads/library/?id=899206155126718',
|
||||
'info_dict': {
|
||||
@ -1008,12 +1058,13 @@ class FacebookAdsIE(InfoExtractor):
|
||||
'description': 'md5:0822724069e3aca97cbed5dabbab282e',
|
||||
'uploader': 'Kandao',
|
||||
'uploader_id': '774114102743284',
|
||||
'uploader_url': r're:^https?://.*',
|
||||
'uploader_url': 'https://facebook.com/KandaoVR',
|
||||
'timestamp': 1702548330,
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'upload_date': '20231214',
|
||||
'like_count': int,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# key 'watermarked_video_sd_url' missing
|
||||
'url': 'https://www.facebook.com/ads/library/?id=501152689226254',
|
||||
@ -1024,9 +1075,9 @@ class FacebookAdsIE(InfoExtractor):
|
||||
'description': 'md5:02a446ace7ff8c3c37a2892922492490',
|
||||
'uploader': 'mat.nawrocki',
|
||||
'uploader_id': '148586968341456',
|
||||
'uploader_url': r're:^https?://.*',
|
||||
'uploader_url': 'https://www.instagram.com/_u/mat.nawrocki',
|
||||
'thumbnail': r're:https?://scontent\.fitm\d-1\.fna\.fbcdn\.net/.+',
|
||||
'timestamp': 1723452305,
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'upload_date': '20240812',
|
||||
'like_count': int,
|
||||
},
|
||||
@ -1037,12 +1088,13 @@ class FacebookAdsIE(InfoExtractor):
|
||||
'title': 'Jusqu\u2019\u00e0 -25% sur une s\u00e9lection de vins p\u00e9tillants italiens ',
|
||||
'uploader': 'Eataly Paris Marais',
|
||||
'uploader_id': '2086668958314152',
|
||||
'uploader_url': r're:^https?://.*',
|
||||
'uploader_url': 'https://facebook.com/EatalyParisMarais',
|
||||
'timestamp': 1703571529,
|
||||
'upload_date': '20231226',
|
||||
'like_count': int,
|
||||
},
|
||||
'playlist_count': 3,
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://es-la.facebook.com/ads/library/?id=901230958115569',
|
||||
'only_matching': True,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -112,16 +112,17 @@ class GlomexIE(GlomexBaseIE):
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://video.glomex.com/sport/v-cb24uwg77hgh-nach-2-0-sieg-guardiola-mit-mancity-vor-naechstem-titel',
|
||||
'md5': 'cec33a943c4240c9cb33abea8c26242e',
|
||||
'info_dict': {
|
||||
'id': 'v-cb24uwg77hgh',
|
||||
'ext': 'mp4',
|
||||
'title': 'md5:38a90cedcfadd72982c81acf13556e0c',
|
||||
'title': 'Nach 2:0-Sieg: Guardiola mit ManCity vor nächstem Titel',
|
||||
'description': 'md5:1ea6b6caff1443fcbbba159e432eedb8',
|
||||
'duration': 29600,
|
||||
'thumbnail': r're:https?://i[a-z0-9]thumbs\.glomex\.com/.+',
|
||||
'timestamp': 1619895017,
|
||||
'upload_date': '20210501',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
@ -140,16 +141,17 @@ class GlomexEmbedIE(GlomexBaseIE):
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://player.glomex.com/integration/1/iframe-player.html?integrationId=4059a013k56vb2yd&playlistId=v-cfa6lye0dkdd-sf',
|
||||
'md5': '68f259b98cc01918ac34180142fce287',
|
||||
'info_dict': {
|
||||
'id': 'v-cfa6lye0dkdd-sf',
|
||||
'ext': 'mp4',
|
||||
'title': 'Φώφη Γεννηματά: Ο επικήδειος λόγος του 17χρονου γιου της, Γιώργου',
|
||||
'thumbnail': r're:https?://i[a-z0-9]thumbs\.glomex\.com/.+',
|
||||
'timestamp': 1635337199,
|
||||
'duration': 133080,
|
||||
'upload_date': '20211027',
|
||||
'description': 'md5:e741185fc309310ff5d0c789b437be66',
|
||||
'title': 'md5:35647293513a6c92363817a0fb0a7961',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://player.glomex.com/integration/1/iframe-player.html?origin=fullpage&integrationId=19syy24xjn1oqlpc&playlistId=rl-vcb49w1fb592p&playlistIndex=0',
|
||||
'info_dict': {
|
||||
@ -157,12 +159,27 @@ class GlomexEmbedIE(GlomexBaseIE):
|
||||
},
|
||||
'playlist_count': 100,
|
||||
}, {
|
||||
# Geo-restricted
|
||||
'url': 'https://player.glomex.com/integration/1/iframe-player.html?playlistId=cl-bgqaata6aw8x&integrationId=19syy24xjn1oqlpc',
|
||||
'info_dict': {
|
||||
'id': 'cl-bgqaata6aw8x',
|
||||
},
|
||||
'playlist_mincount': 2,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.skai.gr/news/world/iatrikos-syllogos-tourkias-to-turkovac-aplo-dialyma-erntogan-eiste-apateones-kai-pseytes',
|
||||
'info_dict': {
|
||||
'id': 'v-ch2nkhcirwc9-sf',
|
||||
'ext': 'mp4',
|
||||
'title': 'Ιατρικός Σύλλογος Τουρκίας: Το Turkovac είναι ένα απλό διάλυμα –Ερντογάν: Είστε απατεώνες και ψεύτες',
|
||||
'description': 'md5:8b517a61d577efe7e36fde72fd535995',
|
||||
'duration': 460000,
|
||||
'thumbnail': r're:https?://i[a-z0-9]thumbs\.glomex\.com/.+',
|
||||
'timestamp': 1641885019,
|
||||
'upload_date': '20220111',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
@classmethod
|
||||
def build_player_url(cls, video_id, integration, origin_url=None):
|
||||
|
@ -11,7 +11,6 @@
|
||||
class IndavideoEmbedIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:(?:embed\.)?indavideo\.hu/player/video/|assets\.indavideo\.hu/swf/player\.swf\?.*\b(?:v(?:ID|id))=)(?P<id>[\da-f]+)'
|
||||
# Some example URLs covered by generic extractor:
|
||||
# https://indavideo.hu/video/Vicces_cica_1
|
||||
# https://index.indavideo.hu/video/Hod_Nemetorszagban
|
||||
# https://auto.indavideo.hu/video/Sajat_utanfutoban_a_kis_tacsko
|
||||
# https://film.indavideo.hu/video/f_farkaslesen
|
||||
@ -25,14 +24,14 @@ class IndavideoEmbedIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Cicatánc',
|
||||
'description': '',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'uploader': 'cukiajanlo',
|
||||
'uploader_id': '83729',
|
||||
'thumbnail': r're:https?://pics\.indavideo\.hu/videos/.+\.jpg',
|
||||
'timestamp': 1439193826,
|
||||
'upload_date': '20150810',
|
||||
'duration': 72,
|
||||
'age_limit': 0,
|
||||
'tags': ['tánc', 'cica', 'cuki', 'cukiajanlo', 'newsroom'],
|
||||
'tags': 'count:5',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://embed.indavideo.hu/player/video/1bdc3c6d80?autostart=1&hide=1',
|
||||
@ -45,14 +44,30 @@ class IndavideoEmbedIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Vicces cica',
|
||||
'description': 'Játszik a tablettel. :D',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://pics\.indavideo\.hu/videos/.+\.jpg',
|
||||
'uploader': 'Jet_Pack',
|
||||
'uploader_id': '491217',
|
||||
'timestamp': 1390821212,
|
||||
'upload_date': '20140127',
|
||||
'duration': 7,
|
||||
'age_limit': 0,
|
||||
'tags': ['cica', 'Jet_Pack'],
|
||||
'tags': 'count:2',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://palyazat.indavideo.hu/video/RUSH_1',
|
||||
'info_dict': {
|
||||
'id': '3808180',
|
||||
'ext': 'mp4',
|
||||
'title': 'RUSH',
|
||||
'age_limit': 0,
|
||||
'description': '',
|
||||
'duration': 650,
|
||||
'tags': 'count:2',
|
||||
'thumbnail': r're:https?://pics\.indavideo\.hu/videos/.+\.jpg',
|
||||
'timestamp': 1729136266,
|
||||
'upload_date': '20241017',
|
||||
'uploader': '7summerfilms',
|
||||
'uploader_id': '1628496',
|
||||
},
|
||||
}]
|
||||
|
||||
|
@ -22,18 +22,17 @@ class JojIE(InfoExtractor):
|
||||
'id': 'a388ec4c-6019-4a4a-9312-b1bee194e932',
|
||||
'ext': 'mp4',
|
||||
'title': 'NOVÉ BÝVANIE',
|
||||
'thumbnail': r're:^https?://.*?$',
|
||||
'duration': 3118,
|
||||
'thumbnail': r're:https?://img\.joj\.sk/.+',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://media.joj.sk/embed/CSM0Na0l0p1',
|
||||
'info_dict': {
|
||||
'id': 'CSM0Na0l0p1',
|
||||
'ext': 'mp4',
|
||||
'height': 576,
|
||||
'title': 'Extrémne rodiny 2 - POKRAČOVANIE (2012/04/09 21:30:00)',
|
||||
'duration': 3937,
|
||||
'thumbnail': r're:^https?://.*?$',
|
||||
'thumbnail': r're:https?://img\.joj\.sk/.+',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://media.joj.sk/embed/9i1cxv',
|
||||
@ -45,6 +44,15 @@ class JojIE(InfoExtractor):
|
||||
'url': 'joj:9i1cxv',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://www.noviny.sk/slovensko/238543-slovenskom-sa-prehnala-vlna-silnych-burok',
|
||||
'info_dict': {
|
||||
'id': '238543-slovenskom-sa-prehnala-vlna-silnych-burok',
|
||||
'title': 'Slovenskom sa prehnala vlna silných búrok',
|
||||
},
|
||||
'playlist_mincount': 5,
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -8,7 +8,6 @@ class JWPlatformIE(InfoExtractor):
|
||||
_VALID_URL = r'(?:https?://(?:content\.jwplatform|cdn\.jwplayer)\.com/(?:(?:feed|player|thumb|preview|manifest)s|jw6|v2/media)/|jwplatform:)(?P<id>[a-zA-Z0-9]{8})'
|
||||
_TESTS = [{
|
||||
'url': 'http://content.jwplatform.com/players/nPripu9l-ALJ3XQCI.js',
|
||||
'md5': '3aa16e4f6860e6e78b7df5829519aed3',
|
||||
'info_dict': {
|
||||
'id': 'nPripu9l',
|
||||
'ext': 'mp4',
|
||||
@ -17,13 +16,12 @@ class JWPlatformIE(InfoExtractor):
|
||||
'upload_date': '20081127',
|
||||
'timestamp': 1227796140,
|
||||
'duration': 32.0,
|
||||
'thumbnail': 'https://cdn.jwplayer.com/v2/media/nPripu9l/poster.jpg?width=720',
|
||||
'thumbnail': r're:https?://cdn\.jwplayer\.com/v2/media/.+',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://cdn.jwplayer.com/players/nPripu9l-ALJ3XQCI.js',
|
||||
'only_matching': True,
|
||||
}]
|
||||
|
||||
_WEBPAGE_TESTS = [{
|
||||
# JWPlatform iframe
|
||||
'url': 'https://www.covermagazine.co.uk/feature/2465255/business-protection-involved',
|
||||
@ -33,10 +31,11 @@ class JWPlatformIE(InfoExtractor):
|
||||
'upload_date': '20160719',
|
||||
'timestamp': 1468923808,
|
||||
'title': '2016_05_18 Cover L&G Business Protection V1 FINAL.mp4',
|
||||
'thumbnail': 'https://cdn.jwplayer.com/v2/media/AG26UQXM/poster.jpg?width=720',
|
||||
'thumbnail': r're:https?://cdn\.jwplayer\.com/v2/media/.+',
|
||||
'description': '',
|
||||
'duration': 294.0,
|
||||
},
|
||||
'skip': 'Site no longer embeds JWPlatform',
|
||||
}, {
|
||||
# Player url not surrounded by quotes
|
||||
'url': 'https://www.deutsche-kinemathek.de/en/online/streaming/school-trip',
|
||||
@ -45,12 +44,12 @@ class JWPlatformIE(InfoExtractor):
|
||||
'title': 'Klassenfahrt',
|
||||
'ext': 'mp4',
|
||||
'upload_date': '20230109',
|
||||
'thumbnail': 'https://cdn.jwplayer.com/v2/media/jUxh5uin/poster.jpg?width=720',
|
||||
'thumbnail': r're:https?://cdn\.jwplayer\.com/v2/media/.+',
|
||||
'timestamp': 1673270298,
|
||||
'description': '',
|
||||
'duration': 5193.0,
|
||||
},
|
||||
'params': {'allowed_extractors': ['generic', 'jwplatform']},
|
||||
'skip': 'Site no longer embeds JWPlatform',
|
||||
}, {
|
||||
# iframe src attribute includes backslash before URL string
|
||||
'url': 'https://www.elespectador.com/colombia/video-asi-se-evito-la-fuga-de-john-poulos-presunto-feminicida-de-valentina-trespalacios-explicacion',
|
||||
@ -59,11 +58,24 @@ class JWPlatformIE(InfoExtractor):
|
||||
'title': 'Así se evitó la fuga de John Poulos, presunto feminicida de Valentina Trespalacios',
|
||||
'ext': 'mp4',
|
||||
'upload_date': '20230127',
|
||||
'thumbnail': 'https://cdn.jwplayer.com/v2/media/QD3gsexj/poster.jpg?width=720',
|
||||
'thumbnail': r're:https?://cdn\.jwplayer\.com/v2/media/.+',
|
||||
'timestamp': 1674862986,
|
||||
'description': 'md5:128fd74591c4e1fc2da598c5cb6f5ce4',
|
||||
'duration': 263.0,
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.skimag.com/video/ski-people-1980',
|
||||
'info_dict': {
|
||||
'id': 'YTmgRiNU',
|
||||
'ext': 'mp4',
|
||||
'title': 'Ski People (1980)',
|
||||
'channel': 'snow',
|
||||
'description': 'md5:cf9c3d101452c91e141f292b19fe4843',
|
||||
'duration': 5688.0,
|
||||
'thumbnail': r're:https?://cdn\.jwplayer\.com/v2/media/.+',
|
||||
'timestamp': 1610407738,
|
||||
'upload_date': '20210111',
|
||||
},
|
||||
}]
|
||||
|
||||
@classmethod
|
||||
|
@ -41,149 +41,188 @@ class KalturaIE(InfoExtractor):
|
||||
2: 'ttml',
|
||||
3: 'vtt',
|
||||
}
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'kaltura:269692:1_1jc2y3e4',
|
||||
'md5': '3adcbdb3dcc02d647539e53f284ba171',
|
||||
'info_dict': {
|
||||
'id': '1_1jc2y3e4',
|
||||
'ext': 'mp4',
|
||||
'title': 'Straight from the Heart',
|
||||
'upload_date': '20131219',
|
||||
'uploader_id': 'mlundberg@wolfgangsvault.com',
|
||||
'description': 'The Allman Brothers Band, 12/16/1981',
|
||||
'thumbnail': 're:^https?://.*/thumbnail/.*',
|
||||
'timestamp': int,
|
||||
_TESTS = [{
|
||||
'url': 'kaltura:269692:1_1jc2y3e4',
|
||||
'md5': '3adcbdb3dcc02d647539e53f284ba171',
|
||||
'info_dict': {
|
||||
'id': '1_1jc2y3e4',
|
||||
'ext': 'mp4',
|
||||
'title': 'Straight from the Heart',
|
||||
'upload_date': '20131219',
|
||||
'uploader_id': 'mlundberg@wolfgangsvault.com',
|
||||
'description': 'The Allman Brothers Band, 12/16/1981',
|
||||
'thumbnail': r're:https?://.+/thumbnail/.+',
|
||||
'timestamp': int,
|
||||
},
|
||||
'skip': 'The access to this service is forbidden since the specified partner is blocked',
|
||||
}, {
|
||||
'url': 'http://www.kaltura.com/index.php/kwidget/cache_st/1300318621/wid/_269692/uiconf_id/3873291/entry_id/1_1jc2y3e4',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://cdnapisec.kaltura.com/index.php/kwidget/wid/_557781/uiconf_id/22845202/entry_id/1_plr1syf3',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://cdnapisec.kaltura.com/html5/html5lib/v2.30.2/mwEmbedFrame.php/p/1337/uiconf_id/20540612/entry_id/1_sf5ovm7u?wid=_243342',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# video with subtitles
|
||||
'url': 'kaltura:111032:1_cw786r8q',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# video with ttml subtitles (no fileExt)
|
||||
'url': 'kaltura:1926081:0_l5ye1133',
|
||||
'info_dict': {
|
||||
'id': '0_l5ye1133',
|
||||
'ext': 'mp4',
|
||||
'title': 'What Can You Do With Python?',
|
||||
'upload_date': '20160221',
|
||||
'uploader_id': 'stork',
|
||||
'thumbnail': r're:https?://.+/thumbnail/.+',
|
||||
'timestamp': int,
|
||||
'subtitles': {
|
||||
'en': [{
|
||||
'ext': 'ttml',
|
||||
}],
|
||||
},
|
||||
'skip': 'The access to this service is forbidden since the specified partner is blocked',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.kaltura.com/index.php/kwidget/cache_st/1300318621/wid/_269692/uiconf_id/3873291/entry_id/1_1jc2y3e4',
|
||||
'only_matching': True,
|
||||
'skip': 'Gone. Maybe https://www.safaribooksonline.com/library/tutorials/introduction-to-python-anon/3469/',
|
||||
'params': {'skip_download': True},
|
||||
}, {
|
||||
'url': 'https://www.kaltura.com/index.php/extwidget/preview/partner_id/1770401/uiconf_id/37307382/entry_id/0_58u8kme7/embed/iframe?&flashvars[streamerType]=auto',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://www.kaltura.com:443/index.php/extwidget/preview/partner_id/1770401/uiconf_id/37307382/entry_id/0_58u8kme7/embed/iframe?&flashvars[streamerType]=auto',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# unavailable source format
|
||||
'url': 'kaltura:513551:1_66x4rg7o',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# html5lib URL using kwidget player
|
||||
'url': 'https://cdnapisec.kaltura.com/html5/html5lib/v2.46/mwEmbedFrame.php/p/691292/uiconf_id/20499062/entry_id/0_c076mna6?wid=_691292&iframeembed=true&playerId=kaltura_player_1420508608&entry_id=0_c076mna6&flashvars%5BakamaiHD.loadingPolicy%5D=preInitialize&flashvars%5BakamaiHD.asyncInit%5D=true&flashvars%5BstreamerType%5D=hdnetwork',
|
||||
'info_dict': {
|
||||
'id': '0_c076mna6',
|
||||
'ext': 'mp4',
|
||||
'title': 'md5:4883e7acbcbf42583a2dddc97dee4855',
|
||||
'duration': 3608,
|
||||
'uploader_id': 'commons@swinburne.edu.au',
|
||||
'timestamp': 1408086874,
|
||||
'view_count': int,
|
||||
'upload_date': '20140815',
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
},
|
||||
{
|
||||
'url': 'https://cdnapisec.kaltura.com/index.php/kwidget/wid/_557781/uiconf_id/22845202/entry_id/1_plr1syf3',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# html5lib playlist URL using kwidget player
|
||||
'url': 'https://cdnapisec.kaltura.com/html5/html5lib/v2.89/mwEmbedFrame.php/p/2019031/uiconf_id/40436601?wid=1_4j3m32cv&iframeembed=true&playerId=kaltura_player_&flashvars[playlistAPI.kpl0Id]=1_jovey5nu&flashvars[ks]=&&flashvars[imageDefaultDuration]=30&flashvars[localizationCode]=en&flashvars[leadWithHTML5]=true&flashvars[forceMobileHTML5]=true&flashvars[nextPrevBtn.plugin]=true&flashvars[hotspots.plugin]=true&flashvars[sideBarContainer.plugin]=true&flashvars[sideBarContainer.position]=left&flashvars[sideBarContainer.clickToClose]=true&flashvars[chapters.plugin]=true&flashvars[chapters.layout]=vertical&flashvars[chapters.thumbnailRotator]=false&flashvars[streamSelector.plugin]=true&flashvars[EmbedPlayer.SpinnerTarget]=videoHolder&flashvars[dualScreen.plugin]=true&flashvars[playlistAPI.playlistUrl]=https://canvasgatechtest.kaf.kaltura.com/playlist/details/{playlistAPI.kpl0Id}/categoryid/126428551',
|
||||
'info_dict': {
|
||||
'id': '1_jovey5nu',
|
||||
'title': '00-00 Introduction',
|
||||
},
|
||||
{
|
||||
'url': 'https://cdnapisec.kaltura.com/html5/html5lib/v2.30.2/mwEmbedFrame.php/p/1337/uiconf_id/20540612/entry_id/1_sf5ovm7u?wid=_243342',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
# video with subtitles
|
||||
'url': 'kaltura:111032:1_cw786r8q',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
# video with ttml subtitles (no fileExt)
|
||||
'url': 'kaltura:1926081:0_l5ye1133',
|
||||
'info_dict': {
|
||||
'id': '0_l5ye1133',
|
||||
'ext': 'mp4',
|
||||
'title': 'What Can You Do With Python?',
|
||||
'upload_date': '20160221',
|
||||
'uploader_id': 'stork',
|
||||
'thumbnail': 're:^https?://.*/thumbnail/.*',
|
||||
'timestamp': int,
|
||||
'subtitles': {
|
||||
'en': [{
|
||||
'ext': 'ttml',
|
||||
}],
|
||||
'playlist': [
|
||||
{
|
||||
'info_dict': {
|
||||
'id': '1_b1y5hlvx',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Introduction',
|
||||
'duration': 91,
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154447,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
}, {
|
||||
'info_dict': {
|
||||
'id': '1_jfb7mdpn',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Three parts to the course',
|
||||
'duration': 63,
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154489,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
}, {
|
||||
'info_dict': {
|
||||
'id': '1_8xflxdp7',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Textbooks',
|
||||
'duration': 37,
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154512,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
}, {
|
||||
'info_dict': {
|
||||
'id': '1_3hqew8kn',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Prerequisites',
|
||||
'duration': 49,
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154536,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
},
|
||||
'skip': 'Gone. Maybe https://www.safaribooksonline.com/library/tutorials/introduction-to-python-anon/3469/',
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
],
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.cornell.edu/VIDEO/nima-arkani-hamed-standard-models-of-particle-physics',
|
||||
'info_dict': {
|
||||
'id': '1_sgtvehim',
|
||||
'ext': 'mp4',
|
||||
'title': 'Our "Standard Models" of particle physics and cosmology',
|
||||
'duration': 5420,
|
||||
'thumbnail': r're:https?://cdnsecakmi\.kaltura\.com/.+',
|
||||
'timestamp': 1321158993,
|
||||
'upload_date': '20111113',
|
||||
'uploader_id': 'kps1',
|
||||
'view_count': int,
|
||||
},
|
||||
{
|
||||
'url': 'https://www.kaltura.com/index.php/extwidget/preview/partner_id/1770401/uiconf_id/37307382/entry_id/0_58u8kme7/embed/iframe?&flashvars[streamerType]=auto',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://www.oreilly.com/ideas/my-cloud-makes-pretty-pictures',
|
||||
'info_dict': {
|
||||
'id': '0_utuok90b',
|
||||
'ext': 'mp4',
|
||||
'title': '06_matthew_brender_raj_dutt',
|
||||
'duration': 331,
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
'timestamp': 1466638791,
|
||||
'upload_date': '20160622',
|
||||
'uploader_id': '',
|
||||
'view_count': int,
|
||||
},
|
||||
{
|
||||
'url': 'https://www.kaltura.com:443/index.php/extwidget/preview/partner_id/1770401/uiconf_id/37307382/entry_id/0_58u8kme7/embed/iframe?&flashvars[streamerType]=auto',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://fod.infobase.com/p_ViewPlaylist.aspx?AssignmentID=NUN8ZY',
|
||||
'info_dict': {
|
||||
'id': '0_izeg5utt',
|
||||
'ext': 'mp4',
|
||||
'title': '35871',
|
||||
'duration': 3403,
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
'timestamp': 1355743100,
|
||||
'upload_date': '20121217',
|
||||
'uploader_id': 'cplapp@learn360.com',
|
||||
'view_count': int,
|
||||
},
|
||||
{
|
||||
# unavailable source format
|
||||
'url': 'kaltura:513551:1_66x4rg7o',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://www.cns.nyu.edu/~eero/math-tools17/Videos/lecture-05sep2017.html',
|
||||
'info_dict': {
|
||||
'id': '1_9gzouybz',
|
||||
'ext': 'mp4',
|
||||
'title': 'lecture-05sep2017',
|
||||
'duration': 7219,
|
||||
'thumbnail': r're:https?://cfvod\.kaltura\.com/.+',
|
||||
'timestamp': 1505340777,
|
||||
'upload_date': '20170913',
|
||||
'uploader_id': 'eps2',
|
||||
'view_count': int,
|
||||
},
|
||||
{
|
||||
# html5lib URL using kwidget player
|
||||
'url': 'https://cdnapisec.kaltura.com/html5/html5lib/v2.46/mwEmbedFrame.php/p/691292/uiconf_id/20499062/entry_id/0_c076mna6?wid=_691292&iframeembed=true&playerId=kaltura_player_1420508608&entry_id=0_c076mna6&flashvars%5BakamaiHD.loadingPolicy%5D=preInitialize&flashvars%5BakamaiHD.asyncInit%5D=true&flashvars%5BstreamerType%5D=hdnetwork',
|
||||
'info_dict': {
|
||||
'id': '0_c076mna6',
|
||||
'ext': 'mp4',
|
||||
'title': 'md5:4883e7acbcbf42583a2dddc97dee4855',
|
||||
'duration': 3608,
|
||||
'uploader_id': 'commons@swinburne.edu.au',
|
||||
'timestamp': 1408086874,
|
||||
'view_count': int,
|
||||
'upload_date': '20140815',
|
||||
'thumbnail': 'http://cfvod.kaltura.com/p/691292/sp/69129200/thumbnail/entry_id/0_c076mna6/version/100022',
|
||||
},
|
||||
},
|
||||
{
|
||||
# html5lib playlist URL using kwidget player
|
||||
'url': 'https://cdnapisec.kaltura.com/html5/html5lib/v2.89/mwEmbedFrame.php/p/2019031/uiconf_id/40436601?wid=1_4j3m32cv&iframeembed=true&playerId=kaltura_player_&flashvars[playlistAPI.kpl0Id]=1_jovey5nu&flashvars[ks]=&&flashvars[imageDefaultDuration]=30&flashvars[localizationCode]=en&flashvars[leadWithHTML5]=true&flashvars[forceMobileHTML5]=true&flashvars[nextPrevBtn.plugin]=true&flashvars[hotspots.plugin]=true&flashvars[sideBarContainer.plugin]=true&flashvars[sideBarContainer.position]=left&flashvars[sideBarContainer.clickToClose]=true&flashvars[chapters.plugin]=true&flashvars[chapters.layout]=vertical&flashvars[chapters.thumbnailRotator]=false&flashvars[streamSelector.plugin]=true&flashvars[EmbedPlayer.SpinnerTarget]=videoHolder&flashvars[dualScreen.plugin]=true&flashvars[playlistAPI.playlistUrl]=https://canvasgatechtest.kaf.kaltura.com/playlist/details/{playlistAPI.kpl0Id}/categoryid/126428551',
|
||||
'info_dict': {
|
||||
'id': '1_jovey5nu',
|
||||
'title': '00-00 Introduction',
|
||||
},
|
||||
'playlist': [
|
||||
{
|
||||
'info_dict': {
|
||||
'id': '1_b1y5hlvx',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Introduction',
|
||||
'duration': 91,
|
||||
'thumbnail': 'http://cfvod.kaltura.com/p/2019031/sp/201903100/thumbnail/entry_id/1_b1y5hlvx/version/100001',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154447,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
}, {
|
||||
'info_dict': {
|
||||
'id': '1_jfb7mdpn',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Three parts to the course',
|
||||
'duration': 63,
|
||||
'thumbnail': 'http://cfvod.kaltura.com/p/2019031/sp/201903100/thumbnail/entry_id/1_jfb7mdpn/version/100001',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154489,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
}, {
|
||||
'info_dict': {
|
||||
'id': '1_8xflxdp7',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Textbooks',
|
||||
'duration': 37,
|
||||
'thumbnail': 'http://cfvod.kaltura.com/p/2019031/sp/201903100/thumbnail/entry_id/1_8xflxdp7/version/100001',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154512,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
}, {
|
||||
'info_dict': {
|
||||
'id': '1_3hqew8kn',
|
||||
'ext': 'mp4',
|
||||
'title': 'CS7646_00-00 Introductio_Prerequisites',
|
||||
'duration': 49,
|
||||
'thumbnail': 'http://cfvod.kaltura.com/p/2019031/sp/201903100/thumbnail/entry_id/1_3hqew8kn/version/100001',
|
||||
'view_count': int,
|
||||
'timestamp': 1533154536,
|
||||
'upload_date': '20180801',
|
||||
'uploader_id': 'djoyner3',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
}]
|
||||
|
||||
@classmethod
|
||||
def _extract_embed_urls(cls, url, webpage):
|
||||
|
@ -89,6 +89,15 @@ class KinjaEmbedIE(InfoExtractor):
|
||||
'url': 'https://kinja.com/ajax/inset/iframe?id=youtube-video-00QyL0AgPAE',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://www.clickhole.com/video/dont-understand-bitcoin-man-will-mumble-explanatio-2537',
|
||||
'info_dict': {
|
||||
'id': '106351',
|
||||
'ext': 'mp4',
|
||||
'title': 'Don’t Understand Bitcoin? This Man Will Mumble An Explanation At You',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
_JWPLATFORM_PROVIDER = ('cdn.jwplayer.com/v2/media/', 'JWPlatform')
|
||||
_PROVIDER_MAP = {
|
||||
'fb': ('facebook.com/video.php?v=', 'Facebook'),
|
||||
|
@ -18,12 +18,10 @@ class LibsynIE(InfoExtractor):
|
||||
'info_dict': {
|
||||
'id': '6385796',
|
||||
'ext': 'mp3',
|
||||
'title': 'Champion Minded - Developing a Growth Mindset',
|
||||
# description fetched using another request:
|
||||
# http://html5-player.libsyn.com/embed/getitemdetails?item_id=6385796
|
||||
# 'description': 'In this episode, Allistair talks about the importance of developing a growth mindset, not only in sports, but in life too.',
|
||||
'title': 'The Allistair McCaw Podcast - Developing a Growth Mindset',
|
||||
'duration': 834.0,
|
||||
'thumbnail': r're:https?://assets\.libsyn\.com/.+',
|
||||
'upload_date': '20180320',
|
||||
'thumbnail': 're:^https?://.*',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://html5-player.libsyn.com/embed/episode/id/3727166/height/75/width/200/theme/standard/direction/no/autoplay/no/autonext/no/thumbnail/no/preload/no/no_addthis/no/',
|
||||
@ -32,8 +30,32 @@ class LibsynIE(InfoExtractor):
|
||||
'id': '3727166',
|
||||
'ext': 'mp3',
|
||||
'title': 'Clients From Hell Podcast - How a Sex Toy Company Kickstarted my Freelance Career',
|
||||
'thumbnail': r're:https?://assets\.libsyn\.com/.+',
|
||||
'upload_date': '20150818',
|
||||
'thumbnail': 're:^https?://.*',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://html5-player.libsyn.com/',
|
||||
'md5': '50cff329596b8f674d4449ed077ef2f9',
|
||||
'info_dict': {
|
||||
'id': '2378831',
|
||||
'ext': 'mp3',
|
||||
'title': 'md5:54108b15f98e1b4056612c10b50106b2',
|
||||
'duration': 3561.0,
|
||||
'thumbnail': r're:https?://assets\.libsyn\.com/.+',
|
||||
'upload_date': '20130630',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://undergroundwellness.com/podcasts/306-5-steps-to-permanent-gut-healing/',
|
||||
'md5': '23576952577f9604520a730d90371761',
|
||||
'info_dict': {
|
||||
'id': '3793998',
|
||||
'ext': 'mp3',
|
||||
'title': 'Underground Wellness Radio - Jack Tips: 5 Steps to Permanent Gut Healing',
|
||||
'duration': 3989.0,
|
||||
'thumbnail': r're:https?://assets\.libsyn\.com/.+',
|
||||
'upload_date': '20141126',
|
||||
},
|
||||
}]
|
||||
|
||||
|
@ -16,91 +16,103 @@ class MainStreamingIE(InfoExtractor):
|
||||
_EMBED_REGEX = [rf'<iframe[^>]+?src=["\']?(?P<url>{_VALID_URL})["\']?']
|
||||
IE_DESC = 'MainStreaming Player'
|
||||
|
||||
_TESTS = [
|
||||
{
|
||||
# Live stream offline, has alternative content id
|
||||
'url': 'https://webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net/embed/53EN6GxbWaJC',
|
||||
'info_dict': {
|
||||
'id': '53EN6GxbWaJC',
|
||||
'title': 'Diretta homepage 2021-12-31 12:00',
|
||||
'description': '',
|
||||
'live_status': 'was_live',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': r're:https?://[A-Za-z0-9-]*\.msvdn.net/image/\w+/poster',
|
||||
},
|
||||
'expected_warnings': [
|
||||
'Ignoring alternative content ID: WDAF1KOWUpH3',
|
||||
'MainStreaming said: Live event is OFFLINE',
|
||||
],
|
||||
'skip': 'live stream offline',
|
||||
}, {
|
||||
# playlist
|
||||
'url': 'https://webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net/embed/WDAF1KOWUpH3',
|
||||
'info_dict': {
|
||||
'id': 'WDAF1KOWUpH3',
|
||||
'title': 'Playlist homepage',
|
||||
},
|
||||
'playlist_mincount': 2,
|
||||
}, {
|
||||
# livestream
|
||||
'url': 'https://webtools-859c1818ed614cc5b0047439470927b0.msvdn.net/embed/tDoFkZD3T1Lw',
|
||||
'info_dict': {
|
||||
'id': 'tDoFkZD3T1Lw',
|
||||
'title': r're:Class CNBC Live \d{4}-\d{2}-\d{2} \d{2}:\d{2}$',
|
||||
'live_status': 'is_live',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': r're:https?://[A-Za-z0-9-]*\.msvdn.net/image/\w+/poster',
|
||||
},
|
||||
'skip': 'live stream',
|
||||
}, {
|
||||
'url': 'https://webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/EUlZfGWkGpOd?autoPlay=false',
|
||||
'info_dict': {
|
||||
'id': 'EUlZfGWkGpOd',
|
||||
'title': 'La Settimana ',
|
||||
'description': '03 Ottobre ore 02:00',
|
||||
'ext': 'mp4',
|
||||
'live_status': 'not_live',
|
||||
'thumbnail': r're:https?://[A-Za-z0-9-]*\.msvdn.net/image/\w+/poster',
|
||||
'duration': 1512,
|
||||
},
|
||||
}, {
|
||||
# video without webtools- prefix
|
||||
'url': 'https://f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/MfuWmzL2lGkA?autoplay=false&T=1635860445',
|
||||
'info_dict': {
|
||||
'id': 'MfuWmzL2lGkA',
|
||||
'title': 'TG Mattina',
|
||||
'description': '06 Ottobre ore 08:00',
|
||||
'ext': 'mp4',
|
||||
'live_status': 'not_live',
|
||||
'thumbnail': r're:https?://[A-Za-z0-9-]*\.msvdn.net/image/\w+/poster',
|
||||
'duration': 789.04,
|
||||
},
|
||||
}, {
|
||||
# always-on livestream with DVR
|
||||
'url': 'https://webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/HVvPMzy',
|
||||
'info_dict': {
|
||||
'id': 'HVvPMzy',
|
||||
'title': r're:^Diretta LaC News24 \d{4}-\d{2}-\d{2} \d{2}:\d{2}$',
|
||||
'description': 'canale all news',
|
||||
'live_status': 'is_live',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': r're:https?://[A-Za-z0-9-]*\.msvdn.net/image/\w+/poster',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
}, {
|
||||
# no host
|
||||
'url': 'https://webtools.msvdn.net/embed/MfuWmzL2lGkA',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://859c1818ed614cc5b0047439470927b0.msvdn.net/amp_embed/tDoFkZD3T1Lw',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://859c1818ed614cc5b0047439470927b0.msvdn.net/content/tDoFkZD3T1Lw#',
|
||||
'only_matching': True,
|
||||
_TESTS = [{
|
||||
# Live stream offline, has alternative content id
|
||||
'url': 'https://webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net/embed/53EN6GxbWaJC',
|
||||
'info_dict': {
|
||||
'id': '53EN6GxbWaJC',
|
||||
'title': 'Diretta homepage 2021-12-31 12:00',
|
||||
'description': '',
|
||||
'live_status': 'was_live',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': r're:https?://[\w-]+\.msvdn\.net/image/\w+/poster',
|
||||
},
|
||||
]
|
||||
'expected_warnings': [
|
||||
'Ignoring alternative content ID: WDAF1KOWUpH3',
|
||||
'MainStreaming said: Live event is OFFLINE',
|
||||
],
|
||||
'skip': 'live stream offline',
|
||||
}, {
|
||||
# playlist
|
||||
'url': 'https://webtools-e18da6642b684f8aa9ae449862783a56.msvdn.net/embed/WDAF1KOWUpH3',
|
||||
'info_dict': {
|
||||
'id': 'WDAF1KOWUpH3',
|
||||
'title': 'Playlist homepage',
|
||||
},
|
||||
'playlist_mincount': 2,
|
||||
}, {
|
||||
# livestream
|
||||
'url': 'https://webtools-859c1818ed614cc5b0047439470927b0.msvdn.net/embed/tDoFkZD3T1Lw',
|
||||
'info_dict': {
|
||||
'id': 'tDoFkZD3T1Lw',
|
||||
'title': str,
|
||||
'live_status': 'is_live',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': r're:https?://[\w-]+\.msvdn\.net/image/\w+/poster',
|
||||
},
|
||||
'skip': 'live stream',
|
||||
}, {
|
||||
'url': 'https://webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/EUlZfGWkGpOd?autoPlay=false',
|
||||
'info_dict': {
|
||||
'id': 'EUlZfGWkGpOd',
|
||||
'title': 'La Settimana ',
|
||||
'description': '03 Ottobre ore 02:00',
|
||||
'ext': 'mp4',
|
||||
'live_status': 'not_live',
|
||||
'thumbnail': r're:https?://[\w-]+\.msvdn\.net/image/\w+/poster',
|
||||
'duration': 1512,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# video without webtools- prefix
|
||||
'url': 'https://f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/MfuWmzL2lGkA?autoplay=false&T=1635860445',
|
||||
'info_dict': {
|
||||
'id': 'MfuWmzL2lGkA',
|
||||
'title': 'TG Mattina',
|
||||
'description': '06 Ottobre ore 08:00',
|
||||
'ext': 'mp4',
|
||||
'live_status': 'not_live',
|
||||
'thumbnail': r're:https?://[\w-]+\.msvdn\.net/image/\w+/poster',
|
||||
'duration': 789.04,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# always-on livestream with DVR
|
||||
'url': 'https://webtools-f5842579ff984c1c98d63b8d789673eb.msvdn.net/embed/HVvPMzy',
|
||||
'info_dict': {
|
||||
'id': 'HVvPMzy',
|
||||
'title': str,
|
||||
'description': 'canale all news',
|
||||
'live_status': 'is_live',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': r're:https?://[\w-]+\.msvdn\.net/image/\w+/poster',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
# no host
|
||||
'url': 'https://webtools.msvdn.net/embed/MfuWmzL2lGkA',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://859c1818ed614cc5b0047439470927b0.msvdn.net/amp_embed/tDoFkZD3T1Lw',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://859c1818ed614cc5b0047439470927b0.msvdn.net/content/tDoFkZD3T1Lw#',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://www.lacplay.it/video/in-evidenza_728/lac-storie-p-250-i-santi-pietro-e-paolo_77297/',
|
||||
'info_dict': {
|
||||
'id': 'u7kiX5DUaHYr',
|
||||
'ext': 'mp4',
|
||||
'title': 'I Santi Pietro e Paolo',
|
||||
'description': 'md5:ff6be24916ba6b9ae990bf5f3df4911e',
|
||||
'duration': 1700.0,
|
||||
'thumbnail': r're:https?://.+',
|
||||
'tags': '06/07/2025',
|
||||
'live_status': 'not_live',
|
||||
},
|
||||
}]
|
||||
|
||||
def _playlist_entries(self, host, playlist_content):
|
||||
for entry in playlist_content:
|
||||
|
@ -42,6 +42,7 @@ class MedialaanIE(InfoExtractor):
|
||||
'id': '193993',
|
||||
'ext': 'mp4',
|
||||
'title': 'De terugkeer van Ally de Aap en wie vertrekt er nog bij NAC?',
|
||||
'thumbnail': r're:https?://images\.mychannels\.video/imgix/.+',
|
||||
'timestamp': 1611663540,
|
||||
'upload_date': '20210126',
|
||||
'duration': 238,
|
||||
@ -68,6 +69,19 @@ class MedialaanIE(InfoExtractor):
|
||||
'url': 'https://embed.mychannels.video/embed/193993',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.demorgen.be/snelnieuws/tom-waes-promoot-alcoholtesten-op-werchter-ik-ben-de-laatste-persoon-die-met-de-vinger-moet-wijzen~b7457c0d/',
|
||||
'info_dict': {
|
||||
'id': '1576607',
|
||||
'ext': 'mp4',
|
||||
'title': 'Tom Waes blaastest',
|
||||
'duration': 62,
|
||||
'thumbnail': r're:https?://video-images\.persgroep\.be/aws_generated.+\.jpg',
|
||||
'timestamp': 1751730795,
|
||||
'upload_date': '20250705',
|
||||
},
|
||||
'params': {'extractor_args': {'generic': {'impersonate': ['chrome']}}},
|
||||
}]
|
||||
|
||||
@classmethod
|
||||
def _extract_embed_urls(cls, url, webpage):
|
||||
|
@ -31,10 +31,9 @@ class MegaTVComIE(MegaTVComBaseIE):
|
||||
IE_NAME = 'megatvcom'
|
||||
IE_DESC = 'megatv.com videos'
|
||||
_VALID_URL = r'https?://(?:www\.)?megatv\.com/(?:\d{4}/\d{2}/\d{2}|[^/]+/(?P<id>\d+))/(?P<slug>[^/]+)'
|
||||
|
||||
_TESTS = [{
|
||||
# FIXME: Unable to extract article id
|
||||
'url': 'https://www.megatv.com/2021/10/23/egkainia-gia-ti-nea-skini-omega-tou-dimotikou-theatrou-peiraia/',
|
||||
'md5': '6546a1a37fff0dd51c9dce5f490b7d7d',
|
||||
'info_dict': {
|
||||
'id': '520979',
|
||||
'ext': 'mp4',
|
||||
@ -43,20 +42,19 @@ class MegaTVComIE(MegaTVComBaseIE):
|
||||
'timestamp': 1634975747,
|
||||
'upload_date': '20211023',
|
||||
'display_id': 'egkainia-gia-ti-nea-skini-omega-tou-dimotikou-theatrou-peiraia',
|
||||
'thumbnail': 'https://www.megatv.com/wp-content/uploads/2021/10/ΠΕΙΡΑΙΑΣ-1024x450.jpg',
|
||||
'thumbnail': r're:https?://www\.megatv\.com/wp-content/uploads/.+\.jpg',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.megatv.com/tvshows/527800/epeisodio-65-12/',
|
||||
'md5': 'cba2085d45c1abeb8e7e9b7e1d6c0072',
|
||||
'info_dict': {
|
||||
'id': '527800',
|
||||
'ext': 'mp4',
|
||||
'title': 'md5:fc322cb51f682eecfe2f54cd5ab3a157',
|
||||
'title': 'Η Γη της Ελιάς: Επεισόδιο 65 - A\' ΚΥΚΛΟΣ ',
|
||||
'description': 'md5:b2b7ed3690a78f2a0156eb790fdc00df',
|
||||
'timestamp': 1636048859,
|
||||
'upload_date': '20211104',
|
||||
'display_id': 'epeisodio-65-12',
|
||||
'thumbnail': 'https://www.megatv.com/wp-content/uploads/2021/11/16-1-1.jpg',
|
||||
'thumbnail': r're:https?://www\.megatv\.com/wp-content/uploads/.+\.jpg',
|
||||
},
|
||||
}]
|
||||
|
||||
@ -104,8 +102,8 @@ class MegaTVComEmbedIE(MegaTVComBaseIE):
|
||||
IE_DESC = 'megatv.com embedded videos'
|
||||
_VALID_URL = r'(?:https?:)?//(?:www\.)?megatv\.com/embed/?\?p=(?P<id>\d+)'
|
||||
_EMBED_REGEX = [rf'''<iframe[^>]+?src=(?P<_q1>["'])(?P<url>{_VALID_URL})(?P=_q1)''']
|
||||
|
||||
_TESTS = [{
|
||||
# FIXME: Unable to extract article id
|
||||
'url': 'https://www.megatv.com/embed/?p=2020520979',
|
||||
'md5': '6546a1a37fff0dd51c9dce5f490b7d7d',
|
||||
'info_dict': {
|
||||
@ -119,6 +117,7 @@ class MegaTVComEmbedIE(MegaTVComBaseIE):
|
||||
'thumbnail': 'https://www.megatv.com/wp-content/uploads/2021/10/ΠΕΙΡΑΙΑΣ-1024x450.jpg',
|
||||
},
|
||||
}, {
|
||||
# FIXME: Unable to extract article id
|
||||
'url': 'https://www.megatv.com/embed/?p=2020534081',
|
||||
'md5': '6ac8b3ce4dc6120c802f780a1e6b3812',
|
||||
'info_dict': {
|
||||
@ -132,6 +131,15 @@ class MegaTVComEmbedIE(MegaTVComBaseIE):
|
||||
'thumbnail': 'https://www.megatv.com/wp-content/uploads/2021/11/Capture-266.jpg',
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Unable to extract article id
|
||||
'url': 'https://www.in.gr/2021/12/18/greece/apokalypsi-mega-poios-parelave-tin-ereyna-tsiodra-ek-merous-tis-kyvernisis-o-prothypourgos-telika-gnorize/',
|
||||
'info_dict': {
|
||||
'id': 'apokalypsi-mega-poios-parelave-tin-ereyna-tsiodra-ek-merous-tis-kyvernisis-o-prothypourgos-telika-gnorize',
|
||||
'title': 'md5:5e569cf996ec111057c2764ec272848f',
|
||||
},
|
||||
'playlist_count': 2,
|
||||
}]
|
||||
|
||||
def _match_canonical_url(self, webpage):
|
||||
LINK_RE = r'''(?x)
|
||||
|
@ -105,89 +105,85 @@ class MLBIE(MLBBaseIE):
|
||||
r'<iframe[^>]+?src=(["\'])(?P<url>https?://m(?:lb)?\.mlb\.com/shared/video/embed/embed\.html\?.+?)\1',
|
||||
r'data-video-link=["\'](?P<url>http://m\.mlb\.com/video/[^"\']+)',
|
||||
]
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'https://www.mlb.com/mariners/video/ackleys-spectacular-catch/c-34698933',
|
||||
'md5': '632358dacfceec06bad823b83d21df2d',
|
||||
'info_dict': {
|
||||
'id': '34698933',
|
||||
'ext': 'mp4',
|
||||
'title': "Ackley's spectacular catch",
|
||||
'description': 'md5:7f5a981eb4f3cbc8daf2aeffa2215bf0',
|
||||
'duration': 66,
|
||||
'timestamp': 1405995000,
|
||||
'upload_date': '20140722',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'https://www.mlb.com/mariners/video/ackleys-spectacular-catch/c-34698933',
|
||||
'info_dict': {
|
||||
'id': '34698933',
|
||||
'ext': 'mp4',
|
||||
'title': 'Ackley\'s spectacular catch',
|
||||
'description': 'md5:7f5a981eb4f3cbc8daf2aeffa2215bf0',
|
||||
'duration': 66,
|
||||
'timestamp': 1405995000,
|
||||
'upload_date': '20140722',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'https://www.mlb.com/video/stanton-prepares-for-derby/c-34496663',
|
||||
'md5': 'bf2619bf9cacc0a564fc35e6aeb9219f',
|
||||
'info_dict': {
|
||||
'id': '34496663',
|
||||
'ext': 'mp4',
|
||||
'title': 'Stanton prepares for Derby',
|
||||
'description': 'md5:d00ce1e5fd9c9069e9c13ab4faedfa57',
|
||||
'duration': 46,
|
||||
'timestamp': 1405120200,
|
||||
'upload_date': '20140711',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.mlb.com/video/stanton-prepares-for-derby/c-34496663',
|
||||
'info_dict': {
|
||||
'id': '34496663',
|
||||
'ext': 'mp4',
|
||||
'title': 'Stanton prepares for Derby',
|
||||
'description': 'md5:d00ce1e5fd9c9069e9c13ab4faedfa57',
|
||||
'duration': 46,
|
||||
'timestamp': 1405120200,
|
||||
'upload_date': '20140711',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'https://www.mlb.com/video/cespedes-repeats-as-derby-champ/c-34578115',
|
||||
'md5': '99bb9176531adc600b90880fb8be9328',
|
||||
'info_dict': {
|
||||
'id': '34578115',
|
||||
'ext': 'mp4',
|
||||
'title': 'Cespedes repeats as Derby champ',
|
||||
'description': 'md5:08df253ce265d4cf6fb09f581fafad07',
|
||||
'duration': 488,
|
||||
'timestamp': 1405414336,
|
||||
'upload_date': '20140715',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.mlb.com/video/cespedes-repeats-as-derby-champ/c-34578115',
|
||||
'info_dict': {
|
||||
'id': '34578115',
|
||||
'ext': 'mp4',
|
||||
'title': 'Cespedes repeats as Derby champ',
|
||||
'description': 'md5:08df253ce265d4cf6fb09f581fafad07',
|
||||
'duration': 488,
|
||||
'timestamp': 1405414336,
|
||||
'upload_date': '20140715',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'https://www.mlb.com/video/bautista-on-home-run-derby/c-34577915',
|
||||
'md5': 'da8b57a12b060e7663ee1eebd6f330ec',
|
||||
'info_dict': {
|
||||
'id': '34577915',
|
||||
'ext': 'mp4',
|
||||
'title': 'Bautista on Home Run Derby',
|
||||
'description': 'md5:b80b34031143d0986dddc64a8839f0fb',
|
||||
'duration': 52,
|
||||
'timestamp': 1405405122,
|
||||
'upload_date': '20140715',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.mlb.com/video/bautista-on-home-run-derby/c-34577915',
|
||||
'info_dict': {
|
||||
'id': '34577915',
|
||||
'ext': 'mp4',
|
||||
'title': 'Bautista on Home Run Derby',
|
||||
'description': 'md5:b80b34031143d0986dddc64a8839f0fb',
|
||||
'duration': 52,
|
||||
'timestamp': 1405405122,
|
||||
'upload_date': '20140715',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'https://www.mlb.com/video/hargrove-homers-off-caldwell/c-1352023483?tid=67793694',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://www.mlb.com/video/hargrove-homers-off-caldwell/c-1352023483?tid=67793694',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'http://m.mlb.com/shared/video/embed/embed.html?content_id=35692085&topic_id=6479266&width=400&height=224&property=mlb',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'http://mlb.mlb.com/shared/video/embed/embed.html?content_id=36599553',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'http://mlb.mlb.com/es/video/play.jsp?content_id=36599553',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://www.mlb.com/cardinals/video/piscottys-great-sliding-catch/c-51175783',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# From http://m.mlb.com/news/article/118550098/blue-jays-kevin-pillar-goes-spidey-up-the-wall-to-rob-tim-beckham-of-a-homer
|
||||
'url': 'http://mlb.mlb.com/shared/video/embed/m-internal-embed.html?content_id=75609783&property=mlb&autoplay=true&hashmode=false&siteSection=mlb/multimedia/article_118550098/article_embed&club=mlb',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.mlbdailydish.com/2013/2/25/4028804/mlb-classic-video-vault-open-watch-embed-share',
|
||||
'info_dict': {
|
||||
'id': 'mlb-classic-video-vault-open-watch-embed-share',
|
||||
'title': 'MLB Classic vault is open! Don\'t avert your eyes!',
|
||||
'age_limit': 0,
|
||||
'description': 'All the video needed to hold you over until real baseball starts next month.',
|
||||
'thumbnail': r're:https?://cdn\.vox-cdn\.com/thumbor/.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://m.mlb.com/shared/video/embed/embed.html?content_id=35692085&topic_id=6479266&width=400&height=224&property=mlb',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
'url': 'http://mlb.mlb.com/shared/video/embed/embed.html?content_id=36599553',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
'url': 'http://mlb.mlb.com/es/video/play.jsp?content_id=36599553',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
'url': 'https://www.mlb.com/cardinals/video/piscottys-great-sliding-catch/c-51175783',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
# From http://m.mlb.com/news/article/118550098/blue-jays-kevin-pillar-goes-spidey-up-the-wall-to-rob-tim-beckham-of-a-homer
|
||||
'url': 'http://mlb.mlb.com/shared/video/embed/m-internal-embed.html?content_id=75609783&property=mlb&autoplay=true&hashmode=false&siteSection=mlb/multimedia/article_118550098/article_embed&club=mlb',
|
||||
'only_matching': True,
|
||||
},
|
||||
]
|
||||
'playlist_count': 3,
|
||||
}]
|
||||
_TIMESTAMP_KEY = 'date'
|
||||
|
||||
@staticmethod
|
||||
@ -215,20 +211,19 @@ def _download_video_data(self, display_id):
|
||||
|
||||
class MLBVideoIE(MLBBaseIE):
|
||||
_VALID_URL = r'https?://(?:www\.)?mlb\.com/(?:[^/]+/)*video/(?P<id>[^/?&#]+)'
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'https://www.mlb.com/mariners/video/ackley-s-spectacular-catch-c34698933',
|
||||
'md5': '632358dacfceec06bad823b83d21df2d',
|
||||
'info_dict': {
|
||||
'id': 'c04a8863-f569-42e6-9f87-992393657614',
|
||||
'ext': 'mp4',
|
||||
'title': "Ackley's spectacular catch",
|
||||
'title': 'Ackley\'s spectacular catch',
|
||||
'description': 'md5:7f5a981eb4f3cbc8daf2aeffa2215bf0',
|
||||
'duration': 66,
|
||||
'timestamp': 1405995000,
|
||||
'upload_date': '20140722',
|
||||
'thumbnail': r're:^https?://.+',
|
||||
'thumbnail': r're:https?://.+',
|
||||
},
|
||||
}
|
||||
}]
|
||||
_TIMESTAMP_KEY = 'timestamp'
|
||||
|
||||
@classmethod
|
||||
|
@ -138,95 +138,88 @@ def _extract_nbcu_video(self, url, display_id, old_ie_key=None):
|
||||
|
||||
class NBCIE(NBCUniversalBaseIE):
|
||||
_VALID_URL = r'https?(?P<permalink>://(?:www\.)?nbc\.com/(?:classic-tv/)?[^/?#]+/video/[^/?#]+/(?P<id>\w+))'
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'http://www.nbc.com/the-tonight-show/video/jimmy-fallon-surprises-fans-at-ben-jerrys/2848237',
|
||||
'info_dict': {
|
||||
'id': '2848237',
|
||||
'ext': 'mp4',
|
||||
'title': 'Jimmy Fallon Surprises Fans at Ben & Jerry\'s',
|
||||
'description': 'Jimmy gives out free scoops of his new "Tonight Dough" ice cream flavor by surprising customers at the Ben & Jerry\'s scoop shop.',
|
||||
'timestamp': 1424246400,
|
||||
'upload_date': '20150218',
|
||||
'uploader': 'NBCU-COM',
|
||||
'episode': 'Jimmy Fallon Surprises Fans at Ben & Jerry\'s',
|
||||
'episode_number': 86,
|
||||
'season': 'Season 2',
|
||||
'season_number': 2,
|
||||
'series': 'Tonight',
|
||||
'duration': 236.504,
|
||||
'tags': 'count:2',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'categories': ['Series/The Tonight Show Starring Jimmy Fallon'],
|
||||
'media_type': 'Full Episode',
|
||||
'age_limit': 14,
|
||||
'_old_archive_ids': ['theplatform 2848237'],
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'http://www.nbc.com/the-tonight-show/video/jimmy-fallon-surprises-fans-at-ben-jerrys/2848237',
|
||||
'info_dict': {
|
||||
'id': '2848237',
|
||||
'ext': 'mp4',
|
||||
'title': 'Jimmy Fallon Surprises Fans at Ben & Jerry\'s',
|
||||
'description': 'Jimmy gives out free scoops of his new "Tonight Dough" ice cream flavor by surprising customers at the Ben & Jerry\'s scoop shop.',
|
||||
'timestamp': 1424246400,
|
||||
'upload_date': '20150218',
|
||||
'uploader': 'NBCU-COM',
|
||||
'episode': 'Jimmy Fallon Surprises Fans at Ben & Jerry\'s',
|
||||
'episode_number': 86,
|
||||
'season': 'Season 2',
|
||||
'season_number': 2,
|
||||
'series': 'Tonight',
|
||||
'duration': 236.504,
|
||||
'tags': 'count:2',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'categories': ['Series/The Tonight Show Starring Jimmy Fallon'],
|
||||
'media_type': 'Full Episode',
|
||||
'age_limit': 14,
|
||||
'_old_archive_ids': ['theplatform 2848237'],
|
||||
},
|
||||
{
|
||||
'url': 'https://www.nbc.com/the-golden-globe-awards/video/oprah-winfrey-receives-cecil-b-de-mille-award-at-the-2018-golden-globes/3646439',
|
||||
'info_dict': {
|
||||
'id': '3646439',
|
||||
'ext': 'mp4',
|
||||
'title': 'Oprah Winfrey Receives Cecil B. de Mille Award at the 2018 Golden Globes',
|
||||
'episode': 'Oprah Winfrey Receives Cecil B. de Mille Award at the 2018 Golden Globes',
|
||||
'episode_number': 1,
|
||||
'season': 'Season 75',
|
||||
'season_number': 75,
|
||||
'series': 'Golden Globes',
|
||||
'description': 'Oprah Winfrey receives the Cecil B. de Mille Award at the 75th Annual Golden Globe Awards.',
|
||||
'uploader': 'NBCU-COM',
|
||||
'upload_date': '20180107',
|
||||
'timestamp': 1515312000,
|
||||
'duration': 569.703,
|
||||
'tags': 'count:8',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'media_type': 'Highlight',
|
||||
'age_limit': 0,
|
||||
'categories': ['Series/The Golden Globe Awards'],
|
||||
'_old_archive_ids': ['theplatform 3646439'],
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
{
|
||||
# Needs to be extracted from webpage instead of GraphQL
|
||||
'url': 'https://www.nbc.com/paris2024/video/ali-truwit-found-purpose-pool-after-her-life-changed/para24_sww_alitruwittodayshow_240823',
|
||||
'info_dict': {
|
||||
'id': 'para24_sww_alitruwittodayshow_240823',
|
||||
'ext': 'mp4',
|
||||
'title': 'Ali Truwit found purpose in the pool after her life changed',
|
||||
'description': 'md5:c16d7489e1516593de1cc5d3f39b9bdb',
|
||||
'uploader': 'NBCU-SPORTS',
|
||||
'duration': 311.077,
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'episode': 'Ali Truwit found purpose in the pool after her life changed',
|
||||
'timestamp': 1724435902.0,
|
||||
'upload_date': '20240823',
|
||||
'_old_archive_ids': ['theplatform para24_sww_alitruwittodayshow_240823'],
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.nbc.com/the-golden-globe-awards/video/oprah-winfrey-receives-cecil-b-de-mille-award-at-the-2018-golden-globes/3646439',
|
||||
'info_dict': {
|
||||
'id': '3646439',
|
||||
'ext': 'mp4',
|
||||
'title': 'Oprah Winfrey Receives Cecil B. de Mille Award at the 2018 Golden Globes',
|
||||
'episode': 'Oprah Winfrey Receives Cecil B. de Mille Award at the 2018 Golden Globes',
|
||||
'episode_number': 1,
|
||||
'season': 'Season 75',
|
||||
'season_number': 75,
|
||||
'series': 'Golden Globes',
|
||||
'description': 'Oprah Winfrey receives the Cecil B. de Mille Award at the 75th Annual Golden Globe Awards.',
|
||||
'uploader': 'NBCU-COM',
|
||||
'upload_date': '20180107',
|
||||
'timestamp': 1515312000,
|
||||
'duration': 569.703,
|
||||
'tags': 'count:8',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'media_type': 'Highlight',
|
||||
'age_limit': 0,
|
||||
'categories': ['Series/The Golden Globe Awards'],
|
||||
'_old_archive_ids': ['theplatform 3646439'],
|
||||
},
|
||||
{
|
||||
'url': 'https://www.nbc.com/quantum-leap/video/bens-first-leap-nbcs-quantum-leap/NBCE125189978',
|
||||
'only_matching': True,
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
{
|
||||
'url': 'https://www.nbc.com/classic-tv/charles-in-charge/video/charles-in-charge-pilot/n3310',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# Needs to be extracted from webpage instead of GraphQL
|
||||
'url': 'https://www.nbc.com/paris2024/video/ali-truwit-found-purpose-pool-after-her-life-changed/para24_sww_alitruwittodayshow_240823',
|
||||
'info_dict': {
|
||||
'id': 'para24_sww_alitruwittodayshow_240823',
|
||||
'ext': 'mp4',
|
||||
'title': 'Ali Truwit found purpose in the pool after her life changed',
|
||||
'description': 'md5:c16d7489e1516593de1cc5d3f39b9bdb',
|
||||
'uploader': 'NBCU-SPORTS',
|
||||
'duration': 311.077,
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'episode': 'Ali Truwit found purpose in the pool after her life changed',
|
||||
'timestamp': 1724435902.0,
|
||||
'upload_date': '20240823',
|
||||
'_old_archive_ids': ['theplatform para24_sww_alitruwittodayshow_240823'],
|
||||
},
|
||||
{
|
||||
# Percent escaped url
|
||||
'url': 'https://www.nbc.com/up-all-night/video/day-after-valentine%27s-day/n2189',
|
||||
'only_matching': True,
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
]
|
||||
}, {
|
||||
'url': 'https://www.nbc.com/quantum-leap/video/bens-first-leap-nbcs-quantum-leap/NBCE125189978',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://www.nbc.com/classic-tv/charles-in-charge/video/charles-in-charge-pilot/n3310',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# Percent escaped url
|
||||
'url': 'https://www.nbc.com/up-all-night/video/day-after-valentine%27s-day/n2189',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_SOFTWARE_STATEMENT = 'eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1Yzg2YjdkYy04NDI3LTRjNDUtOGQwZi1iNDkzYmE3MmQwYjQiLCJuYmYiOjE1Nzg3MDM2MzEsImlzcyI6ImF1dGguYWRvYmUuY29tIiwiaWF0IjoxNTc4NzAzNjMxfQ.QQKIsBhAjGQTMdAqRTqhcz2Cddr4Y2hEjnSiOeKKki4nLrkDOsjQMmqeTR0hSRarraxH54wBgLvsxI7LHwKMvr7G8QpynNAxylHlQD3yhN9tFhxt4KR5wW3as02B-W2TznK9bhNWPKIyHND95Uo2Mi6rEQoq8tM9O09WPWaanE5BX_-r6Llr6dPq5F0Lpx2QOn2xYRb1T4nFxdFTNoss8GBds8OvChTiKpXMLHegLTc1OS4H_1a8tO_37jDwSdJuZ8iTyRLV4kZ2cpL6OL5JPMObD4-HQiec_dfcYgMKPiIfP9ZqdXpec2SVaCLsWEk86ZYvD97hLIQrK5rrKd1y-A'
|
||||
|
||||
def _real_extract(self, url):
|
||||
@ -378,6 +371,15 @@ class NBCSportsIE(InfoExtractor):
|
||||
'url': 'https://www.nbcsports.com/boston/video/report-card-pats-secondary-no-match-josh-allen',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://www.riderfans.com/forum/showthread.php?121827-Freeman&s=e98fa1ea6dc08e886b1678d35212494a',
|
||||
'info_dict': {
|
||||
'id': 'ln7x1qSThw4k',
|
||||
'ext': 'flv',
|
||||
'title': "PFT Live: New leader in the 'new-look' defense",
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
@ -389,7 +391,7 @@ def _real_extract(self, url):
|
||||
class NBCSportsStreamIE(AdobePassIE):
|
||||
_WORKING = False
|
||||
_VALID_URL = r'https?://stream\.nbcsports\.com/.+?\bpid=(?P<id>\d+)'
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'http://stream.nbcsports.com/nbcsn/generic?pid=206559',
|
||||
'info_dict': {
|
||||
'id': '206559',
|
||||
@ -402,7 +404,7 @@ class NBCSportsStreamIE(AdobePassIE):
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Requires Adobe Pass Authentication',
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
@ -449,98 +451,100 @@ class NBCNewsIE(ThePlatformIE): # XXX: Do not subclass from concrete IE
|
||||
_VALID_URL = r'(?x)https?://(?:www\.)?(?:nbcnews|today|msnbc)\.com/([^/]+/)*(?:.*-)?(?P<id>[^/?]+)'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+src=(["\'])(?P<url>(?:https?:)?//www\.nbcnews\.com/widget/video-embed/[^"\']+)\1']
|
||||
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'http://www.nbcnews.com/watch/nbcnews-com/how-twitter-reacted-to-the-snowden-interview-269389891880',
|
||||
'md5': 'fb3dcd2d7b1dd9804305fa2fc95ab610', # md5 tends to fluctuate
|
||||
'info_dict': {
|
||||
'id': '269389891880',
|
||||
'ext': 'mp4',
|
||||
'title': 'How Twitter Reacted To The Snowden Interview',
|
||||
'description': 'md5:65a0bd5d76fe114f3c2727aa3a81fe64',
|
||||
'timestamp': 1401363060,
|
||||
'upload_date': '20140529',
|
||||
'duration': 46.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/140529/p_tweet_snow_140529.jpg',
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'http://www.nbcnews.com/watch/nbcnews-com/how-twitter-reacted-to-the-snowden-interview-269389891880',
|
||||
'md5': 'fb3dcd2d7b1dd9804305fa2fc95ab610', # md5 tends to fluctuate
|
||||
'info_dict': {
|
||||
'id': '269389891880',
|
||||
'ext': 'mp4',
|
||||
'title': 'How Twitter Reacted To The Snowden Interview',
|
||||
'description': 'md5:65a0bd5d76fe114f3c2727aa3a81fe64',
|
||||
'timestamp': 1401363060,
|
||||
'upload_date': '20140529',
|
||||
'duration': 46.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/140529/p_tweet_snow_140529.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.nbcnews.com/feature/dateline-full-episodes/full-episode-family-business-n285156',
|
||||
'md5': 'fdbf39ab73a72df5896b6234ff98518a',
|
||||
'info_dict': {
|
||||
'id': '529953347624',
|
||||
'ext': 'mp4',
|
||||
'title': 'FULL EPISODE: Family Business',
|
||||
'description': 'md5:757988edbaae9d7be1d585eb5d55cc04',
|
||||
},
|
||||
'skip': 'This page is unavailable.',
|
||||
}, {
|
||||
'url': 'http://www.nbcnews.com/feature/dateline-full-episodes/full-episode-family-business-n285156',
|
||||
'md5': 'fdbf39ab73a72df5896b6234ff98518a',
|
||||
'info_dict': {
|
||||
'id': '529953347624',
|
||||
'ext': 'mp4',
|
||||
'title': 'FULL EPISODE: Family Business',
|
||||
'description': 'md5:757988edbaae9d7be1d585eb5d55cc04',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.nbcnews.com/nightly-news/video/nightly-news-with-brian-williams-full-broadcast-february-4-394064451844',
|
||||
'md5': '40d0e48c68896359c80372306ece0fc3',
|
||||
'info_dict': {
|
||||
'id': '394064451844',
|
||||
'ext': 'mp4',
|
||||
'title': 'Nightly News with Brian Williams Full Broadcast (February 4)',
|
||||
'description': 'md5:1c10c1eccbe84a26e5debb4381e2d3c5',
|
||||
'timestamp': 1423104900,
|
||||
'upload_date': '20150205',
|
||||
'duration': 1236.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/__NEW/nn_netcast_150204.jpg',
|
||||
},
|
||||
'skip': 'This page is unavailable.',
|
||||
}, {
|
||||
'url': 'http://www.nbcnews.com/nightly-news/video/nightly-news-with-brian-williams-full-broadcast-february-4-394064451844',
|
||||
'md5': '40d0e48c68896359c80372306ece0fc3',
|
||||
'info_dict': {
|
||||
'id': '394064451844',
|
||||
'ext': 'mp4',
|
||||
'title': 'Nightly News with Brian Williams Full Broadcast (February 4)',
|
||||
'description': 'md5:1c10c1eccbe84a26e5debb4381e2d3c5',
|
||||
'timestamp': 1423104900,
|
||||
'upload_date': '20150205',
|
||||
'duration': 1236.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/__NEW/nn_netcast_150204.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.nbcnews.com/business/autos/volkswagen-11-million-vehicles-could-have-suspect-software-emissions-scandal-n431456',
|
||||
'md5': 'ffb59bcf0733dc3c7f0ace907f5e3939',
|
||||
'info_dict': {
|
||||
'id': 'n431456',
|
||||
'ext': 'mp4',
|
||||
'title': "Volkswagen U.S. Chief: We 'Totally Screwed Up'",
|
||||
'description': 'md5:d22d1281a24f22ea0880741bb4dd6301',
|
||||
'upload_date': '20150922',
|
||||
'timestamp': 1442917800,
|
||||
'duration': 37.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/__NEW/x_lon_vwhorn_150922.jpg',
|
||||
},
|
||||
}, {
|
||||
'url': 'http://www.nbcnews.com/business/autos/volkswagen-11-million-vehicles-could-have-suspect-software-emissions-scandal-n431456',
|
||||
'md5': 'ffb59bcf0733dc3c7f0ace907f5e3939',
|
||||
'info_dict': {
|
||||
'id': 'n431456',
|
||||
'ext': 'mp4',
|
||||
'title': "Volkswagen U.S. Chief: We 'Totally Screwed Up'",
|
||||
'description': 'md5:d22d1281a24f22ea0880741bb4dd6301',
|
||||
'upload_date': '20150922',
|
||||
'timestamp': 1442917800,
|
||||
'duration': 37.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/__NEW/x_lon_vwhorn_150922.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.today.com/video/see-the-aurora-borealis-from-space-in-stunning-new-nasa-video-669831235788',
|
||||
'md5': '693d1fa21d23afcc9b04c66b227ed9ff',
|
||||
'info_dict': {
|
||||
'id': '669831235788',
|
||||
'ext': 'mp4',
|
||||
'title': 'See the aurora borealis from space in stunning new NASA video',
|
||||
'description': 'md5:74752b7358afb99939c5f8bb2d1d04b1',
|
||||
'upload_date': '20160420',
|
||||
'timestamp': 1461152093,
|
||||
'duration': 69.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/201604/2016-04-20T11-35-09-133Z--1280x720.jpg',
|
||||
},
|
||||
}, {
|
||||
'url': 'http://www.today.com/video/see-the-aurora-borealis-from-space-in-stunning-new-nasa-video-669831235788',
|
||||
'md5': '693d1fa21d23afcc9b04c66b227ed9ff',
|
||||
'info_dict': {
|
||||
'id': '669831235788',
|
||||
'ext': 'mp4',
|
||||
'title': 'See the aurora borealis from space in stunning new NASA video',
|
||||
'description': 'md5:74752b7358afb99939c5f8bb2d1d04b1',
|
||||
'upload_date': '20160420',
|
||||
'timestamp': 1461152093,
|
||||
'duration': 69.0,
|
||||
'thumbnail': 'https://media-cldnry.s-nbcnews.com/image/upload/MSNBC/Components/Video/201604/2016-04-20T11-35-09-133Z--1280x720.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.msnbc.com/all-in-with-chris-hayes/watch/the-chaotic-gop-immigration-vote-314487875924',
|
||||
'md5': '6d236bf4f3dddc226633ce6e2c3f814d',
|
||||
'info_dict': {
|
||||
'id': '314487875924',
|
||||
'ext': 'mp4',
|
||||
'title': 'The chaotic GOP immigration vote',
|
||||
'description': 'The Republican House votes on a border bill that has no chance of getting through the Senate or signed by the President and is drawing criticism from all sides.',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'timestamp': 1406937606,
|
||||
'upload_date': '20140802',
|
||||
'duration': 940.0,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://www.msnbc.com/all-in-with-chris-hayes/watch/the-chaotic-gop-immigration-vote-314487875924',
|
||||
'md5': '6d236bf4f3dddc226633ce6e2c3f814d',
|
||||
'info_dict': {
|
||||
'id': '314487875924',
|
||||
'ext': 'mp4',
|
||||
'title': 'The chaotic GOP immigration vote',
|
||||
'description': 'The Republican House votes on a border bill that has no chance of getting through the Senate or signed by the President and is drawing criticism from all sides.',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'timestamp': 1406937606,
|
||||
'upload_date': '20140802',
|
||||
'duration': 940.0,
|
||||
},
|
||||
{
|
||||
'url': 'http://www.nbcnews.com/watch/dateline/full-episode--deadly-betrayal-386250819952',
|
||||
'only_matching': True,
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://www.nbcnews.com/watch/dateline/full-episode--deadly-betrayal-386250819952',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# From http://www.vulture.com/2016/06/letterman-couldnt-care-less-about-late-night.html
|
||||
'url': 'http://www.nbcnews.com/widget/video-embed/701714499682',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://www.vulture.com/2016/06/letterman-couldnt-care-less-about-late-night.html',
|
||||
'info_dict': {
|
||||
'id': 'x_dtl_oa_LettermanliftPR_160608',
|
||||
'ext': 'mp4',
|
||||
'title': 'David Letterman: A Preview',
|
||||
},
|
||||
{
|
||||
# From http://www.vulture.com/2016/06/letterman-couldnt-care-less-about-late-night.html
|
||||
'url': 'http://www.nbcnews.com/widget/video-embed/701714499682',
|
||||
'only_matching': True,
|
||||
},
|
||||
]
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
@ -610,10 +614,10 @@ class NBCOlympicsIE(InfoExtractor):
|
||||
'display_id': 'watch-final-minutes-team-usas-mens-basketball-gold',
|
||||
'title': 'Watch the final minutes of Team USA\'s men\'s basketball gold',
|
||||
'description': 'md5:f704f591217305c9559b23b877aa8d31',
|
||||
'episode': 'Watch the final minutes of Team USA\'s men\'s basketball gold',
|
||||
'uploader': 'NBCU-SPORTS',
|
||||
'duration': 387.053,
|
||||
'thumbnail': r're:https://.+/.+\.jpg',
|
||||
'chapters': [],
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'timestamp': 1723346984,
|
||||
'upload_date': '20240811',
|
||||
},
|
||||
@ -652,33 +656,31 @@ class NBCOlympicsStreamIE(AdobePassIE):
|
||||
_WORKING = False
|
||||
IE_NAME = 'nbcolympics:stream'
|
||||
_VALID_URL = r'https?://stream\.nbcolympics\.com/(?P<id>[0-9a-z-]+)'
|
||||
_TESTS = [
|
||||
{
|
||||
'note': 'Tokenized m3u8 source URL',
|
||||
'url': 'https://stream.nbcolympics.com/womens-soccer-group-round-11',
|
||||
'info_dict': {
|
||||
'id': '2019740',
|
||||
'ext': 'mp4',
|
||||
'title': r"re:Women's Group Stage - Netherlands vs\. Brazil [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$",
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
'skip': 'Livestream',
|
||||
}, {
|
||||
'note': 'Plain m3u8 source URL',
|
||||
'url': 'https://stream.nbcolympics.com/gymnastics-event-finals-mens-floor-pommel-horse-womens-vault-bars',
|
||||
'info_dict': {
|
||||
'id': '2021729',
|
||||
'ext': 'mp4',
|
||||
'title': r're:Event Finals: M Floor, W Vault, M Pommel, W Uneven Bars [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
'skip': 'Livestream',
|
||||
_TESTS = [{
|
||||
'note': 'Tokenized m3u8 source URL',
|
||||
'url': 'https://stream.nbcolympics.com/womens-soccer-group-round-11',
|
||||
'info_dict': {
|
||||
'id': '2019740',
|
||||
'ext': 'mp4',
|
||||
'title': r"re:Women's Group Stage - Netherlands vs\. Brazil [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$",
|
||||
},
|
||||
]
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
'skip': 'Livestream',
|
||||
}, {
|
||||
'note': 'Plain m3u8 source URL',
|
||||
'url': 'https://stream.nbcolympics.com/gymnastics-event-finals-mens-floor-pommel-horse-womens-vault-bars',
|
||||
'info_dict': {
|
||||
'id': '2021729',
|
||||
'ext': 'mp4',
|
||||
'title': r're:Event Finals: M Floor, W Vault, M Pommel, W Uneven Bars [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
'skip': 'Livestream',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
display_id = self._match_id(url)
|
||||
@ -758,9 +760,7 @@ class NBCStationsIE(InfoExtractor):
|
||||
'channel_id': 'KNBC',
|
||||
'channel': 'nbclosangeles',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
'skip': 'Site changed',
|
||||
}, {
|
||||
'url': 'https://www.telemundoarizona.com/responde/huracan-complica-reembolso-para-televidente-de-tucson/2247002/',
|
||||
'info_dict': {
|
||||
|
@ -73,163 +73,179 @@ def _parse_fragment(url):
|
||||
class PanoptoIE(PanoptoBaseIE):
|
||||
_VALID_URL = PanoptoBaseIE.BASE_URL_RE + r'/Pages/(Viewer|Embed)\.aspx.*(?:\?|&)id=(?P<id>[a-f0-9-]+)'
|
||||
_EMBED_REGEX = [rf'<iframe[^>]+src=["\'](?P<url>{PanoptoBaseIE.BASE_URL_RE}/Pages/(Viewer|Embed|Sessions/List)\.aspx[^"\']+)']
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=26b3ae9e-4a48-4dcc-96ba-0befba08a0fb',
|
||||
'info_dict': {
|
||||
'id': '26b3ae9e-4a48-4dcc-96ba-0befba08a0fb',
|
||||
'title': 'Panopto for Business - Use Cases',
|
||||
'timestamp': 1459184200,
|
||||
'thumbnail': r're:https://demo\.hosted\.panopto\.com/.+',
|
||||
'upload_date': '20160328',
|
||||
'ext': 'mp4',
|
||||
'cast': [],
|
||||
'chapters': [],
|
||||
'duration': 88.17099999999999,
|
||||
'average_rating': int,
|
||||
'uploader_id': '2db6b718-47a0-4b0b-9e17-ab0b00f42b1e',
|
||||
'channel_id': 'e4c6a2fc-1214-4ca0-8fb7-aef2e29ff63a',
|
||||
'channel': 'Showcase Videos',
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=26b3ae9e-4a48-4dcc-96ba-0befba08a0fb',
|
||||
'info_dict': {
|
||||
'id': '26b3ae9e-4a48-4dcc-96ba-0befba08a0fb',
|
||||
'title': 'Panopto for Business - Use Cases',
|
||||
'timestamp': 1459184200,
|
||||
'thumbnail': r're:https?://demo\.hosted\.panopto\.com/.+',
|
||||
'upload_date': '20160328',
|
||||
'ext': 'mp4',
|
||||
'cast': [],
|
||||
'chapters': [],
|
||||
'duration': 88.17099999999999,
|
||||
'average_rating': int,
|
||||
'tags': [],
|
||||
'uploader_id': '2db6b718-47a0-4b0b-9e17-ab0b00f42b1e',
|
||||
'channel_id': 'bb0b58ff-b31b-47a0-9aa2-af6f0113613a',
|
||||
'channel': 'Product',
|
||||
},
|
||||
{
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ed01b077-c9e5-4c7b-b8ff-15fa306d7a59',
|
||||
'info_dict': {
|
||||
'id': 'ed01b077-c9e5-4c7b-b8ff-15fa306d7a59',
|
||||
'title': 'Overcoming Top 4 Challenges of Enterprise Video',
|
||||
'uploader': 'Panopto Support',
|
||||
'timestamp': 1449409251,
|
||||
'thumbnail': r're:https://demo\.hosted\.panopto\.com/.+',
|
||||
'upload_date': '20151206',
|
||||
'ext': 'mp4',
|
||||
'chapters': 'count:12',
|
||||
'cast': ['Panopto Support'],
|
||||
'uploader_id': 'a96d1a31-b4de-489b-9eee-b4a5b414372c',
|
||||
'average_rating': int,
|
||||
'description': 'md5:4391837802b3fc856dadf630c4b375d1',
|
||||
'duration': 1088.2659999999998,
|
||||
'channel_id': '9f3c1921-43bb-4bda-8b3a-b8d2f05a8546',
|
||||
'channel': 'Webcasts',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=ed01b077-c9e5-4c7b-b8ff-15fa306d7a59',
|
||||
'info_dict': {
|
||||
'id': 'ed01b077-c9e5-4c7b-b8ff-15fa306d7a59',
|
||||
'title': 'Overcoming Top 4 Challenges of Enterprise Video',
|
||||
'uploader': 'Panopto Support',
|
||||
'timestamp': 1449409251,
|
||||
'thumbnail': r're:https?://demo\.hosted\.panopto\.com/.+',
|
||||
'upload_date': '20151206',
|
||||
'ext': 'mp4',
|
||||
'chapters': 'count:13',
|
||||
'cast': ['Panopto Support'],
|
||||
'tags': [],
|
||||
'uploader_id': 'a96d1a31-b4de-489b-9eee-b4a5b414372c',
|
||||
'average_rating': int,
|
||||
'description': 'md5:4391837802b3fc856dadf630c4b375d1',
|
||||
'duration': 1088.2659999999998,
|
||||
'channel_id': '9f3c1921-43bb-4bda-8b3a-b8d2f05a8546',
|
||||
'channel': 'Webcasts',
|
||||
},
|
||||
{
|
||||
# Extra params in URL
|
||||
'url': 'https://howtovideos.hosted.panopto.com/Panopto/Pages/Viewer.aspx?randomparam=thisisnotreal&id=5fa74e93-3d87-4694-b60e-aaa4012214ed&advance=true',
|
||||
'info_dict': {
|
||||
'id': '5fa74e93-3d87-4694-b60e-aaa4012214ed',
|
||||
'ext': 'mp4',
|
||||
'duration': 129.513,
|
||||
'cast': ['Kathryn Kelly'],
|
||||
'uploader_id': '316a0a58-7fa2-4cd9-be1c-64270d284a56',
|
||||
'timestamp': 1569845768,
|
||||
'tags': ['Viewer', 'Enterprise'],
|
||||
'chapters': [],
|
||||
'upload_date': '20190930',
|
||||
'thumbnail': r're:https://howtovideos\.hosted\.panopto\.com/.+',
|
||||
'description': 'md5:2d844aaa1b1a14ad0e2601a0993b431f',
|
||||
'title': 'Getting Started: View a Video',
|
||||
'average_rating': int,
|
||||
'uploader': 'Kathryn Kelly',
|
||||
'channel_id': 'fb93bc3c-6750-4b80-a05b-a921013735d3',
|
||||
'channel': 'Getting Started',
|
||||
},
|
||||
}, {
|
||||
# Extra params in URL
|
||||
'url': 'https://howtovideos.hosted.panopto.com/Panopto/Pages/Viewer.aspx?randomparam=thisisnotreal&id=5fa74e93-3d87-4694-b60e-aaa4012214ed&advance=true',
|
||||
'info_dict': {
|
||||
'id': '5fa74e93-3d87-4694-b60e-aaa4012214ed',
|
||||
'ext': 'mp4',
|
||||
'duration': 129.513,
|
||||
'cast': ['Kathryn Kelly'],
|
||||
'uploader_id': '316a0a58-7fa2-4cd9-be1c-64270d284a56',
|
||||
'timestamp': 1569845768,
|
||||
'tags': ['Viewer', 'Enterprise'],
|
||||
'chapters': [],
|
||||
'upload_date': '20190930',
|
||||
'thumbnail': r're:https?://howtovideos\.hosted\.panopto\.com/.+',
|
||||
'description': 'md5:2d844aaa1b1a14ad0e2601a0993b431f',
|
||||
'title': 'Getting Started: View a Video',
|
||||
'average_rating': int,
|
||||
'uploader': 'Kathryn Kelly',
|
||||
'channel_id': 'fb93bc3c-6750-4b80-a05b-a921013735d3',
|
||||
'channel': 'Getting Started',
|
||||
},
|
||||
{
|
||||
# Does not allow normal Viewer.aspx. AUDIO livestream has no url, so should be skipped and only give one stream.
|
||||
'url': 'https://unisa.au.panopto.com/Panopto/Pages/Embed.aspx?id=9d9a0fa3-e99a-4ebd-a281-aac2017f4da4',
|
||||
'info_dict': {
|
||||
'id': '9d9a0fa3-e99a-4ebd-a281-aac2017f4da4',
|
||||
'ext': 'mp4',
|
||||
'cast': ['LTS CLI Script'],
|
||||
'chapters': [],
|
||||
'duration': 2178.45,
|
||||
'description': 'md5:ee5cf653919f55b72bce2dbcf829c9fa',
|
||||
'channel_id': 'b23e673f-c287-4cb1-8344-aae9005a69f8',
|
||||
'average_rating': int,
|
||||
'uploader_id': '38377323-6a23-41e2-9ff6-a8e8004bf6f7',
|
||||
'uploader': 'LTS CLI Script',
|
||||
'timestamp': 1572458134,
|
||||
'title': 'WW2 Vets Interview 3 Ronald Stanley George',
|
||||
'thumbnail': r're:https://unisa\.au\.panopto\.com/.+',
|
||||
'channel': 'World War II Veteran Interviews',
|
||||
'upload_date': '20191030',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# Does not allow normal Viewer.aspx. AUDIO livestream has no url, so should be skipped and only give one stream.
|
||||
'url': 'https://unisa.au.panopto.com/Panopto/Pages/Embed.aspx?id=9d9a0fa3-e99a-4ebd-a281-aac2017f4da4',
|
||||
'info_dict': {
|
||||
'id': '9d9a0fa3-e99a-4ebd-a281-aac2017f4da4',
|
||||
'ext': 'mp4',
|
||||
'cast': ['LTS CLI Script'],
|
||||
'chapters': [],
|
||||
'duration': 2178.45,
|
||||
'description': 'md5:ee5cf653919f55b72bce2dbcf829c9fa',
|
||||
'channel_id': 'b23e673f-c287-4cb1-8344-aae9005a69f8',
|
||||
'average_rating': int,
|
||||
'uploader_id': '38377323-6a23-41e2-9ff6-a8e8004bf6f7',
|
||||
'uploader': 'LTS CLI Script',
|
||||
'tags': [],
|
||||
'timestamp': 1572458134,
|
||||
'title': 'WW2 Vets Interview 3 Ronald Stanley George',
|
||||
'thumbnail': r're:https?://unisa\.au\.panopto\.com/.+',
|
||||
'channel': 'World War II Veteran Interviews',
|
||||
'upload_date': '20191030',
|
||||
},
|
||||
{
|
||||
# Slides/storyboard
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=a7f12f1d-3872-4310-84b0-f8d8ab15326b',
|
||||
'info_dict': {
|
||||
'id': 'a7f12f1d-3872-4310-84b0-f8d8ab15326b',
|
||||
'ext': 'mhtml',
|
||||
'timestamp': 1448798857,
|
||||
'duration': 4712.681,
|
||||
'title': 'Cache Memory - CompSci 15-213, Lecture 12',
|
||||
'channel_id': 'e4c6a2fc-1214-4ca0-8fb7-aef2e29ff63a',
|
||||
'uploader_id': 'a96d1a31-b4de-489b-9eee-b4a5b414372c',
|
||||
'upload_date': '20151129',
|
||||
'average_rating': 0,
|
||||
'uploader': 'Panopto Support',
|
||||
'channel': 'Showcase Videos',
|
||||
'description': 'md5:55e51d54233ddb0e6c2ed388ca73822c',
|
||||
'cast': ['ISR Videographer', 'Panopto Support'],
|
||||
'chapters': 'count:28',
|
||||
'thumbnail': r're:https://demo\.hosted\.panopto\.com/.+',
|
||||
},
|
||||
'params': {'format': 'mhtml', 'skip_download': True},
|
||||
}, {
|
||||
# Slides/storyboard
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=a7f12f1d-3872-4310-84b0-f8d8ab15326b',
|
||||
'info_dict': {
|
||||
'id': 'a7f12f1d-3872-4310-84b0-f8d8ab15326b',
|
||||
'ext': 'mhtml',
|
||||
'timestamp': 1448798857,
|
||||
'duration': 4712.681,
|
||||
'title': 'Cache Memory - CompSci 15-213, Lecture 12',
|
||||
'channel_id': '0202d932-6d28-4fb2-b373-af6f0121c8f0',
|
||||
'uploader_id': 'a96d1a31-b4de-489b-9eee-b4a5b414372c',
|
||||
'upload_date': '20151129',
|
||||
'average_rating': 0,
|
||||
'uploader': 'Panopto Support',
|
||||
'channel': 'Customer Demonstrations',
|
||||
'description': 'md5:55e51d54233ddb0e6c2ed388ca73822c',
|
||||
'cast': ['ISR Videographer', 'Panopto Support'],
|
||||
'chapters': 'count:28',
|
||||
'tags': [],
|
||||
'thumbnail': r're:https?://demo\.hosted\.panopto\.com/.+',
|
||||
},
|
||||
{
|
||||
'url': 'https://na-training-1.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8285224a-9a2b-4957-84f2-acb0000c4ea9',
|
||||
'info_dict': {
|
||||
'id': '8285224a-9a2b-4957-84f2-acb0000c4ea9',
|
||||
'ext': 'mp4',
|
||||
'chapters': [],
|
||||
'title': 'Company Policy',
|
||||
'average_rating': 0,
|
||||
'timestamp': 1615058901,
|
||||
'channel': 'Human Resources',
|
||||
'tags': ['HumanResources'],
|
||||
'duration': 1604.243,
|
||||
'thumbnail': r're:https://na-training-1\.hosted\.panopto\.com/.+',
|
||||
'uploader_id': '8e8ba0a3-424f-40df-a4f1-ab3a01375103',
|
||||
'uploader': 'Cait M.',
|
||||
'upload_date': '20210306',
|
||||
'cast': ['Cait M.'],
|
||||
'subtitles': {'en-US': [{'ext': 'srt', 'data': 'md5:a3f4d25963fdeace838f327097c13265'}],
|
||||
'es-ES': [{'ext': 'srt', 'data': 'md5:57e9dad365fd0fbaf0468eac4949f189'}]},
|
||||
},
|
||||
'params': {'writesubtitles': True, 'skip_download': True},
|
||||
}, {
|
||||
# On Panopto there are two subs: "Default" and en-US. en-US is blank and should be skipped.
|
||||
'url': 'https://na-training-1.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=940cbd41-f616-4a45-b13e-aaf1000c915b',
|
||||
'info_dict': {
|
||||
'id': '940cbd41-f616-4a45-b13e-aaf1000c915b',
|
||||
'ext': 'mp4',
|
||||
'subtitles': 'count:1',
|
||||
'title': 'HR Benefits Review Meeting*',
|
||||
'cast': ['Panopto Support'],
|
||||
'chapters': [],
|
||||
'timestamp': 1575024251,
|
||||
'thumbnail': r're:https://na-training-1\.hosted\.panopto\.com/.+',
|
||||
'channel': 'Zoom',
|
||||
'description': 'md5:04f90a9c2c68b7828144abfb170f0106',
|
||||
'uploader': 'Panopto Support',
|
||||
'average_rating': 0,
|
||||
'duration': 409.34499999999997,
|
||||
'uploader_id': 'b6ac04ad-38b8-4724-a004-a851004ea3df',
|
||||
'upload_date': '20191129',
|
||||
'params': {'format': 'mhtml', 'skip_download': True},
|
||||
}, {
|
||||
'url': 'https://na-training-1.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8285224a-9a2b-4957-84f2-acb0000c4ea9',
|
||||
'info_dict': {
|
||||
'id': '8285224a-9a2b-4957-84f2-acb0000c4ea9',
|
||||
'ext': 'mp4',
|
||||
'chapters': [],
|
||||
'title': 'Company Policy',
|
||||
'average_rating': 0,
|
||||
'timestamp': 1615058901,
|
||||
'channel': 'Human Resources',
|
||||
'tags': ['HumanResources'],
|
||||
'duration': 1604.243,
|
||||
'thumbnail': r're:https?://na-training-1\.hosted\.panopto\.com/.+',
|
||||
'uploader_id': '8e8ba0a3-424f-40df-a4f1-ab3a01375103',
|
||||
'uploader': 'Cait M.',
|
||||
'upload_date': '20210306',
|
||||
'cast': ['Cait M.'],
|
||||
},
|
||||
'params': {'writesubtitles': True, 'skip_download': True},
|
||||
}, {
|
||||
# On Panopto there are two subs: "Default" and en-US. en-US is blank and should be skipped.
|
||||
'url': 'https://na-training-1.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=940cbd41-f616-4a45-b13e-aaf1000c915b',
|
||||
'info_dict': {
|
||||
'id': '940cbd41-f616-4a45-b13e-aaf1000c915b',
|
||||
'ext': 'mp4',
|
||||
'subtitles': 'count:1',
|
||||
'title': 'HR Benefits Review Meeting*',
|
||||
'cast': ['Panopto Support'],
|
||||
'chapters': [],
|
||||
'timestamp': 1575024251,
|
||||
'thumbnail': r're:https://na-training-1\.hosted\.panopto\.com/.+',
|
||||
'channel': 'Zoom',
|
||||
'description': 'md5:04f90a9c2c68b7828144abfb170f0106',
|
||||
'uploader': 'Panopto Support',
|
||||
'average_rating': 0,
|
||||
'duration': 409.34499999999997,
|
||||
'tags': [],
|
||||
'uploader_id': 'b6ac04ad-38b8-4724-a004-a851004ea3df',
|
||||
'upload_date': '20191129',
|
||||
|
||||
},
|
||||
'params': {'writesubtitles': True, 'skip_download': True},
|
||||
},
|
||||
{
|
||||
'url': 'https://ucc.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=0e8484a4-4ceb-4d98-a63f-ac0200b455cb',
|
||||
'only_matching': True,
|
||||
'params': {'writesubtitles': True, 'skip_download': True},
|
||||
}, {
|
||||
'url': 'https://ucc.cloud.panopto.eu/Panopto/Pages/Viewer.aspx?id=0e8484a4-4ceb-4d98-a63f-ac0200b455cb',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://brown.hosted.panopto.com/Panopto/Pages/Embed.aspx?id=0b3ff73b-36a0-46c5-8455-aadf010a3638',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.monash.edu/learning-teaching/teachhq/learning-technologies/panopto/how-to/insert-a-quiz-into-a-panopto-video',
|
||||
'info_dict': {
|
||||
'id': '0bd3f16c-824a-436a-8486-ac5900693aef',
|
||||
'ext': 'mp4',
|
||||
'title': 'Quizzes in Panopto',
|
||||
'average_rating': 0,
|
||||
'cast': ['Stephanie Luo'],
|
||||
'chapters': 'count:8',
|
||||
'channel': 'Panopto',
|
||||
'description': 'md5:731ce802eee75808b1181db1ff1b5002',
|
||||
'duration': 185.833,
|
||||
'tags': [],
|
||||
'thumbnail': r're:https?://monash\.au\.panopto\.com/.+',
|
||||
'timestamp': 1607562188,
|
||||
'upload_date': '20201210',
|
||||
'uploader': 'Stephanie Luo',
|
||||
'uploader_id': 'b18ca46d-20df-4ff5-b0b3-aa7a00085617',
|
||||
},
|
||||
{
|
||||
'url': 'https://brown.hosted.panopto.com/Panopto/Pages/Embed.aspx?id=0b3ff73b-36a0-46c5-8455-aadf010a3638',
|
||||
'only_matching': True,
|
||||
},
|
||||
]
|
||||
'params': {'extractor_args': {'generic': {'impersonate': ['chrome']}}},
|
||||
}]
|
||||
|
||||
@classmethod
|
||||
def suitable(cls, url):
|
||||
@ -423,27 +439,23 @@ def _real_extract(self, url):
|
||||
|
||||
class PanoptoPlaylistIE(PanoptoBaseIE):
|
||||
_VALID_URL = PanoptoBaseIE.BASE_URL_RE + r'/Pages/(Viewer|Embed)\.aspx.*(?:\?|&)pid=(?P<id>[a-f0-9-]+)'
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'https://howtovideos.hosted.panopto.com/Panopto/Pages/Viewer.aspx?pid=f3b39fcf-882f-4849-93d6-a9f401236d36&id=5fa74e93-3d87-4694-b60e-aaa4012214ed&advance=true',
|
||||
'info_dict': {
|
||||
'title': 'Featured Video Tutorials',
|
||||
'id': 'f3b39fcf-882f-4849-93d6-a9f401236d36',
|
||||
'description': '',
|
||||
},
|
||||
'playlist_mincount': 36,
|
||||
_TESTS = [{
|
||||
'url': 'https://howtovideos.hosted.panopto.com/Panopto/Pages/Viewer.aspx?pid=f3b39fcf-882f-4849-93d6-a9f401236d36&id=5fa74e93-3d87-4694-b60e-aaa4012214ed&advance=true',
|
||||
'info_dict': {
|
||||
'id': 'f3b39fcf-882f-4849-93d6-a9f401236d36',
|
||||
'title': 'Featured Video Tutorials',
|
||||
'description': '',
|
||||
},
|
||||
{
|
||||
'url': 'https://utsa.hosted.panopto.com/Panopto/Pages/Viewer.aspx?pid=e2900555-3ad4-4bdb-854d-ad2401686190',
|
||||
'info_dict': {
|
||||
'title': 'Library Website Introduction Playlist',
|
||||
'id': 'e2900555-3ad4-4bdb-854d-ad2401686190',
|
||||
'description': 'md5:f958bca50a1cbda15fdc1e20d32b3ecb',
|
||||
},
|
||||
'playlist_mincount': 4,
|
||||
'playlist_mincount': 19,
|
||||
}, {
|
||||
'url': 'https://utsa.hosted.panopto.com/Panopto/Pages/Viewer.aspx?pid=e2900555-3ad4-4bdb-854d-ad2401686190',
|
||||
'info_dict': {
|
||||
'id': 'e2900555-3ad4-4bdb-854d-ad2401686190',
|
||||
'title': 'Library Website Introduction Playlist',
|
||||
'description': 'md5:f958bca50a1cbda15fdc1e20d32b3ecb',
|
||||
},
|
||||
|
||||
]
|
||||
'playlist_mincount': 4,
|
||||
}]
|
||||
|
||||
def _entries(self, base_url, playlist_id, session_list_id):
|
||||
session_list_info = self._call_api(
|
||||
@ -486,35 +498,29 @@ def _real_extract(self, url):
|
||||
class PanoptoListIE(PanoptoBaseIE):
|
||||
_VALID_URL = PanoptoBaseIE.BASE_URL_RE + r'/Pages/Sessions/List\.aspx'
|
||||
_PAGE_SIZE = 250
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22e4c6a2fc-1214-4ca0-8fb7-aef2e29ff63a%22',
|
||||
'info_dict': {
|
||||
'id': 'e4c6a2fc-1214-4ca0-8fb7-aef2e29ff63a',
|
||||
'title': 'Showcase Videos',
|
||||
},
|
||||
'playlist_mincount': 140,
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#folderID=%22e4c6a2fc-1214-4ca0-8fb7-aef2e29ff63a%22',
|
||||
'info_dict': {
|
||||
'id': 'e4c6a2fc-1214-4ca0-8fb7-aef2e29ff63a',
|
||||
'title': 'Showcase Videos',
|
||||
},
|
||||
{
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#view=2&maxResults=250',
|
||||
'info_dict': {
|
||||
'id': 'panopto_list',
|
||||
'title': 'panopto_list',
|
||||
},
|
||||
'playlist_mincount': 300,
|
||||
'playlist_mincount': 8,
|
||||
}, {
|
||||
'url': 'https://demo.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx#view=2&maxResults=250',
|
||||
'info_dict': {
|
||||
'id': 'panopto_list',
|
||||
'title': 'panopto_list',
|
||||
},
|
||||
{
|
||||
# Folder that contains 8 folders and a playlist
|
||||
'url': 'https://howtovideos.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx?noredirect=true#folderID=%224b9de7ae-0080-4158-8496-a9ba01692c2e%22',
|
||||
'info_dict': {
|
||||
'id': '4b9de7ae-0080-4158-8496-a9ba01692c2e',
|
||||
'title': 'Video Tutorials',
|
||||
},
|
||||
'playlist_mincount': 9,
|
||||
'playlist_mincount': 300,
|
||||
}, {
|
||||
# Folder that contains 8 folders and a playlist
|
||||
'url': 'https://howtovideos.hosted.panopto.com/Panopto/Pages/Sessions/List.aspx?noredirect=true#folderID=%224b9de7ae-0080-4158-8496-a9ba01692c2e%22',
|
||||
'info_dict': {
|
||||
'id': '4b9de7ae-0080-4158-8496-a9ba01692c2e',
|
||||
'title': 'Video Tutorials',
|
||||
},
|
||||
|
||||
]
|
||||
'playlist_mincount': 9,
|
||||
}]
|
||||
|
||||
def _fetch_page(self, base_url, query_params, display_id, page):
|
||||
|
||||
|
@ -1331,7 +1331,7 @@ class PeerTubeIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'What is PeerTube?',
|
||||
'description': 'md5:3fefb8dde2b189186ce0719fda6f7b10',
|
||||
'thumbnail': r're:https?://.*\.(?:jpg|png)',
|
||||
'thumbnail': r're:https?://framatube\.org/lazy-static/thumbnails/.+\.jpg',
|
||||
'timestamp': 1538391166,
|
||||
'upload_date': '20181001',
|
||||
'uploader': 'Framasoft',
|
||||
@ -1346,19 +1346,34 @@ class PeerTubeIE(InfoExtractor):
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'dislike_count': int,
|
||||
'tags': ['framasoft', 'peertube'],
|
||||
'tags': 'count:2',
|
||||
'categories': ['Science & Technology'],
|
||||
},
|
||||
'expected_warnings': ['HTTP Error 400: Bad Request'],
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://peertube2.cpy.re/w/122d093a-1ede-43bd-bd34-59d2931ffc5e',
|
||||
'info_dict': {
|
||||
'id': '122d093a-1ede-43bd-bd34-59d2931ffc5e',
|
||||
'ext': 'mp4',
|
||||
'title': 'E2E tests',
|
||||
'uploader_id': '37855',
|
||||
'categories': ['Unknown'],
|
||||
'channel': 'Main chocobozzz channel',
|
||||
'channel_id': '5187',
|
||||
'channel_url': 'https://peertube2.cpy.re/video-channels/chocobozzz_channel',
|
||||
'description': 'md5:67daf92c833c41c95db874e18fcb2786',
|
||||
'dislike_count': int,
|
||||
'duration': 52,
|
||||
'license': 'Unknown',
|
||||
'like_count': int,
|
||||
'tags': [],
|
||||
'thumbnail': r're:https?://peertube2\.cpy\.re/lazy-static/thumbnails/.+\.jpg',
|
||||
'timestamp': 1589276219,
|
||||
'upload_date': '20200512',
|
||||
'uploader': 'chocobozzz',
|
||||
'uploader_id': '37855',
|
||||
'uploader_url': 'https://peertube2.cpy.re/accounts/chocobozzz',
|
||||
'view_count': int,
|
||||
},
|
||||
}, {
|
||||
'url': 'https://peertube2.cpy.re/w/3fbif9S3WmtTP8gGsC5HBd',
|
||||
@ -1366,10 +1381,23 @@ class PeerTubeIE(InfoExtractor):
|
||||
'id': '3fbif9S3WmtTP8gGsC5HBd',
|
||||
'ext': 'mp4',
|
||||
'title': 'E2E tests',
|
||||
'uploader_id': '37855',
|
||||
'categories': ['Unknown'],
|
||||
'channel': 'Main chocobozzz channel',
|
||||
'channel_id': '5187',
|
||||
'channel_url': 'https://peertube2.cpy.re/video-channels/chocobozzz_channel',
|
||||
'description': 'md5:67daf92c833c41c95db874e18fcb2786',
|
||||
'dislike_count': int,
|
||||
'duration': 52,
|
||||
'license': 'Unknown',
|
||||
'like_count': int,
|
||||
'tags': [],
|
||||
'thumbnail': r're:https?://peertube2\.cpy\.re/lazy-static/thumbnails/.+\.jpg',
|
||||
'timestamp': 1589276219,
|
||||
'upload_date': '20200512',
|
||||
'uploader': 'chocobozzz',
|
||||
'uploader_id': '37855',
|
||||
'uploader_url': 'https://peertube2.cpy.re/accounts/chocobozzz',
|
||||
'view_count': int,
|
||||
},
|
||||
}, {
|
||||
'url': 'https://peertube2.cpy.re/api/v1/videos/3fbif9S3WmtTP8gGsC5HBd',
|
||||
@ -1377,13 +1405,26 @@ class PeerTubeIE(InfoExtractor):
|
||||
'id': '3fbif9S3WmtTP8gGsC5HBd',
|
||||
'ext': 'mp4',
|
||||
'title': 'E2E tests',
|
||||
'uploader_id': '37855',
|
||||
'categories': ['Unknown'],
|
||||
'channel': 'Main chocobozzz channel',
|
||||
'channel_id': '5187',
|
||||
'channel_url': 'https://peertube2.cpy.re/video-channels/chocobozzz_channel',
|
||||
'description': 'md5:67daf92c833c41c95db874e18fcb2786',
|
||||
'dislike_count': int,
|
||||
'duration': 52,
|
||||
'license': 'Unknown',
|
||||
'like_count': int,
|
||||
'tags': [],
|
||||
'thumbnail': r're:https?://peertube2\.cpy\.re/lazy-static/thumbnails/.+\.jpg',
|
||||
'timestamp': 1589276219,
|
||||
'upload_date': '20200512',
|
||||
'uploader': 'chocobozzz',
|
||||
'uploader_id': '37855',
|
||||
'uploader_url': 'https://peertube2.cpy.re/accounts/chocobozzz',
|
||||
'view_count': int,
|
||||
},
|
||||
}, {
|
||||
# Issue #26002
|
||||
# https://github.com/ytdl-org/youtube-dl/issues/26002
|
||||
'url': 'peertube:spacepub.space:d8943b2d-8280-497b-85ec-bc282ec2afdc',
|
||||
'info_dict': {
|
||||
'id': 'd8943b2d-8280-497b-85ec-bc282ec2afdc',
|
||||
@ -1394,6 +1435,7 @@ class PeerTubeIE(InfoExtractor):
|
||||
'upload_date': '20200420',
|
||||
'uploader': 'Drew DeVault',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://peertube.debian.social/videos/watch/0b04f13d-1e18-4f1d-814e-4979aa7c9c44',
|
||||
'only_matching': True,
|
||||
@ -1411,6 +1453,33 @@ class PeerTubeIE(InfoExtractor):
|
||||
'url': 'peertube:framatube.org:b37a5b9f-e6b5-415c-b700-04a5cd6ec205',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://video.macver.org/w/6gvhZpUGQVd4SQ6oYDc9pC',
|
||||
'info_dict': {
|
||||
'id': '6gvhZpUGQVd4SQ6oYDc9pC',
|
||||
'ext': 'mp4',
|
||||
'title': 'Minecraft, but if you say a block, it gets deleted',
|
||||
'categories': ['Gaming'],
|
||||
'channel': 'Waffle Irons Gaming',
|
||||
'channel_id': '4',
|
||||
'channel_url': 'https://video.macver.org/video-channels/waffle_irons',
|
||||
'description': 'md5:eda8daf64b0dadd00cc248f28eef213c',
|
||||
'dislike_count': int,
|
||||
'duration': 1643,
|
||||
'license': 'Attribution - Non Commercial',
|
||||
'like_count': int,
|
||||
'tags': 'count:1',
|
||||
'thumbnail': r're:https?://video\.macver\.org/lazy-static/thumbnails/.+\.jpg',
|
||||
'timestamp': 1751142352,
|
||||
'upload_date': '20250628',
|
||||
'uploader': 'Bog',
|
||||
'uploader_id': '3',
|
||||
'uploader_url': 'https://video.macver.org/accounts/bog',
|
||||
'view_count': int,
|
||||
},
|
||||
'expected_warnings': ['HTTP Error 400: Bad Request', 'Ignoring subtitle tracks found in the HLS manifest'],
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
@staticmethod
|
||||
def _extract_peertube_url(webpage, source_url):
|
||||
@ -1580,31 +1649,47 @@ class PeerTubePlaylistIE(InfoExtractor):
|
||||
'id': 'hFdJoTuyhNJVa1cDWd1d12',
|
||||
'description': 'Diversas palestras do Richard Stallman no Brasil.',
|
||||
'title': 'Richard Stallman no Brasil',
|
||||
'channel': 'debianbrazilteam',
|
||||
'channel_id': 1522,
|
||||
'thumbnail': r're:https?://peertube\.debian\.social/lazy-static/thumbnails/.+\.jpg',
|
||||
'timestamp': 1599676222,
|
||||
'upload_date': '20200909',
|
||||
},
|
||||
'playlist_mincount': 9,
|
||||
}, {
|
||||
'url': 'https://peertube2.cpy.re/a/chocobozzz/videos',
|
||||
'info_dict': {
|
||||
'id': 'chocobozzz',
|
||||
'timestamp': 1553874564,
|
||||
'title': 'chocobozzz',
|
||||
'channel': 'chocobozzz',
|
||||
'channel_id': 37855,
|
||||
'thumbnail': '',
|
||||
'timestamp': 1553874564,
|
||||
'upload_date': '20190329',
|
||||
},
|
||||
'playlist_mincount': 2,
|
||||
}, {
|
||||
'url': 'https://framatube.org/c/bf54d359-cfad-4935-9d45-9d6be93f63e8/videos',
|
||||
'info_dict': {
|
||||
'id': 'bf54d359-cfad-4935-9d45-9d6be93f63e8',
|
||||
'timestamp': 1519917377,
|
||||
'title': 'Les vidéos de Framasoft',
|
||||
'channel': 'framasoft',
|
||||
'channel_id': 3,
|
||||
'thumbnail': '',
|
||||
'timestamp': 1519917377,
|
||||
'upload_date': '20180301',
|
||||
},
|
||||
'playlist_mincount': 345,
|
||||
}, {
|
||||
'url': 'https://peertube2.cpy.re/c/blender_open_movies@video.blender.org/videos',
|
||||
'info_dict': {
|
||||
'id': 'blender_open_movies@video.blender.org',
|
||||
'timestamp': 1542287810,
|
||||
'title': 'Official Blender Open Movies',
|
||||
'channel': 'blender',
|
||||
'channel_id': 1926,
|
||||
'thumbnail': '',
|
||||
'timestamp': 1540472902,
|
||||
'upload_date': '20181025',
|
||||
},
|
||||
'playlist_mincount': 11,
|
||||
}]
|
||||
|
@ -19,6 +19,7 @@ class PlaywireIE(InfoExtractor):
|
||||
'thumbnail': r're:^https?://.*\.png$',
|
||||
'duration': 145.94,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# m3u8 in f4m
|
||||
'url': 'http://config.playwire.com/21772/videos/v2/4840492/zeus.json',
|
||||
@ -27,10 +28,7 @@ class PlaywireIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'ITV EL SHOW FULL',
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# Multiple resolutions while bitrates missing
|
||||
'url': 'http://cdn.playwire.com/11625/embed/85228.html',
|
||||
@ -42,6 +40,15 @@ class PlaywireIE(InfoExtractor):
|
||||
'url': 'http://cdn.playwire.com/v2/12342/config/1532636.json',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.cinemablend.com/new/First-Joe-Dirt-2-Trailer-Teaser-Stupid-Greatness-70874.html',
|
||||
'info_dict': {
|
||||
'id': '3519514',
|
||||
'ext': 'mp4',
|
||||
'title': 'Joe Dirt 2 Beautiful Loser Teaser Trailer',
|
||||
},
|
||||
'skip': 'Site no longer embeds Playwire',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
mobj = self._match_valid_url(url)
|
||||
|
@ -115,7 +115,6 @@ class RutubeIE(RutubeBaseIE):
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://rutube.ru/video/3eac3b4561676c17df9132a9a1e62e3e/',
|
||||
'md5': '3d73fdfe5bb81b9aef139e22ef3de26a',
|
||||
'info_dict': {
|
||||
'id': '3eac3b4561676c17df9132a9a1e62e3e',
|
||||
'ext': 'mp4',
|
||||
@ -128,10 +127,11 @@ class RutubeIE(RutubeBaseIE):
|
||||
'upload_date': '20131016',
|
||||
'age_limit': 0,
|
||||
'view_count': int,
|
||||
'thumbnail': 'https://pic.rutubelist.ru/video/d2/a0/d2a0aec998494a396deafc7ba2c82add.jpg',
|
||||
'thumbnail': r're:https?://pic\.rutubelist\.ru/video/.+\.(?:jpg|png)',
|
||||
'categories': ['Новости и СМИ'],
|
||||
'chapters': [],
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://rutube.ru/play/embed/a10e53b86e8f349080f718582ce4c661',
|
||||
'only_matching': True,
|
||||
@ -146,7 +146,6 @@ class RutubeIE(RutubeBaseIE):
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://rutube.ru/video/private/884fb55f07a97ab673c7d654553e0f48/?p=x2QojCumHTS3rsKHWXN8Lg',
|
||||
'md5': '4fce7b4fcc7b1bcaa3f45eb1e1ad0dd7',
|
||||
'info_dict': {
|
||||
'id': '884fb55f07a97ab673c7d654553e0f48',
|
||||
'ext': 'mp4',
|
||||
@ -163,6 +162,7 @@ class RutubeIE(RutubeBaseIE):
|
||||
'categories': ['Видеоигры'],
|
||||
'chapters': [],
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://rutube.ru/video/c65b465ad0c98c89f3b25cb03dcc87c6/',
|
||||
'info_dict': {
|
||||
@ -171,7 +171,7 @@ class RutubeIE(RutubeBaseIE):
|
||||
'chapters': 'count:4',
|
||||
'categories': ['Бизнес и предпринимательство'],
|
||||
'description': 'md5:252feac1305257d8c1bab215cedde75d',
|
||||
'thumbnail': 'https://pic.rutubelist.ru/video/71/8f/718f27425ea9706073eb80883dd3787b.png',
|
||||
'thumbnail': r're:https?://pic\.rutubelist\.ru/video/.+\.(?:jpg|png)',
|
||||
'duration': 782,
|
||||
'age_limit': 0,
|
||||
'uploader_id': '23491359',
|
||||
@ -181,6 +181,7 @@ class RutubeIE(RutubeBaseIE):
|
||||
'title': 'Бизнес с нуля: найм сотрудников. Интервью с директором строительной компании #1',
|
||||
'uploader': 'Стас Быков',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://rutube.ru/live/video/c58f502c7bb34a8fcdd976b221fca292/',
|
||||
'info_dict': {
|
||||
@ -188,16 +189,17 @@ class RutubeIE(RutubeBaseIE):
|
||||
'ext': 'mp4',
|
||||
'categories': ['Телепередачи'],
|
||||
'description': '',
|
||||
'thumbnail': 'https://pic.rutubelist.ru/video/14/19/14190807c0c48b40361aca93ad0867c7.jpg',
|
||||
'thumbnail': r're:https?://pic\.rutubelist\.ru/video/.+\.(?:jpg|png)',
|
||||
'live_status': 'is_live',
|
||||
'age_limit': 0,
|
||||
'uploader_id': '23460655',
|
||||
'timestamp': 1652972968,
|
||||
'view_count': int,
|
||||
'upload_date': '20220519',
|
||||
'title': r're:Первый канал. Прямой эфир \d{4}-\d{2}-\d{2} \d{2}:\d{2}$',
|
||||
'title': str,
|
||||
'uploader': 'Первый канал',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://rutube.ru/play/embed/03a9cb54bac3376af4c5cb0f18444e01/',
|
||||
'info_dict': {
|
||||
@ -211,11 +213,12 @@ class RutubeIE(RutubeBaseIE):
|
||||
'duration': 293,
|
||||
'uploader': 'MOEX - Московская биржа',
|
||||
'timestamp': 1724946628,
|
||||
'thumbnail': 'https://pic.rutubelist.ru/video/2e/24/2e241fddb459baf0fa54acfca44874f4.jpg',
|
||||
'thumbnail': r're:https?://pic\.rutubelist\.ru/video/.+\.(?:jpg|png)',
|
||||
'view_count': int,
|
||||
'uploader_id': '38420507',
|
||||
'categories': ['Интервью'],
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://rutube.ru/video/5ab908fccfac5bb43ef2b1e4182256b0/',
|
||||
'only_matching': True,
|
||||
@ -223,6 +226,26 @@ class RutubeIE(RutubeBaseIE):
|
||||
'url': 'https://rutube.ru/live/video/private/c58f502c7bb34a8fcdd976b221fca292/',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://novate.ru/blogs/170625/73644/',
|
||||
'info_dict': {
|
||||
'id': 'b0c96c75a4e5b274721bbced6ed8fb64',
|
||||
'ext': 'mp4',
|
||||
'title': 'Где в России находится единственная в своем роде скальная торпедная батарея',
|
||||
'age_limit': 0,
|
||||
'categories': ['Наука'],
|
||||
'chapters': [],
|
||||
'description': 'md5:2ed82e6b81958a43da6fb4d56f949e1f',
|
||||
'duration': 182,
|
||||
'thumbnail': r're:https?://pic\.rutubelist\.ru/video/.+\.(?:jpg|png)',
|
||||
'timestamp': 1749950158,
|
||||
'upload_date': '20250615',
|
||||
'uploader': 'Novate',
|
||||
'uploader_id': '24044809',
|
||||
'view_count': int,
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
@ -256,12 +279,10 @@ class RutubeEmbedIE(RutubeBaseIE):
|
||||
'chapters': [],
|
||||
'description': 'md5:a5acea57bbc3ccdc3cacd1f11a014b5b',
|
||||
'view_count': int,
|
||||
'thumbnail': 'https://pic.rutubelist.ru/video/d3/03/d3031f4670a6e6170d88fb3607948418.jpg',
|
||||
'thumbnail': r're:https?://pic\.rutubelist\.ru/video/.+\.(?:jpg|png)',
|
||||
'categories': ['Сериалы'],
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://rutube.ru/play/embed/8083783',
|
||||
'only_matching': True,
|
||||
|
@ -16,96 +16,88 @@ class RUTVIE(InfoExtractor):
|
||||
)
|
||||
(?P<id>\d+)
|
||||
'''
|
||||
_EMBED_URLS = [
|
||||
_EMBED_REGEX = [
|
||||
r'<iframe[^>]+?src=(["\'])(?P<url>https?://(?:test)?player\.(?:rutv\.ru|vgtrk\.com)/(?:iframe/(?:swf|video|live)/id|index/iframe/cast_id)/.+?)\1',
|
||||
r'<meta[^>]+?property=(["\'])og:video\1[^>]+?content=(["\'])(?P<url>https?://(?:test)?player\.(?:rutv\.ru|vgtrk\.com)/flash\d+v/container\.swf\?id=.+?\2)',
|
||||
]
|
||||
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'http://player.rutv.ru/flash2v/container.swf?id=774471&sid=kultura&fbv=true&isPlay=true&ssl=false&i=560&acc_video_id=episode_id/972347/video_id/978186/brand_id/31724',
|
||||
'info_dict': {
|
||||
'id': '774471',
|
||||
'ext': 'mp4',
|
||||
'title': 'Монологи на все времена',
|
||||
'description': 'md5:18d8b5e6a41fb1faa53819471852d5d5',
|
||||
'duration': 2906,
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'http://player.rutv.ru/flash2v/container.swf?id=774471&sid=kultura&fbv=true&isPlay=true&ssl=false&i=560&acc_video_id=episode_id/972347/video_id/978186/brand_id/31724',
|
||||
'info_dict': {
|
||||
'id': '774471',
|
||||
'ext': 'mp4',
|
||||
'title': 'Монологи на все времена. Концерт',
|
||||
'description': 'md5:18d8b5e6a41fb1faa53819471852d5d5',
|
||||
'duration': 2906,
|
||||
'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'https://player.vgtrk.com/flash2v/container.swf?id=774016&sid=russiatv&fbv=true&isPlay=true&ssl=false&i=560&acc_video_id=episode_id/972098/video_id/977760/brand_id/57638',
|
||||
'info_dict': {
|
||||
'id': '774016',
|
||||
'ext': 'mp4',
|
||||
'title': 'Чужой в семье Сталина',
|
||||
'description': '',
|
||||
'duration': 2539,
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://player.vgtrk.com/flash2v/container.swf?id=774016&sid=russiatv&fbv=true&isPlay=true&ssl=false&i=560&acc_video_id=episode_id/972098/video_id/977760/brand_id/57638',
|
||||
'info_dict': {
|
||||
'id': '774016',
|
||||
'ext': 'mp4',
|
||||
'title': 'Чужой в семье Сталина',
|
||||
'description': '',
|
||||
'duration': 2539,
|
||||
},
|
||||
{
|
||||
'url': 'http://player.rutv.ru/iframe/swf/id/766888/sid/hitech/?acc_video_id=4000',
|
||||
'info_dict': {
|
||||
'id': '766888',
|
||||
'ext': 'mp4',
|
||||
'title': 'Вести.net: интернет-гиганты начали перетягивание программных "одеял"',
|
||||
'description': 'md5:65ddd47f9830c4f42ed6475f8730c995',
|
||||
'duration': 279,
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://player.rutv.ru/iframe/swf/id/766888/sid/hitech/?acc_video_id=4000',
|
||||
'info_dict': {
|
||||
'id': '766888',
|
||||
'ext': 'mp4',
|
||||
'title': 'Вести.net: интернет-гиганты начали перетягивание программных "одеял"',
|
||||
'description': 'md5:65ddd47f9830c4f42ed6475f8730c995',
|
||||
'duration': 279,
|
||||
'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://player.rutv.ru/iframe/video/id/771852/start_zoom/true/showZoomBtn/false/sid/russiatv/?acc_video_id=episode_id/970443/video_id/975648/brand_id/5169',
|
||||
'info_dict': {
|
||||
'id': '771852',
|
||||
'ext': 'mp4',
|
||||
'title': 'Прямой эфир. Жертвы загадочной болезни: смерть от старости в 17 лет',
|
||||
'description': 'md5:b81c8c55247a4bd996b43ce17395b2d8',
|
||||
'duration': 3096,
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'http://player.rutv.ru/iframe/video/id/771852/start_zoom/true/showZoomBtn/false/sid/russiatv/?acc_video_id=episode_id/970443/video_id/975648/brand_id/5169',
|
||||
'info_dict': {
|
||||
'id': '771852',
|
||||
'ext': 'mp4',
|
||||
'title': 'Прямой эфир. Жертвы загадочной болезни: смерть от старости в 17 лет',
|
||||
'description': 'md5:b81c8c55247a4bd996b43ce17395b2d8',
|
||||
'duration': 3096,
|
||||
'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://player.rutv.ru/iframe/live/id/51499/showZoomBtn/false/isPlay/true/sid/sochi2014',
|
||||
'info_dict': {
|
||||
'id': '51499',
|
||||
'ext': 'flv',
|
||||
'title': 'Сочи-2014. Биатлон. Индивидуальная гонка. Мужчины ',
|
||||
'description': 'md5:9e0ed5c9d2fa1efbfdfed90c9a6d179c',
|
||||
},
|
||||
'skip': 'Translation has finished',
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'http://player.rutv.ru/iframe/live/id/51499/showZoomBtn/false/isPlay/true/sid/sochi2014',
|
||||
'info_dict': {
|
||||
'id': '51499',
|
||||
'ext': 'flv',
|
||||
'title': 'Сочи-2014. Биатлон. Индивидуальная гонка. Мужчины ',
|
||||
'description': 'md5:9e0ed5c9d2fa1efbfdfed90c9a6d179c',
|
||||
},
|
||||
{
|
||||
'url': 'http://player.rutv.ru/iframe/live/id/21/showZoomBtn/false/isPlay/true/',
|
||||
'info_dict': {
|
||||
'id': '21',
|
||||
'ext': 'mp4',
|
||||
'title': 're:^Россия 24. Прямой эфир [0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}$',
|
||||
'is_live': True,
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://player.rutv.ru/iframe/live/id/21/showZoomBtn/false/isPlay/true/',
|
||||
'info_dict': {
|
||||
'id': '21',
|
||||
'ext': 'mp4',
|
||||
'title': str,
|
||||
'is_live': True,
|
||||
},
|
||||
{
|
||||
'url': 'https://testplayer.vgtrk.com/iframe/live/id/19201/showZoomBtn/false/isPlay/true/',
|
||||
'only_matching': True,
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://testplayer.vgtrk.com/iframe/live/id/19201/showZoomBtn/false/isPlay/true/',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://istoriya-teatra.ru/news/item/f00/s05/n0000545/index.shtml',
|
||||
'info_dict': {
|
||||
'id': '1952012',
|
||||
'ext': 'mp4',
|
||||
'title': 'Новости культуры. Эфир от 10.10.2019 (23:30). Театр Сатиры отмечает день рождения премьерой',
|
||||
'description': 'md5:fced27112ff01ff8fc4a452fc088bad6',
|
||||
'duration': 191,
|
||||
'thumbnail': r're:https?://cdn-st2\.smotrim\.ru/.+\.jpg',
|
||||
},
|
||||
]
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
mobj = self._match_valid_url(url)
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
|
||||
class RuutuIE(InfoExtractor):
|
||||
_WORKING = False
|
||||
_VALID_URL = r'''(?x)
|
||||
https?://
|
||||
(?:
|
||||
@ -26,112 +27,111 @@ class RuutuIE(InfoExtractor):
|
||||
)
|
||||
(?P<id>\d+)
|
||||
'''
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'http://www.ruutu.fi/video/2058907',
|
||||
'md5': 'ab2093f39be1ca8581963451b3c0234f',
|
||||
'info_dict': {
|
||||
'id': '2058907',
|
||||
'ext': 'mp4',
|
||||
'title': 'Oletko aina halunnut tietää mitä tapahtuu vain hetki ennen lähetystä? - Nyt se selvisi!',
|
||||
'description': 'md5:cfc6ccf0e57a814360df464a91ff67d6',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'duration': 114,
|
||||
'age_limit': 0,
|
||||
'upload_date': '20150508',
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'http://www.ruutu.fi/video/2058907',
|
||||
'md5': 'ab2093f39be1ca8581963451b3c0234f',
|
||||
'info_dict': {
|
||||
'id': '2058907',
|
||||
'ext': 'mp4',
|
||||
'title': 'Oletko aina halunnut tietää mitä tapahtuu vain hetki ennen lähetystä? - Nyt se selvisi!',
|
||||
'description': 'md5:cfc6ccf0e57a814360df464a91ff67d6',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'duration': 114,
|
||||
'age_limit': 0,
|
||||
'upload_date': '20150508',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.ruutu.fi/video/2057306',
|
||||
'md5': '065a10ae4d5b8cfd9d0c3d332465e3d9',
|
||||
'info_dict': {
|
||||
'id': '2057306',
|
||||
'ext': 'mp4',
|
||||
'title': 'Superpesis: katso koko kausi Ruudussa',
|
||||
'description': 'md5:bfb7336df2a12dc21d18fa696c9f8f23',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'duration': 40,
|
||||
'age_limit': 0,
|
||||
'upload_date': '20150507',
|
||||
'series': 'Superpesis',
|
||||
'categories': ['Urheilu'],
|
||||
},
|
||||
}, {
|
||||
'url': 'http://www.ruutu.fi/video/2057306',
|
||||
'md5': '065a10ae4d5b8cfd9d0c3d332465e3d9',
|
||||
'info_dict': {
|
||||
'id': '2057306',
|
||||
'ext': 'mp4',
|
||||
'title': 'Superpesis: katso koko kausi Ruudussa',
|
||||
'description': 'md5:bfb7336df2a12dc21d18fa696c9f8f23',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'duration': 40,
|
||||
'age_limit': 0,
|
||||
'upload_date': '20150507',
|
||||
'series': 'Superpesis',
|
||||
'categories': ['Urheilu'],
|
||||
},
|
||||
{
|
||||
'url': 'http://www.supla.fi/supla/2231370',
|
||||
'md5': 'df14e782d49a2c0df03d3be2a54ef949',
|
||||
'info_dict': {
|
||||
'id': '2231370',
|
||||
'ext': 'mp4',
|
||||
'title': 'Osa 1: Mikael Jungner',
|
||||
'description': 'md5:7d90f358c47542e3072ff65d7b1bcffe',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'age_limit': 0,
|
||||
'upload_date': '20151012',
|
||||
'series': 'Läpivalaisu',
|
||||
},
|
||||
}, {
|
||||
'url': 'http://www.supla.fi/supla/2231370',
|
||||
'md5': 'df14e782d49a2c0df03d3be2a54ef949',
|
||||
'info_dict': {
|
||||
'id': '2231370',
|
||||
'ext': 'mp4',
|
||||
'title': 'Osa 1: Mikael Jungner',
|
||||
'description': 'md5:7d90f358c47542e3072ff65d7b1bcffe',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'age_limit': 0,
|
||||
'upload_date': '20151012',
|
||||
'series': 'Läpivalaisu',
|
||||
},
|
||||
}, {
|
||||
# Episode where <SourceFile> is "NOT-USED", but has other
|
||||
# downloadable sources available.
|
||||
{
|
||||
'url': 'http://www.ruutu.fi/video/3193728',
|
||||
'only_matching': True,
|
||||
'url': 'http://www.ruutu.fi/video/3193728',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# audio podcast
|
||||
'url': 'https://www.supla.fi/supla/3382410',
|
||||
'md5': 'b9d7155fed37b2ebf6021d74c4b8e908',
|
||||
'info_dict': {
|
||||
'id': '3382410',
|
||||
'ext': 'mp3',
|
||||
'title': 'Mikä ihmeen poltergeist?',
|
||||
'description': 'md5:bbb6963df17dfd0ecd9eb9a61bf14b52',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'age_limit': 0,
|
||||
'upload_date': '20190320',
|
||||
'series': 'Mysteeritarinat',
|
||||
'duration': 1324,
|
||||
},
|
||||
{
|
||||
# audio podcast
|
||||
'url': 'https://www.supla.fi/supla/3382410',
|
||||
'md5': 'b9d7155fed37b2ebf6021d74c4b8e908',
|
||||
'info_dict': {
|
||||
'id': '3382410',
|
||||
'ext': 'mp3',
|
||||
'title': 'Mikä ihmeen poltergeist?',
|
||||
'description': 'md5:bbb6963df17dfd0ecd9eb9a61bf14b52',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'age_limit': 0,
|
||||
'upload_date': '20190320',
|
||||
'series': 'Mysteeritarinat',
|
||||
'duration': 1324,
|
||||
},
|
||||
'expected_warnings': [
|
||||
'HTTP Error 502: Bad Gateway',
|
||||
'Failed to download m3u8 information',
|
||||
],
|
||||
'expected_warnings': [
|
||||
'HTTP Error 502: Bad Gateway',
|
||||
'Failed to download m3u8 information',
|
||||
],
|
||||
}, {
|
||||
'url': 'http://www.supla.fi/audio/2231370',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'https://static.nelonenmedia.fi/player/misc/embed_player.html?nid=3618790',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# episode
|
||||
'url': 'https://www.ruutu.fi/video/3401964',
|
||||
'info_dict': {
|
||||
'id': '3401964',
|
||||
'ext': 'mp4',
|
||||
'title': 'Temptation Island Suomi - Kausi 5 - Jakso 17',
|
||||
'description': 'md5:87cf01d5e1e88adf0c8a2937d2bd42ba',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'duration': 2582,
|
||||
'age_limit': 12,
|
||||
'upload_date': '20190508',
|
||||
'series': 'Temptation Island Suomi',
|
||||
'season_number': 5,
|
||||
'episode_number': 17,
|
||||
'categories': ['Reality ja tositapahtumat', 'Kotimaiset suosikit', 'Romantiikka ja parisuhde'],
|
||||
},
|
||||
{
|
||||
'url': 'http://www.supla.fi/audio/2231370',
|
||||
'only_matching': True,
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
{
|
||||
'url': 'https://static.nelonenmedia.fi/player/misc/embed_player.html?nid=3618790',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# premium
|
||||
'url': 'https://www.ruutu.fi/video/3618715',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Broken IE
|
||||
'url': 'https://www.hs.fi/maailma/art-2000011353059.html',
|
||||
'info_dict': {
|
||||
'id': '4746675',
|
||||
'ext': 'mp4',
|
||||
'title': 'Yhdysvaltojen Texasin osavaltiota ovat koetelleet tuhoisat tulvat',
|
||||
},
|
||||
{
|
||||
# episode
|
||||
'url': 'https://www.ruutu.fi/video/3401964',
|
||||
'info_dict': {
|
||||
'id': '3401964',
|
||||
'ext': 'mp4',
|
||||
'title': 'Temptation Island Suomi - Kausi 5 - Jakso 17',
|
||||
'description': 'md5:87cf01d5e1e88adf0c8a2937d2bd42ba',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'duration': 2582,
|
||||
'age_limit': 12,
|
||||
'upload_date': '20190508',
|
||||
'series': 'Temptation Island Suomi',
|
||||
'season_number': 5,
|
||||
'episode_number': 17,
|
||||
'categories': ['Reality ja tositapahtumat', 'Kotimaiset suosikit', 'Romantiikka ja parisuhde'],
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
},
|
||||
{
|
||||
# premium
|
||||
'url': 'https://www.ruutu.fi/video/3618715',
|
||||
'only_matching': True,
|
||||
},
|
||||
]
|
||||
}]
|
||||
_API_BASE = 'https://gatling.nelonenmedia.fi'
|
||||
|
||||
@classmethod
|
||||
|
@ -23,13 +23,10 @@ class SenateISVPIE(InfoExtractor):
|
||||
'id': 'judiciary031715',
|
||||
'ext': 'mp4',
|
||||
'title': 'ISVP',
|
||||
'thumbnail': r're:^https?://.*\.(?:jpg|png)$',
|
||||
'thumbnail': r're:https?://.+\.(?:jpe?g|png)',
|
||||
'_old_archive_ids': ['senategov judiciary031715'],
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
'expected_warnings': ['Failed to download m3u8 information'],
|
||||
}, {
|
||||
'url': 'http://www.senate.gov/isvp/?type=live&comm=commerce&filename=commerce011514.mp4&auto_play=false',
|
||||
@ -39,10 +36,6 @@ class SenateISVPIE(InfoExtractor):
|
||||
'title': 'Integrated Senate Video Player',
|
||||
'_old_archive_ids': ['senategov commerce011514'],
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'This video is not available.',
|
||||
}, {
|
||||
'url': 'http://www.senate.gov/isvp/?type=arch&comm=intel&filename=intel090613&hc_location=ufi',
|
||||
@ -60,7 +53,7 @@ class SenateISVPIE(InfoExtractor):
|
||||
'id': 'help090920',
|
||||
'ext': 'mp4',
|
||||
'title': 'ISVP',
|
||||
'thumbnail': 'https://www.help.senate.gov/assets/images/video-poster.png',
|
||||
'thumbnail': r're:https?://.+\.(?:jpe?g|png)',
|
||||
'_old_archive_ids': ['senategov help090920'],
|
||||
},
|
||||
}, {
|
||||
@ -68,6 +61,17 @@ class SenateISVPIE(InfoExtractor):
|
||||
'url': 'http://www.senate.gov/isvp?type=live&comm=banking&filename=banking012715',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://www.hsgac.senate.gov/subcommittees/bmfwra/hearings/match-ready-oversight-of-the-federal-governments-border-management-and-personnel-readiness-efforts-for-the-decade-of-sports/',
|
||||
'info_dict': {
|
||||
'id': 'govtaff061025',
|
||||
'ext': 'mp4',
|
||||
'title': 'ISVP',
|
||||
'thumbnail': r're:https?://.+\.(?:jpe?g|png)',
|
||||
'_old_archive_ids': ['senategov govtaff061025'],
|
||||
},
|
||||
}]
|
||||
|
||||
_COMMITTEES = {
|
||||
'ag': ('76440', 'https://ag-f.akamaihd.net', '2036803', 'agriculture'),
|
||||
@ -150,10 +154,10 @@ class SenateGovIE(InfoExtractor):
|
||||
'id': 'help090920',
|
||||
'display_id': 'vaccines-saving-lives-ensuring-confidence-and-protecting-public-health',
|
||||
'title': 'Vaccines: Saving Lives, Ensuring Confidence, and Protecting Public Health',
|
||||
'description': 'The U.S. Senate Committee on Health, Education, Labor & Pensions',
|
||||
'description': 'Full Committee Hearing on September 9, 2020 at 6:00 AM',
|
||||
'ext': 'mp4',
|
||||
'age_limit': 0,
|
||||
'thumbnail': 'https://www.help.senate.gov/assets/images/sharelogo.jpg',
|
||||
'thumbnail': r're:https?://.+\.(?:jpe?g|png)',
|
||||
'_old_archive_ids': ['senategov help090920'],
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
@ -165,7 +169,7 @@ class SenateGovIE(InfoExtractor):
|
||||
'title': 'Review of the FY2019 Budget Request for the U.S. Army',
|
||||
'ext': 'mp4',
|
||||
'age_limit': 0,
|
||||
'thumbnail': 'https://www.appropriations.senate.gov/themes/appropriations/images/video-poster-flash-fit.png',
|
||||
'thumbnail': r're:https?://.+\.(?:jpe?g|png)',
|
||||
'_old_archive_ids': ['senategov appropsA051518'],
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
@ -178,7 +182,7 @@ class SenateGovIE(InfoExtractor):
|
||||
'title': '21st Century Communities: Public Transportation Infrastructure Investment and FAST Act Reauthorization',
|
||||
'description': 'The Official website of The United States Committee on Banking, Housing, and Urban Affairs',
|
||||
'ext': 'mp4',
|
||||
'thumbnail': 'https://www.banking.senate.gov/themes/banking/images/sharelogo.jpg',
|
||||
'thumbnail': r're:https?://.+\.(?:jpe?g|png)',
|
||||
'age_limit': 0,
|
||||
'_old_archive_ids': ['senategov banking041521'],
|
||||
},
|
||||
|
@ -76,17 +76,18 @@ class SimplecastIE(SimplecastBaseIE):
|
||||
'id': 'b6dc49a2-9404-4853-9aa9-9cfc097be876',
|
||||
'ext': 'mp3',
|
||||
'title': 'Errant Signal - Chris Franklin & New Wave Video Essays',
|
||||
'channel_url': 'https://the-re-bind-io-podcast.simplecast.com',
|
||||
'episode': 'Episode 1',
|
||||
'episode_number': 1,
|
||||
'episode_id': 'b6dc49a2-9404-4853-9aa9-9cfc097be876',
|
||||
'description': 'md5:34752789d3d2702e2d2c975fbd14f357',
|
||||
'season': 'Season 1',
|
||||
'season_number': 1,
|
||||
'season_id': 'e23df0da-bae4-4531-8bbf-71364a88dc13',
|
||||
'series': 'The RE:BIND.io Podcast',
|
||||
'duration': 5343,
|
||||
'timestamp': 1580979475,
|
||||
'upload_date': '20200206',
|
||||
'webpage_url': r're:^https?://the-re-bind-io-podcast\.simplecast\.com/episodes/errant-signal-chris-franklin-new-wave-video-essays',
|
||||
'channel_url': r're:^https?://the-re-bind-io-podcast\.simplecast\.com$',
|
||||
}
|
||||
_TESTS = [{
|
||||
'url': 'https://api.simplecast.com/episodes/b6dc49a2-9404-4853-9aa9-9cfc097be876',
|
||||
@ -96,6 +97,29 @@ class SimplecastIE(SimplecastBaseIE):
|
||||
'url': 'https://player.simplecast.com/b6dc49a2-9404-4853-9aa9-9cfc097be876',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://poddtoppen.se/podcast/1498417306/the-rebindio-podcast/errant-signal-chris-franklin-new-wave-video-essays',
|
||||
'md5': '8c93be7be54251bf29ee97464eabe61c',
|
||||
'info_dict': {
|
||||
'id': 'b6dc49a2-9404-4853-9aa9-9cfc097be876',
|
||||
'ext': 'mp3',
|
||||
'title': 'Errant Signal - Chris Franklin & New Wave Video Essays',
|
||||
'channel_url': 'https://the-re-bind-io-podcast.simplecast.com',
|
||||
'description': 'md5:34752789d3d2702e2d2c975fbd14f357',
|
||||
'display_id': 'errant-signal-chris-franklin-new-wave-video-essays',
|
||||
'duration': 5343,
|
||||
'episode': 'Episode 1',
|
||||
'episode_id': 'b6dc49a2-9404-4853-9aa9-9cfc097be876',
|
||||
'episode_number': 1,
|
||||
'season': 'Season 1',
|
||||
'season_id': 'e23df0da-bae4-4531-8bbf-71364a88dc13',
|
||||
'season_number': 1,
|
||||
'series': 'The RE:BIND.io Podcast',
|
||||
'timestamp': 1580979475,
|
||||
'upload_date': '20200206',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
episode_id = self._match_id(url)
|
||||
@ -106,11 +130,11 @@ def _real_extract(self, url):
|
||||
class SimplecastEpisodeIE(SimplecastBaseIE):
|
||||
IE_NAME = 'simplecast:episode'
|
||||
_VALID_URL = r'https?://(?!api\.)[^/]+\.simplecast\.com/episodes/(?P<id>[^/?&#]+)'
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'https://the-re-bind-io-podcast.simplecast.com/episodes/errant-signal-chris-franklin-new-wave-video-essays',
|
||||
'md5': '8c93be7be54251bf29ee97464eabe61c',
|
||||
'info_dict': SimplecastIE._COMMON_TEST_INFO,
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
mobj = self._match_valid_url(url)
|
||||
@ -124,7 +148,7 @@ class SimplecastPodcastIE(SimplecastBaseIE):
|
||||
_VALID_URL = r'https?://(?!(?:api|cdn|embed|feeds|player)\.)(?P<id>[^/]+)\.simplecast\.com(?!/episodes/[^/?&#]+)'
|
||||
_TESTS = [{
|
||||
'url': 'https://the-re-bind-io-podcast.simplecast.com',
|
||||
'playlist_mincount': 33,
|
||||
'playlist_mincount': 32,
|
||||
'info_dict': {
|
||||
'id': '07d28d26-7522-42eb-8c53-2bdcfc81c43c',
|
||||
'title': 'The RE:BIND.io Podcast',
|
||||
|
@ -26,11 +26,47 @@
|
||||
class SoundcloudEmbedIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:w|player|p)\.soundcloud\.com/player/?.*?\burl=(?P<id>.+)'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+src=(["\'])(?P<url>(?:https?://)?(?:w\.)?soundcloud\.com/player.+?)\1']
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
# from https://www.soundi.fi/uutiset/ennakkokuuntelussa-timo-kaukolammen-station-to-station-to-station-julkaisua-juhlitaan-tanaan-g-livelabissa/
|
||||
'url': 'https://w.soundcloud.com/player/?visual=true&url=https%3A%2F%2Fapi.soundcloud.com%2Fplaylists%2F922213810&show_artwork=true&maxwidth=640&maxheight=960&dnt=1&secret_token=s-ziYey',
|
||||
'only_matching': True,
|
||||
}
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://news.sophos.com/en-us/2023/08/10/s3-ep147-what-if-you-type-in-your-password-during-a-meeting/',
|
||||
'info_dict': {
|
||||
'id': '1588847423',
|
||||
'ext': 'm4a',
|
||||
'title': 'S3 Ep147: What if you type in your password during a meeting?',
|
||||
'artists': ['Naked Security'],
|
||||
'description': 'md5:6931a0630b920413c8c904407bf4b3b2',
|
||||
'duration': 942.762,
|
||||
'genres': ['Technology'],
|
||||
'license': 'all-rights-reserved',
|
||||
'repost_count': int,
|
||||
'tags': 'count:4',
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'timestamp': 1691624365,
|
||||
'track': 'S3 Ep147: What if you type in your password during a meeting?',
|
||||
'upload_date': '20230809',
|
||||
'uploader': 'Naked Security',
|
||||
'uploader_id': '61390843',
|
||||
'uploader_url': 'https://soundcloud.com/sophossecurity',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://www.guitarplayer.com/lessons/november-2023-guitar-player-lesson-audio',
|
||||
'info_dict': {
|
||||
'id': '1695754080',
|
||||
'title': 'A Tribute to Brian Setzer’s Guitar Mastery',
|
||||
'album': 'A Tribute to Brian Setzer’s Guitar Mastery',
|
||||
'album_artists': ['Guitar Player'],
|
||||
'album_type': 'playlist',
|
||||
'description': '',
|
||||
'uploader': 'Guitar Player',
|
||||
'uploader_id': '489924156',
|
||||
},
|
||||
'playlist_mincount': 7,
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
query = parse_qs(url)
|
||||
@ -407,269 +443,256 @@ class SoundcloudIE(SoundcloudBaseIE):
|
||||
)
|
||||
'''
|
||||
IE_NAME = 'soundcloud'
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy',
|
||||
'md5': 'de9bac153e7427a7333b4b0c1b6a18d2',
|
||||
'info_dict': {
|
||||
'id': '62986583',
|
||||
'ext': 'opus',
|
||||
'title': 'Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1',
|
||||
'track': 'Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1',
|
||||
'description': 'No Downloads untill we record the finished version this weekend, i was too pumped n i had to post it , earl is prolly gonna b hella p.o\'d',
|
||||
'uploader': 'E.T. ExTerrestrial Music',
|
||||
'uploader_id': '1571244',
|
||||
'timestamp': 1349920598,
|
||||
'upload_date': '20121011',
|
||||
'duration': 143.216,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'thumbnail': 'https://i1.sndcdn.com/artworks-000031955188-rwb18x-original.jpg',
|
||||
'uploader_url': 'https://soundcloud.com/ethmusic',
|
||||
'tags': 'count:14',
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy',
|
||||
'md5': 'de9bac153e7427a7333b4b0c1b6a18d2',
|
||||
'info_dict': {
|
||||
'id': '62986583',
|
||||
'ext': 'opus',
|
||||
'title': 'Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1',
|
||||
'track': 'Lostin Powers - She so Heavy (SneakPreview) Adrian Ackers Blueprint 1',
|
||||
'description': 'md5:7b6074e00887ad79f59b647c8fb6d5ae',
|
||||
'uploader': 'E.T. ExTerrestrial Music',
|
||||
'uploader_id': '1571244',
|
||||
'timestamp': 1349920598,
|
||||
'upload_date': '20121011',
|
||||
'duration': 143.216,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'uploader_url': 'https://soundcloud.com/ethmusic',
|
||||
'tags': 'count:14',
|
||||
},
|
||||
# geo-restricted
|
||||
{
|
||||
'url': 'https://soundcloud.com/the-concept-band/goldrushed-mastered?in=the-concept-band/sets/the-royal-concept-ep',
|
||||
'info_dict': {
|
||||
'id': '47127627',
|
||||
'ext': 'opus',
|
||||
'title': 'Goldrushed',
|
||||
'track': 'Goldrushed',
|
||||
'description': 'From Stockholm Sweden\r\nPovel / Magnus / Filip / David\r\nwww.theroyalconcept.com',
|
||||
'uploader': 'The Royal Concept',
|
||||
'uploader_id': '9615865',
|
||||
'timestamp': 1337635207,
|
||||
'upload_date': '20120521',
|
||||
'duration': 227.103,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/the-concept-band',
|
||||
'thumbnail': 'https://i1.sndcdn.com/artworks-v8bFHhXm7Au6-0-original.jpg',
|
||||
'genres': ['Alternative'],
|
||||
'artists': ['The Royal Concept'],
|
||||
'tags': [],
|
||||
},
|
||||
}, {
|
||||
# Geo-restricted
|
||||
'url': 'https://soundcloud.com/the-concept-band/goldrushed-mastered?in=the-concept-band/sets/the-royal-concept-ep',
|
||||
'info_dict': {
|
||||
'id': '47127627',
|
||||
'ext': 'opus',
|
||||
'title': 'Goldrushed',
|
||||
'track': 'Goldrushed',
|
||||
'description': 'md5:c0080b79a3710811d60234f94f391a40',
|
||||
'uploader': 'The Royal Concept',
|
||||
'uploader_id': '9615865',
|
||||
'timestamp': 1337635207,
|
||||
'upload_date': '20120521',
|
||||
'duration': 227.103,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/the-concept-band',
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'genres': ['Alternative'],
|
||||
'artists': ['The Royal Concept'],
|
||||
'tags': [],
|
||||
},
|
||||
}, {
|
||||
# private link
|
||||
{
|
||||
'url': 'https://soundcloud.com/jaimemf/youtube-dl-test-video-a-y-baw/s-8Pjrp',
|
||||
'md5': 'aa0dd32bfea9b0c5ef4f02aacd080604',
|
||||
'info_dict': {
|
||||
'id': '123998367',
|
||||
'ext': 'mp3',
|
||||
'title': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'track': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'description': 'test chars: "\'/\\ä↭',
|
||||
'uploader': 'jaimeMF',
|
||||
'uploader_id': '69767071',
|
||||
'timestamp': 1386604920,
|
||||
'upload_date': '20131209',
|
||||
'duration': 9.927,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/jaimemf',
|
||||
'thumbnail': 'https://a1.sndcdn.com/images/default_avatar_large.png',
|
||||
'genres': ['youtubedl'],
|
||||
'tags': [],
|
||||
},
|
||||
'url': 'https://soundcloud.com/jaimemf/youtube-dl-test-video-a-y-baw/s-8Pjrp',
|
||||
'md5': 'aa0dd32bfea9b0c5ef4f02aacd080604',
|
||||
'info_dict': {
|
||||
'id': '123998367',
|
||||
'ext': 'mp3',
|
||||
'title': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'track': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'description': 'md5:610b729ee06ac4cedaa28607212948f3',
|
||||
'uploader': 'jaimeMF',
|
||||
'uploader_id': '69767071',
|
||||
'timestamp': 1386604920,
|
||||
'upload_date': '20131209',
|
||||
'duration': 9.927,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/jaimemf',
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'genres': ['youtubedl'],
|
||||
'tags': [],
|
||||
},
|
||||
}, {
|
||||
# private link (alt format)
|
||||
{
|
||||
'url': 'https://api.soundcloud.com/tracks/123998367?secret_token=s-8Pjrp',
|
||||
'md5': 'aa0dd32bfea9b0c5ef4f02aacd080604',
|
||||
'info_dict': {
|
||||
'id': '123998367',
|
||||
'ext': 'mp3',
|
||||
'title': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'track': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'description': 'test chars: "\'/\\ä↭',
|
||||
'uploader': 'jaimeMF',
|
||||
'uploader_id': '69767071',
|
||||
'timestamp': 1386604920,
|
||||
'upload_date': '20131209',
|
||||
'duration': 9.927,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/jaimemf',
|
||||
'thumbnail': 'https://a1.sndcdn.com/images/default_avatar_large.png',
|
||||
'genres': ['youtubedl'],
|
||||
'tags': [],
|
||||
},
|
||||
'url': 'https://api.soundcloud.com/tracks/123998367?secret_token=s-8Pjrp',
|
||||
'md5': 'aa0dd32bfea9b0c5ef4f02aacd080604',
|
||||
'info_dict': {
|
||||
'id': '123998367',
|
||||
'ext': 'mp3',
|
||||
'title': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'track': 'Youtube - Dl Test Video \'\' Ä↭',
|
||||
'description': 'md5:610b729ee06ac4cedaa28607212948f3',
|
||||
'uploader': 'jaimeMF',
|
||||
'uploader_id': '69767071',
|
||||
'timestamp': 1386604920,
|
||||
'upload_date': '20131209',
|
||||
'duration': 9.927,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/jaimemf',
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'genres': ['youtubedl'],
|
||||
'tags': [],
|
||||
},
|
||||
}, {
|
||||
# downloadable song
|
||||
{
|
||||
'url': 'https://soundcloud.com/the80m/the-following',
|
||||
'md5': 'ecb87d7705d5f53e6c02a63760573c75', # wav: '9ffcddb08c87d74fb5808a3c183a1d04'
|
||||
'info_dict': {
|
||||
'id': '343609555',
|
||||
'ext': 'opus', # wav original available with auth
|
||||
'title': 'The Following',
|
||||
'track': 'The Following',
|
||||
'description': '',
|
||||
'uploader': '80M',
|
||||
'uploader_id': '312384765',
|
||||
'uploader_url': 'https://soundcloud.com/the80m',
|
||||
'upload_date': '20170922',
|
||||
'timestamp': 1506120436,
|
||||
'duration': 397.228,
|
||||
'thumbnail': 'https://i1.sndcdn.com/artworks-000243916348-ktoo7d-original.jpg',
|
||||
'license': 'all-rights-reserved',
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'view_count': int,
|
||||
'genres': ['Dance & EDM'],
|
||||
'artists': ['80M'],
|
||||
'tags': ['80M', 'EDM', 'Dance', 'Music'],
|
||||
},
|
||||
'expected_warnings': ['Original download format is only available for registered users'],
|
||||
'url': 'https://soundcloud.com/the80m/the-following',
|
||||
'md5': 'ecb87d7705d5f53e6c02a63760573c75', # wav: '9ffcddb08c87d74fb5808a3c183a1d04'
|
||||
'info_dict': {
|
||||
'id': '343609555',
|
||||
'ext': 'opus', # wav original available with auth
|
||||
'title': 'The Following',
|
||||
'track': 'The Following',
|
||||
'description': '',
|
||||
'uploader': '80M',
|
||||
'uploader_id': '312384765',
|
||||
'uploader_url': 'https://soundcloud.com/the80m',
|
||||
'upload_date': '20170922',
|
||||
'timestamp': 1506120436,
|
||||
'duration': 397.228,
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'license': 'all-rights-reserved',
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'view_count': int,
|
||||
'genres': ['Dance & EDM'],
|
||||
'artists': ['80M'],
|
||||
'tags': 'count:4',
|
||||
},
|
||||
'expected_warnings': ['Original download format is only available for registered users'],
|
||||
}, {
|
||||
# private link, downloadable format
|
||||
# tags with spaces (e.g. "Uplifting Trance", "Ori Uplift")
|
||||
{
|
||||
'url': 'https://soundcloud.com/oriuplift/uponly-238-no-talking-wav/s-AyZUd',
|
||||
'md5': '2e1530d0e9986a833a67cb34fc90ece0', # wav: '64a60b16e617d41d0bef032b7f55441e'
|
||||
'info_dict': {
|
||||
'id': '340344461',
|
||||
'ext': 'opus', # wav original available with auth
|
||||
'title': 'Uplifting Only 238 [No Talking] (incl. Alex Feed Guestmix) (Aug 31, 2017) [wav]',
|
||||
'track': 'Uplifting Only 238 [No Talking] (incl. Alex Feed Guestmix) (Aug 31, 2017) [wav]',
|
||||
'description': 'md5:fa20ee0fca76a3d6df8c7e57f3715366',
|
||||
'uploader': 'Ori Uplift Music',
|
||||
'uploader_id': '12563093',
|
||||
'timestamp': 1504206263,
|
||||
'upload_date': '20170831',
|
||||
'duration': 7449.096,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'thumbnail': 'https://i1.sndcdn.com/artworks-000240712245-kedn4p-original.jpg',
|
||||
'uploader_url': 'https://soundcloud.com/oriuplift',
|
||||
'genres': ['Trance'],
|
||||
'artists': ['Ori Uplift'],
|
||||
'tags': ['Orchestral', 'Emotional', 'Uplifting Trance', 'Trance', 'Ori Uplift', 'UpOnly'],
|
||||
},
|
||||
'expected_warnings': ['Original download format is only available for registered users'],
|
||||
'url': 'https://soundcloud.com/oriuplift/uponly-238-no-talking-wav/s-AyZUd',
|
||||
'md5': '2e1530d0e9986a833a67cb34fc90ece0', # wav: '64a60b16e617d41d0bef032b7f55441e'
|
||||
'info_dict': {
|
||||
'id': '340344461',
|
||||
'ext': 'opus', # wav original available with auth
|
||||
'title': 'Uplifting Only 238 [No Talking] (incl. Alex Feed Guestmix) (Aug 31, 2017) [wav]',
|
||||
'track': 'Uplifting Only 238 [No Talking] (incl. Alex Feed Guestmix) (Aug 31, 2017) [wav]',
|
||||
'description': 'md5:fa20ee0fca76a3d6df8c7e57f3715366',
|
||||
'uploader': 'Ori Uplift Music',
|
||||
'uploader_id': '12563093',
|
||||
'timestamp': 1504206263,
|
||||
'upload_date': '20170831',
|
||||
'duration': 7449.096,
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'uploader_url': 'https://soundcloud.com/oriuplift',
|
||||
'genres': ['Trance'],
|
||||
'artists': ['Ori Uplift'],
|
||||
'tags': 'count:6',
|
||||
},
|
||||
'expected_warnings': ['Original download format is only available for registered users'],
|
||||
}, {
|
||||
# no album art, use avatar pic for thumbnail
|
||||
{
|
||||
'url': 'https://soundcloud.com/garyvee/sideways-prod-mad-real',
|
||||
'md5': '59c7872bc44e5d99b7211891664760c2',
|
||||
'info_dict': {
|
||||
'id': '309699954',
|
||||
'ext': 'mp3',
|
||||
'title': 'Sideways (Prod. Mad Real)',
|
||||
'track': 'Sideways (Prod. Mad Real)',
|
||||
'description': 'md5:d41d8cd98f00b204e9800998ecf8427e',
|
||||
'uploader': 'garyvee',
|
||||
'uploader_id': '2366352',
|
||||
'timestamp': 1488152409,
|
||||
'upload_date': '20170226',
|
||||
'duration': 207.012,
|
||||
'thumbnail': r're:https?://.*\.jpg',
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/garyvee',
|
||||
'artists': ['MadReal'],
|
||||
'tags': [],
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'url': 'https://soundcloud.com/garyvee/sideways-prod-mad-real',
|
||||
'md5': '59c7872bc44e5d99b7211891664760c2',
|
||||
'info_dict': {
|
||||
'id': '309699954',
|
||||
'ext': 'mp3',
|
||||
'title': 'Sideways (Prod. Mad Real)',
|
||||
'track': 'Sideways (Prod. Mad Real)',
|
||||
'description': 'md5:d41d8cd98f00b204e9800998ecf8427e',
|
||||
'uploader': 'garyvee',
|
||||
'uploader_id': '2366352',
|
||||
'timestamp': 1488152409,
|
||||
'upload_date': '20170226',
|
||||
'duration': 207.012,
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'uploader_url': 'https://soundcloud.com/garyvee',
|
||||
'artists': ['MadReal'],
|
||||
'tags': [],
|
||||
},
|
||||
{
|
||||
'url': 'https://soundcloud.com/giovannisarani/mezzo-valzer',
|
||||
'md5': '8227c3473a4264df6b02ad7e5b7527ac',
|
||||
'info_dict': {
|
||||
'id': '583011102',
|
||||
'ext': 'opus',
|
||||
'title': 'Mezzo Valzer',
|
||||
'track': 'Mezzo Valzer',
|
||||
'description': 'md5:f4d5f39d52e0ccc2b4f665326428901a',
|
||||
'uploader': 'Giovanni Sarani',
|
||||
'uploader_id': '3352531',
|
||||
'timestamp': 1551394171,
|
||||
'upload_date': '20190228',
|
||||
'duration': 180.157,
|
||||
'thumbnail': r're:https?://.*\.jpg',
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'genres': ['Piano'],
|
||||
'uploader_url': 'https://soundcloud.com/giovannisarani',
|
||||
'tags': 'count:10',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
'url': 'https://soundcloud.com/giovannisarani/mezzo-valzer',
|
||||
'md5': '8227c3473a4264df6b02ad7e5b7527ac',
|
||||
'info_dict': {
|
||||
'id': '583011102',
|
||||
'ext': 'm4a',
|
||||
'title': 'Mezzo Valzer',
|
||||
'track': 'Mezzo Valzer',
|
||||
'description': 'md5:f4d5f39d52e0ccc2b4f665326428901a',
|
||||
'uploader': 'Giovanni Sarani',
|
||||
'uploader_id': '3352531',
|
||||
'timestamp': 1551394171,
|
||||
'upload_date': '20190228',
|
||||
'duration': 180.134,
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'license': 'all-rights-reserved',
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'comment_count': int,
|
||||
'repost_count': int,
|
||||
'genres': ['Piano'],
|
||||
'uploader_url': 'https://soundcloud.com/giovannisarani',
|
||||
'tags': 'count:10',
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}, {
|
||||
# .png "original" artwork, 160kbps m4a HLS format
|
||||
{
|
||||
'url': 'https://soundcloud.com/skorxh/audio-dealer',
|
||||
'info_dict': {
|
||||
'id': '2011421339',
|
||||
'ext': 'm4a',
|
||||
'title': 'audio dealer',
|
||||
'description': '',
|
||||
'uploader': '$KORCH',
|
||||
'uploader_id': '150292288',
|
||||
'uploader_url': 'https://soundcloud.com/skorxh',
|
||||
'comment_count': int,
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'repost_count': int,
|
||||
'duration': 213.469,
|
||||
'tags': [],
|
||||
'artists': ['$KORXH'],
|
||||
'track': 'audio dealer',
|
||||
'timestamp': 1737143201,
|
||||
'upload_date': '20250117',
|
||||
'license': 'all-rights-reserved',
|
||||
'thumbnail': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-original.png',
|
||||
'thumbnails': [
|
||||
{'id': 'mini', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-mini.jpg'},
|
||||
{'id': 'tiny', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-tiny.jpg'},
|
||||
{'id': 'small', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-small.jpg'},
|
||||
{'id': 'badge', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-badge.jpg'},
|
||||
{'id': 't67x67', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-t67x67.jpg'},
|
||||
{'id': 'large', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-large.jpg'},
|
||||
{'id': 't300x300', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-t300x300.jpg'},
|
||||
{'id': 'crop', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-crop.jpg'},
|
||||
{'id': 't500x500', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-t500x500.jpg'},
|
||||
{'id': 'original', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-original.png'},
|
||||
],
|
||||
},
|
||||
'params': {'skip_download': 'm3u8', 'format': 'hls_aac_160k'},
|
||||
'url': 'https://soundcloud.com/skorxh/audio-dealer',
|
||||
'info_dict': {
|
||||
'id': '2011421339',
|
||||
'ext': 'm4a',
|
||||
'title': 'audio dealer',
|
||||
'description': '',
|
||||
'uploader': '$KORCH',
|
||||
'uploader_id': '150292288',
|
||||
'uploader_url': 'https://soundcloud.com/skorxh',
|
||||
'comment_count': int,
|
||||
'view_count': int,
|
||||
'like_count': int,
|
||||
'repost_count': int,
|
||||
'duration': 213.469,
|
||||
'tags': [],
|
||||
'artists': ['$KORXH'],
|
||||
'track': 'audio dealer',
|
||||
'timestamp': 1737143201,
|
||||
'upload_date': '20250117',
|
||||
'license': 'all-rights-reserved',
|
||||
'thumbnail': r're:https?://[ai]1\.sndcdn\.com/.+\.(?:jpg|png)',
|
||||
'thumbnails': [
|
||||
{'id': 'mini', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-mini.jpg'},
|
||||
{'id': 'tiny', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-tiny.jpg'},
|
||||
{'id': 'small', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-small.jpg'},
|
||||
{'id': 'badge', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-badge.jpg'},
|
||||
{'id': 't67x67', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-t67x67.jpg'},
|
||||
{'id': 'large', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-large.jpg'},
|
||||
{'id': 't300x300', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-t300x300.jpg'},
|
||||
{'id': 'crop', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-crop.jpg'},
|
||||
{'id': 't500x500', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-t500x500.jpg'},
|
||||
{'id': 'original', 'url': 'https://i1.sndcdn.com/artworks-a1wKGMYNreDLTMrT-fGjRiw-original.png'},
|
||||
],
|
||||
},
|
||||
{
|
||||
# AAC HQ format available (account with active subscription needed)
|
||||
'url': 'https://soundcloud.com/wandw/the-chainsmokers-ft-daya-dont-let-me-down-ww-remix-1',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
# Go+ (account with active subscription needed)
|
||||
'url': 'https://soundcloud.com/taylorswiftofficial/look-what-you-made-me-do',
|
||||
'only_matching': True,
|
||||
},
|
||||
]
|
||||
'params': {'skip_download': 'm3u8', 'format': 'hls_aac_160k'},
|
||||
}, {
|
||||
# AAC HQ format available (account with active subscription needed)
|
||||
'url': 'https://soundcloud.com/wandw/the-chainsmokers-ft-daya-dont-let-me-down-ww-remix-1',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
# Go+ (account with active subscription needed)
|
||||
'url': 'https://soundcloud.com/taylorswiftofficial/look-what-you-made-me-do',
|
||||
'only_matching': True,
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
mobj = self._match_valid_url(url)
|
||||
@ -907,7 +930,7 @@ class SoundcloudUserIE(SoundcloudPagedPlaylistBaseIE):
|
||||
'id': '7098329',
|
||||
'title': 'Grynpyret (Spotlight)',
|
||||
},
|
||||
'playlist_mincount': 1,
|
||||
'playlist_mincount': 0,
|
||||
}, {
|
||||
'url': 'https://soundcloud.com/one-thousand-and-one/comments',
|
||||
'info_dict': {
|
||||
@ -998,7 +1021,7 @@ class SoundcloudRelatedIE(SoundcloudPagedPlaylistBaseIE):
|
||||
'id': '1084577272',
|
||||
'title': 'Sexapil - Pingers 5 (Recommended)',
|
||||
},
|
||||
'playlist_mincount': 50,
|
||||
'playlist_mincount': 49,
|
||||
}, {
|
||||
'url': 'https://soundcloud.com/wajang/sexapil-pingers-5/albums',
|
||||
'info_dict': {
|
||||
@ -1045,7 +1068,7 @@ class SoundcloudPlaylistIE(SoundcloudPlaylistBaseIE):
|
||||
'info_dict': {
|
||||
'id': '4110309',
|
||||
'title': 'TILT Brass - Bowery Poetry Club, August \'03 [Non-Site SCR 02]',
|
||||
'description': 're:.*?TILT Brass - Bowery Poetry Club',
|
||||
'description': 'md5:e4373f7177fe3db292a8552b4ec41bc6',
|
||||
'uploader': 'Non-Site Records',
|
||||
'uploader_id': '33660914',
|
||||
'album_artists': ['Non-Site Records'],
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
|
||||
class SportBoxIE(InfoExtractor):
|
||||
_WORKING = False
|
||||
_VALID_URL = r'https?://(?:news\.sportbox|matchtv)\.ru/vdl/player(?:/[^/]+/|\?.*?\bn?id=)(?P<id>\d+)'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+src="(?P<url>https?://(?:news\.sportbox|matchtv)\.ru/vdl/player[^"]+)"']
|
||||
_TESTS = [{
|
||||
@ -17,7 +18,7 @@ class SportBoxIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'В Новороссийске прошел детский турнир «Поле славы боевой»',
|
||||
'description': 'В Новороссийске прошел детский турнир «Поле славы боевой»',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'duration': 292,
|
||||
'view_count': int,
|
||||
'timestamp': 1426237001,
|
||||
@ -40,6 +41,15 @@ class SportBoxIE(InfoExtractor):
|
||||
'url': 'https://matchtv.ru/vdl/player/media/109158',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://www.vestifinance.ru/articles/25753',
|
||||
'info_dict': {
|
||||
'id': '25753',
|
||||
'title': 'Прямые трансляции с Форума-выставки "Госзаказ-2013"',
|
||||
},
|
||||
'playlist_count': 3,
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -30,11 +30,12 @@ class SpringboardPlatformIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Redman "BUD like YOU" "Usher Good Kisser" REMIX',
|
||||
'description': 'Redman "BUD like YOU" "Usher Good Kisser" REMIX',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'timestamp': 1409132328,
|
||||
'upload_date': '20140827',
|
||||
'duration': 193,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://cms.springboardplatform.com/embed_iframe/159/video/981017/rab007/rapbasement.com/1/1',
|
||||
'only_matching': True,
|
||||
@ -45,6 +46,15 @@ class SpringboardPlatformIE(InfoExtractor):
|
||||
'url': 'http://cms.springboardplatform.com/xml_feeds_advanced/index/159/rss3/981017/0/0/1/',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.kidzworld.com/article/30935-trolls-the-beat-goes-on-interview-skylar-astin-and-amanda-leighton',
|
||||
'info_dict': {
|
||||
'id': '1731611',
|
||||
'ext': 'mp4',
|
||||
'title': 'Official Trailer | TROLLS: THE BEAT GOES ON!',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
mobj = self._match_valid_url(url)
|
||||
|
@ -63,6 +63,29 @@ class SubstackIE(InfoExtractor):
|
||||
'uploader_id': '61579',
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.mollymovieclub.com/p/interstellar',
|
||||
'info_dict': {
|
||||
'id': '53602801',
|
||||
'ext': 'mpga',
|
||||
'title': 'Interstellar',
|
||||
'description': 'Listen now | Episode One',
|
||||
'thumbnail': r're:https?://.+\.jpeg',
|
||||
'uploader': 'Molly Movie Club',
|
||||
'uploader_id': '839621',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.blockedandreported.org/p/episode-117-lets-talk-about-depp',
|
||||
'info_dict': {
|
||||
'id': '57962052',
|
||||
'ext': 'mpga',
|
||||
'title': 'md5:855b2756f0ee10f6723fa00b16266f8d',
|
||||
'description': 'The takes the takes the takes',
|
||||
'thumbnail': r're:https?://.+\.jpeg',
|
||||
'uploader': 'Blocked and Reported',
|
||||
'uploader_id': '500230',
|
||||
},
|
||||
}]
|
||||
|
||||
@classmethod
|
||||
def _extract_embed_urls(cls, url, webpage):
|
||||
|
@ -32,12 +32,12 @@ class TedTalkIE(TedBaseIE):
|
||||
'title': 'How to break down barriers and not accept limits',
|
||||
'description': 'md5:000707cece219d1e165b11550d612331',
|
||||
'view_count': int,
|
||||
'tags': ['personal growth', 'equality', 'activism', 'motivation', 'social change', 'sports'],
|
||||
'tags': 'count:6',
|
||||
'uploader': 'Candace Parker',
|
||||
'duration': 676.0,
|
||||
'duration': 679,
|
||||
'thumbnail': r're:https?://pi\.tedcdn\.com/.+\.jpg',
|
||||
'upload_date': '20220114',
|
||||
'release_date': '20211201',
|
||||
'thumbnail': r're:http.*\.jpg',
|
||||
},
|
||||
}]
|
||||
|
||||
@ -162,7 +162,7 @@ class TedSeriesIE(TedBaseIE):
|
||||
'id': '8_2',
|
||||
'title': 'The Way We Work Season 2',
|
||||
'series': 'The Way We Work',
|
||||
'description': 'md5:59469256e533e1a48c4aa926a382234c',
|
||||
'description': 'md5:36678fe045f6ad7f39da80ea9370cbcd',
|
||||
'season_number': 2,
|
||||
},
|
||||
'playlist_mincount': 8,
|
||||
@ -213,7 +213,6 @@ def _real_extract(self, url):
|
||||
class TedEmbedIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://embed(?:-ssl)?\.ted\.com/'
|
||||
_EMBED_REGEX = [rf'<iframe[^>]+?src=(["\'])(?P<url>{_VALID_URL}.+?)\1']
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://embed.ted.com/talks/janet_stovall_how_to_get_serious_about_diversity_and_inclusion_in_the_workplace',
|
||||
'info_dict': {
|
||||
@ -222,14 +221,31 @@ class TedEmbedIE(InfoExtractor):
|
||||
'title': 'How to get serious about diversity and inclusion in the workplace',
|
||||
'description': 'md5:0978aafe396e05341f8ecc795d22189d',
|
||||
'view_count': int,
|
||||
'tags': list,
|
||||
'uploader': 'Janet Stovall',
|
||||
'duration': 664.0,
|
||||
'duration': 654,
|
||||
'tags': 'count:10',
|
||||
'thumbnail': r're:https?://pi\.tedcdn\.com/.+\.jpg',
|
||||
'upload_date': '20180822',
|
||||
'release_date': '20180719',
|
||||
'thumbnail': r're:http.*\.jpg',
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://ideas.ted.com/6-ways-to-give-that-arent-about-money/',
|
||||
'info_dict': {
|
||||
'id': '123235',
|
||||
'ext': 'mp4',
|
||||
'title': 'It\'s time for infectious generosity. Here\'s how',
|
||||
'description': 'md5:0f972eb2b53ad7d1385fb65f519657b4',
|
||||
'duration': 1172,
|
||||
'release_date': '20231128',
|
||||
'tags': 'count:9',
|
||||
'thumbnail': r're:https?://pi\.tedcdn\.com/.+\.jpg',
|
||||
'upload_date': '20240109',
|
||||
'uploader': 'Chris Anderson',
|
||||
'view_count': int,
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
return self.url_result(re.sub(r'://embed(-ssl)?', '://www', url), TedTalkIE.ie_key())
|
||||
|
@ -51,9 +51,9 @@ class TuneInStationIE(TuneInBaseIE):
|
||||
'url': 'https://tunein.com/radio/Jazz24-885-s34682/',
|
||||
'info_dict': {
|
||||
'id': 's34682',
|
||||
'title': 're:^Jazz24',
|
||||
'title': str,
|
||||
'description': 'md5:d6d0b89063fd68d529fa7058ee98619b',
|
||||
'thumbnail': 're:^https?://[^?&]+/s34682',
|
||||
'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+',
|
||||
'location': 'Seattle-Tacoma, US',
|
||||
'ext': 'mp3',
|
||||
'live_status': 'is_live',
|
||||
@ -68,17 +68,26 @@ class TuneInStationIE(TuneInBaseIE):
|
||||
'url': 'https://tunein.com/radio/BBC-Radio-1-988-s24939/',
|
||||
'info_dict': {
|
||||
'id': 's24939',
|
||||
'title': 're:^BBC Radio 1',
|
||||
'description': 'md5:f3f75f7423398d87119043c26e7bfb84',
|
||||
'thumbnail': 're:^https?://[^?&]+/s24939',
|
||||
'title': str,
|
||||
'description': 'md5:ee2c56794844610d045f8caf5ff34d0c',
|
||||
'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+',
|
||||
'location': 'London, UK',
|
||||
'ext': 'mp3',
|
||||
'ext': 'm4a',
|
||||
'live_status': 'is_live',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.martiniinthemorning.com/',
|
||||
'info_dict': {
|
||||
'id': 's55412',
|
||||
'ext': 'mp3',
|
||||
'title': 'TuneInStation video #s55412',
|
||||
},
|
||||
'expected_warnings': ['unable to extract hydration', 'Extractor failed to obtain "title"'],
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
station_id = self._match_id(url)
|
||||
@ -123,9 +132,9 @@ class TuneInPodcastIE(TuneInBaseIE):
|
||||
'info_dict': {
|
||||
'id': 'p14',
|
||||
'title': 'BBC News',
|
||||
'description': 'md5:1218e575eeaff75f48ed978261fa2068',
|
||||
'description': 'md5:30b9622bcc4bd101d4acd6f38f284aed',
|
||||
},
|
||||
'playlist_mincount': 200,
|
||||
'playlist_mincount': 36,
|
||||
}]
|
||||
|
||||
_PAGE_SIZE = 30
|
||||
@ -164,9 +173,9 @@ class TuneInPodcastEpisodeIE(TuneInBaseIE):
|
||||
'url': 'https://tunein.com/podcasts/Technology-Podcasts/Artificial-Intelligence-p1153019/?topicId=236404354',
|
||||
'info_dict': {
|
||||
'id': 't236404354',
|
||||
'title': '#351 \u2013 MrBeast: Future of YouTube, Twitter, TikTok, and Instagram',
|
||||
'description': 'md5:e1734db6f525e472c0c290d124a2ad77',
|
||||
'thumbnail': 're:^https?://[^?&]+/p1153019',
|
||||
'title': '#351 – MrBeast: Future of YouTube, Twitter, TikTok, and Instagram',
|
||||
'description': 'md5:2784533b98f8ac45c0820b1e4a8d8bb2',
|
||||
'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+',
|
||||
'timestamp': 1673458571,
|
||||
'upload_date': '20230111',
|
||||
'series_id': 'p1153019',
|
||||
@ -198,18 +207,19 @@ def _real_extract(self, url):
|
||||
|
||||
|
||||
class TuneInShortenerIE(InfoExtractor):
|
||||
_WORKING = False
|
||||
IE_NAME = 'tunein:shortener'
|
||||
IE_DESC = False # Do not list
|
||||
_VALID_URL = r'https?://tun\.in/(?P<id>[A-Za-z0-9]+)'
|
||||
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
# test redirection
|
||||
'url': 'http://tun.in/ser7s',
|
||||
'info_dict': {
|
||||
'id': 's34682',
|
||||
'title': 're:^Jazz24',
|
||||
'title': str,
|
||||
'description': 'md5:d6d0b89063fd68d529fa7058ee98619b',
|
||||
'thumbnail': 're:^https?://[^?&]+/s34682',
|
||||
'thumbnail': r're:https?://cdn-profiles\.tunein\.com/.+',
|
||||
'location': 'Seattle-Tacoma, US',
|
||||
'ext': 'mp3',
|
||||
'live_status': 'is_live',
|
||||
@ -217,7 +227,7 @@ class TuneInShortenerIE(InfoExtractor):
|
||||
'params': {
|
||||
'skip_download': True, # live stream
|
||||
},
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
redirect_id = self._match_id(url)
|
||||
|
@ -8,17 +8,29 @@
|
||||
class TVCIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:www\.)?tvc\.ru/video/iframe/id/(?P<id>\d+)'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+?src=(["\'])(?P<url>(?:http:)?//(?:www\.)?tvc\.ru/video/iframe/id/[^"]+)\1']
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'http://www.tvc.ru/video/iframe/id/74622/isPlay/false/id_stat/channel/?acc_video_id=/channel/brand/id/17/show/episodes/episode_id/39702',
|
||||
'md5': 'bbc5ff531d1e90e856f60fc4b3afd708',
|
||||
'md5': 'aa6fb3cf384e18a0ad3b30ee2898beba',
|
||||
'info_dict': {
|
||||
'id': '74622',
|
||||
'ext': 'mp4',
|
||||
'title': 'События. "События". Эфир от 22.05.2015 14:30',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'title': 'TVC video #74622',
|
||||
'duration': 1122,
|
||||
'thumbnail': r're:https?://cdn\.tvc\.ru/pictures/.+\.jpg',
|
||||
},
|
||||
}
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://krizis-centr.ru/informatsiya/smi-o-tsentre/liniya-zashchity-bitye-zhjony-tv-tsentr',
|
||||
'md5': '43b8eee579a5cd2b85c9ed5b73d1c671',
|
||||
'info_dict': {
|
||||
'id': '123378',
|
||||
'ext': 'mp4',
|
||||
'title': 'TVC video #123378',
|
||||
'duration': 1526,
|
||||
'thumbnail': r're:https?://cdn\.tvc\.ru/pictures/.+\.jpg',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -22,12 +22,12 @@ class TVOpenGrWatchIE(TVOpenGrBaseIE):
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://www.ethnos.gr/watch/101009/nikoskaprabelosdenexoymekanenanasthenhsemethmethmetallaxhomikron',
|
||||
'md5': '8728570e3a72e0f8d9475ba94859fdc1',
|
||||
'info_dict': {
|
||||
'id': '101009',
|
||||
'title': 'md5:51f68773dcb6c70498cd326f45fefdf0',
|
||||
'display_id': 'nikoskaprabelosdenexoymekanenanasthenhsemethmethmetallaxhomikron',
|
||||
'description': 'md5:78fff49f18fb3effe41b070e5c7685d6',
|
||||
'duration': 246.0,
|
||||
'thumbnail': 'https://opentv-static.siliconweb.com/imgHandler/1920/d573ba71-ec5f-43c6-b4cb-d181f327d3a8.jpg',
|
||||
'ext': 'mp4',
|
||||
'upload_date': '20220109',
|
||||
@ -35,12 +35,12 @@ class TVOpenGrWatchIE(TVOpenGrBaseIE):
|
||||
},
|
||||
}, {
|
||||
'url': 'https://www.tvopen.gr/watch/100979/se28099agapaomenalla7cepeisodio267cmhthrargiapashskakias',
|
||||
'md5': '38f98a1be0c577db4ea2d1b1c0770c48',
|
||||
'info_dict': {
|
||||
'id': '100979',
|
||||
'title': 'md5:e021f3001e16088ee40fa79b20df305b',
|
||||
'display_id': 'se28099agapaomenalla7cepeisodio267cmhthrargiapashskakias',
|
||||
'description': 'md5:ba17db53954134eb8d625d199e2919fb',
|
||||
'duration': 2420.0,
|
||||
'thumbnail': 'https://opentv-static.siliconweb.com/imgHandler/1920/9bb71cf1-21da-43a9-9d65-367950fde4e3.jpg',
|
||||
'ext': 'mp4',
|
||||
'upload_date': '20220108',
|
||||
@ -98,18 +98,32 @@ class TVOpenGrEmbedIE(TVOpenGrBaseIE):
|
||||
|
||||
_TESTS = [{
|
||||
'url': 'https://cdn.ethnos.gr/embed/100963',
|
||||
'md5': '2da147881f45571d81662d94d086628b',
|
||||
'info_dict': {
|
||||
'id': '100963',
|
||||
'display_id': 'koronoiosapotoysdieythyntestonsxoleionselftestgiaosoysdenbrhkan',
|
||||
'title': 'md5:2c71876fadf0cda6043da0da5fca2936',
|
||||
'description': 'md5:17482b4432e5ed30eccd93b05d6ea509',
|
||||
'duration': 118.0,
|
||||
'thumbnail': 'https://opentv-static.siliconweb.com/imgHandler/1920/5804e07f-799a-4247-a696-33842c94ca37.jpg',
|
||||
'ext': 'mp4',
|
||||
'upload_date': '20220108',
|
||||
'timestamp': 1641600000,
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.ethnos.gr/World/article/190604/hparosiaxekinoynoisynomiliessthgeneyhmethskiatoypolemoypanoapothnoykrania',
|
||||
'info_dict': {
|
||||
'id': '101119',
|
||||
'ext': 'mp4',
|
||||
'title': 'Οι καρποί των διαπραγματεύσεων ΗΠΑ-Ρωσίας | Ώρα Ελλάδος 7:00 > Ρεπορτάζ',
|
||||
'description': 'Ξεκινούν οι διαπραγματεύσεις ανάμεσα σε Ηνωμένες Πολιτείες και Ρωσία για την Ουκρανία.',
|
||||
'display_id': 'oikarpoitondiapragmateyseonhparosias',
|
||||
'duration': 421.0,
|
||||
'thumbnail': r're:https?://opentv-static\.siliconweb\.com/imgHandler/.+\.jpg',
|
||||
'timestamp': 1641772800,
|
||||
'upload_date': '20220110',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
|
||||
class TwentyMinutenIE(InfoExtractor):
|
||||
_WORKING = False
|
||||
IE_NAME = '20min'
|
||||
_VALID_URL = r'''(?x)
|
||||
https?://
|
||||
@ -24,7 +25,7 @@ class TwentyMinutenIE(InfoExtractor):
|
||||
'id': '469148',
|
||||
'ext': 'mp4',
|
||||
'title': '85 000 Franken für 15 perfekte Minuten',
|
||||
'thumbnail': r're:https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
},
|
||||
}, {
|
||||
'url': 'http://www.20min.ch/videoplayer/videoplayer.html?params=client@twentyDE|videoId@523629',
|
||||
@ -33,7 +34,7 @@ class TwentyMinutenIE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'So kommen Sie bei Eis und Schnee sicher an',
|
||||
'description': 'md5:117c212f64b25e3d95747e5276863f7d',
|
||||
'thumbnail': r're:https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
@ -42,6 +43,16 @@ class TwentyMinutenIE(InfoExtractor):
|
||||
'url': 'http://www.20min.ch/videotv/?cid=44&vid=468738',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Update _VALID_URL
|
||||
'url': 'https://www.20min.ch/story/so-kommen-sie-bei-eis-und-schnee-sicher-an-557858045456',
|
||||
'info_dict': {
|
||||
'id': '523629',
|
||||
'ext': 'mp4',
|
||||
'title': 'So kommen Sie bei Eis und Schnee sicher an',
|
||||
'description': 'md5:117c212f64b25e3d95747e5276863f7d',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -22,11 +22,7 @@ class UDNEmbedIE(InfoExtractor):
|
||||
'title': '生物老師男變女 全校挺"做自己"',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
},
|
||||
'params': {
|
||||
# m3u8 download
|
||||
'skip_download': True,
|
||||
},
|
||||
'expected_warnings': ['Failed to parse JSON Expecting value'],
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://video.udn.com/embed/news/300040',
|
||||
'only_matching': True,
|
||||
@ -35,6 +31,18 @@ class UDNEmbedIE(InfoExtractor):
|
||||
'url': 'https://video.udn.com/play/news/303776',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Update _VALID_URL
|
||||
'url': 'https://video.udn.com/news/1308561',
|
||||
'info_dict': {
|
||||
'id': '1308561',
|
||||
'ext': 'mp4',
|
||||
'title': '影/丹娜絲颱風暴風圈擴大 上午8:30發布海警',
|
||||
'thumbnail': r're:https?://cdn\.udn\.com/img/.+\.jpg',
|
||||
},
|
||||
'expected_warnings': ['Failed to parse JSON'],
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -26,7 +26,7 @@ class Vbox7IE(InfoExtractor):
|
||||
'ext': 'mp4',
|
||||
'title': 'Борисов: Притеснен съм за бъдещето на България',
|
||||
'description': 'По думите му е опасно страната ни да бъде обявена за "сигурна"',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'timestamp': 1470982814,
|
||||
'upload_date': '20160812',
|
||||
'uploader': 'zdraveibulgaria',
|
||||
@ -48,7 +48,7 @@ class Vbox7IE(InfoExtractor):
|
||||
'upload_date': '20130207',
|
||||
'duration': 83,
|
||||
},
|
||||
'expected_warnings': ['Failed to download m3u8 information'],
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://vbox7.com/emb/external.php?vid=a240d20f9c&autoplay=1',
|
||||
'only_matching': True,
|
||||
@ -56,6 +56,21 @@ class Vbox7IE(InfoExtractor):
|
||||
'url': 'http://i49.vbox7.com/player/ext.swf?vid=0946fff23c&autoplay=1',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://nova.bg/news/view/2016/08/16/156543/%D0%BD%D0%B0-%D0%BA%D0%BE%D1%81%D1%8A%D0%BC-%D0%BE%D1%82-%D0%B2%D0%B7%D1%80%D0%B8%D0%B2-%D0%BE%D1%82%D1%86%D0%B5%D0%BF%D0%B8%D1%85%D0%B0-%D1%86%D1%8F%D0%BB-%D0%BA%D0%B2%D0%B0%D1%80%D1%82%D0%B0%D0%BB-%D0%B7%D0%B0%D1%80%D0%B0%D0%B4%D0%B8-%D0%B8%D0%B7%D1%82%D0%B8%D1%87%D0%B0%D0%BD%D0%B5-%D0%BD%D0%B0-%D0%B3%D0%B0%D0%B7-%D0%B2-%D0%BF%D0%BB%D0%BE%D0%B2%D0%B4%D0%B8%D0%B2/',
|
||||
'info_dict': {
|
||||
'id': '5a4d12166d',
|
||||
'ext': 'mp4',
|
||||
'title': 'НА КОСЪМ ОТ ВЗРИВ: Отцепиха цял квартал заради изтичане на газ в Пловдив',
|
||||
'description': 'Инцидентът е станал на бензиностанция',
|
||||
'duration': 200,
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'timestamp': 1471353501,
|
||||
'upload_date': '20160816',
|
||||
'uploader': 'novinitenanova',
|
||||
'view_count': int,
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -6,6 +6,7 @@
|
||||
|
||||
|
||||
class ViddlerIE(InfoExtractor):
|
||||
_WORKING = False
|
||||
_VALID_URL = r'https?://(?:www\.)?viddler\.com/(?:v|embed|player)/(?P<id>[a-z0-9]+)(?:.+?\bsecret=(\d+))?'
|
||||
_EMBED_REGEX = [r'<(?:iframe[^>]+?src|param[^>]+?value)=(["\'])(?P<url>(?:https?:)?//(?:www\.)?viddler\.com/(?:embed|player)/.+?)\1']
|
||||
|
||||
@ -21,11 +22,12 @@ class ViddlerIE(InfoExtractor):
|
||||
'timestamp': 1335371429,
|
||||
'upload_date': '20120425',
|
||||
'duration': 100.89,
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'view_count': int,
|
||||
'comment_count': int,
|
||||
'categories': ['video content', 'high quality video', 'video made easy', 'how to produce video with limited resources', 'viddler'],
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://www.viddler.com/v/4d03aad9/',
|
||||
'md5': 'f12c5a7fa839c47a79363bfdf69404fb',
|
||||
@ -53,6 +55,7 @@ class ViddlerIE(InfoExtractor):
|
||||
'view_count': int,
|
||||
'comment_count': int,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# secret protected
|
||||
'url': 'http://www.viddler.com/v/890c0985?secret=34051570',
|
||||
@ -71,6 +74,15 @@ class ViddlerIE(InfoExtractor):
|
||||
'skip_download': True,
|
||||
},
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://deadspin.com/i-cant-stop-watching-john-wall-chop-the-nuggets-with-th-1681801597/',
|
||||
'info_dict': {
|
||||
'id': '4d03aad9',
|
||||
'ext': 'mp4',
|
||||
'title': 'WALL-TO-GORTAT',
|
||||
},
|
||||
'skip': 'Site no longer embeds Viddler',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id, secret = self._match_valid_url(url).groups()
|
||||
|
@ -37,7 +37,7 @@ class VideaIE(InfoExtractor):
|
||||
'id': '8YfIAjxwWGwT8HVQ',
|
||||
'ext': 'mp4',
|
||||
'title': 'Az őrült kígyász 285 kígyót enged szabadon',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://videa\.hu/static/still/.+',
|
||||
'duration': 21,
|
||||
'age_limit': 0,
|
||||
},
|
||||
@ -48,7 +48,7 @@ class VideaIE(InfoExtractor):
|
||||
'id': 'jAHDWfWSJH5XuFhH',
|
||||
'ext': 'mp4',
|
||||
'title': 'Supercars előzés',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://videa\.hu/static/still/.+',
|
||||
'duration': 64,
|
||||
'age_limit': 0,
|
||||
},
|
||||
@ -59,7 +59,7 @@ class VideaIE(InfoExtractor):
|
||||
'id': '8YfIAjxwWGwT8HVQ',
|
||||
'ext': 'mp4',
|
||||
'title': 'Az őrült kígyász 285 kígyót enged szabadon',
|
||||
'thumbnail': r're:^https?://.*',
|
||||
'thumbnail': r're:https?://videa\.hu/static/still/.+',
|
||||
'duration': 21,
|
||||
'age_limit': 0,
|
||||
},
|
||||
@ -76,6 +76,25 @@ class VideaIE(InfoExtractor):
|
||||
'url': 'https://videakid.hu/player/v/8YfIAjxwWGwT8HVQ?autoplay=1',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.kapucziner.hu/',
|
||||
'info_dict': {
|
||||
'id': '95yhJCdK2dX1T5Nh',
|
||||
'ext': 'mp4',
|
||||
'title': 'Nemzetközi díjat kapott a győri kávémanufaktúra',
|
||||
'age_limit': 0,
|
||||
'duration': 207,
|
||||
'thumbnail': r're:https?://videa\.hu/static/still/.+',
|
||||
},
|
||||
}, {
|
||||
# FIXME: No video formats found
|
||||
'url': 'https://hirtv.hu/hirtv_kesleltetett',
|
||||
'info_dict': {
|
||||
'id': 'IDRqF7W9X0GXHGj1',
|
||||
'ext': 'mp4',
|
||||
'title': 'Hír TV - 60 perccel késleltetett adás',
|
||||
},
|
||||
}]
|
||||
_STATIC_SECRET = 'xHb0ZvME5q8CBcoQi6AngerDu3FGO9fkUlwPmLVY_RTzj2hJIS4NasXWKy1td7p'
|
||||
|
||||
@staticmethod
|
||||
|
@ -23,8 +23,9 @@ class VideoPressIE(InfoExtractor):
|
||||
'id': 'kUJmAcSf',
|
||||
'ext': 'mp4',
|
||||
'title': 'VideoPress Demo',
|
||||
'thumbnail': r're:^https?://.*\.jpg',
|
||||
'duration': 634.6,
|
||||
'description': '',
|
||||
'duration': 635.0,
|
||||
'thumbnail': r're:https?://videos\.files\.wordpress\.com/.+\.jpg',
|
||||
'timestamp': 1434983935,
|
||||
'upload_date': '20150622',
|
||||
'age_limit': 0,
|
||||
@ -37,6 +38,20 @@ class VideoPressIE(InfoExtractor):
|
||||
'url': 'https://video.wordpress.com/embed/kUJmAcSf',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://wordpress.com/support/videopress/',
|
||||
'info_dict': {
|
||||
'id': 'BZHMfMfN',
|
||||
'ext': 'mp4',
|
||||
'title': 'videopress example',
|
||||
'age_limit': 0,
|
||||
'description': '',
|
||||
'duration': 19.796,
|
||||
'thumbnail': r're:https?://videos\.files\.wordpress\.com/.+\.jpg',
|
||||
'timestamp': 1748969554,
|
||||
'upload_date': '20250603',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -76,6 +76,7 @@ class ViewLiftEmbedIE(ViewLiftBaseIE):
|
||||
'timestamp': 1334350096,
|
||||
'upload_date': '20120413',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# invalid labels, 360p is better that 480p
|
||||
'url': 'http://www.snagfilms.com/embed/player?filmId=17ca0950-a74a-11e0-a92a-0026bb61d036',
|
||||
@ -90,6 +91,15 @@ class ViewLiftEmbedIE(ViewLiftBaseIE):
|
||||
'url': 'http://www.snagfilms.com/embed/player?filmId=0000014c-de2f-d5d6-abcf-ffef58af0017',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://whilewewatch.blogspot.ru/2012/06/whilewewatch-whilewewatch-gripping.html',
|
||||
'info_dict': {
|
||||
'id': '74849a00-85a9-11e1-9660-123139220831',
|
||||
'ext': 'mp4',
|
||||
'title': '#whilewewatch',
|
||||
},
|
||||
'skip': 'Dead embed URL',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
domain, film_id = self._match_valid_url(url).groups()
|
||||
@ -164,13 +174,14 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'Lost for Life',
|
||||
'description': 'md5:ea10b5a50405ae1f7b5269a6ec594102',
|
||||
'thumbnail': r're:^https?://.*\.jpg',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'duration': 4489,
|
||||
'categories': 'mincount:3',
|
||||
'age_limit': 14,
|
||||
'upload_date': '20150421',
|
||||
'timestamp': 1429656820,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://www.snagfilms.com/show/the_world_cut_project/india',
|
||||
'md5': 'e6292e5b837642bbda82d7f8bf3fbdfd',
|
||||
@ -180,11 +191,12 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'India',
|
||||
'description': 'md5:5c168c5a8f4719c146aad2e0dfac6f5f',
|
||||
'thumbnail': r're:^https?://.*\.jpg',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'duration': 979,
|
||||
'timestamp': 1399478279,
|
||||
'upload_date': '20140507',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://main.snagfilms.com/augie_alone/s_2_ep_12_love',
|
||||
'info_dict': {
|
||||
@ -193,15 +205,13 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'S. 2 Ep. 12 - Love',
|
||||
'description': 'Augie finds love.',
|
||||
'thumbnail': r're:^https?://.*\.jpg',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'duration': 107,
|
||||
'upload_date': '20141012',
|
||||
'timestamp': 1413129540,
|
||||
'age_limit': 17,
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'http://main.snagfilms.com/films/title/the_freebie',
|
||||
'only_matching': True,
|
||||
@ -230,10 +240,10 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'Shuyopoka',
|
||||
'description': 'md5:e28f2fb8680096a69c944d37c1fa5ffc',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20211006',
|
||||
},
|
||||
'params': {'skip_download': True},
|
||||
'skip': 'Subscription required',
|
||||
}, { # Free film
|
||||
'url': 'https://www.hoichoi.tv/films/title/dadu-no1',
|
||||
'info_dict': {
|
||||
@ -241,10 +251,10 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'Dadu No.1',
|
||||
'description': 'md5:605cba408e51a79dafcb824bdeded51e',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20210827',
|
||||
},
|
||||
'params': {'skip_download': True},
|
||||
'skip': 'Subscription required',
|
||||
}, { # Free episode
|
||||
'url': 'https://www.hoichoi.tv/webseries/case-jaundice-s01-e01',
|
||||
'info_dict': {
|
||||
@ -252,11 +262,11 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'Humans Vs. Corona',
|
||||
'description': 'md5:ca30a682b4528d02a3eb6d0427dd0f87',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20210830',
|
||||
'series': 'Case Jaundice',
|
||||
},
|
||||
'params': {'skip_download': True},
|
||||
'skip': 'Invalid URL',
|
||||
}, { # Free video
|
||||
'url': 'https://www.hoichoi.tv/videos/1549072415320-six-episode-02-hindi',
|
||||
'info_dict': {
|
||||
@ -264,11 +274,11 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'Woman in red - Hindi',
|
||||
'description': 'md5:9d21edc1827d32f8633eb67c2054fc31',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20211006',
|
||||
'series': 'Six (Hindi)',
|
||||
},
|
||||
'params': {'skip_download': True},
|
||||
'skip': 'Invalid URL',
|
||||
}, { # Free episode
|
||||
'url': 'https://www.hoichoi.tv/shows/watch-asian-paints-moner-thikana-online-season-1-episode-1',
|
||||
'info_dict': {
|
||||
@ -276,23 +286,25 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'ext': 'mp4',
|
||||
'title': 'Jisshu Sengupta',
|
||||
'description': 'md5:ef6ffae01a3d83438597367400f824ed',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'upload_date': '20211004',
|
||||
'series': 'Asian Paints Moner Thikana',
|
||||
},
|
||||
'params': {'skip_download': True},
|
||||
'skip': 'Invalid URL',
|
||||
}, { # Free series
|
||||
'url': 'https://www.hoichoi.tv/shows/watch-moner-thikana-bengali-web-series-online',
|
||||
'playlist_mincount': 5,
|
||||
'info_dict': {
|
||||
'id': 'watch-moner-thikana-bengali-web-series-online',
|
||||
},
|
||||
'skip': 'Subscription required',
|
||||
}, { # Premium series
|
||||
'url': 'https://www.hoichoi.tv/shows/watch-byomkesh-bengali-web-series-online',
|
||||
'playlist_mincount': 14,
|
||||
'info_dict': {
|
||||
'id': 'watch-byomkesh-bengali-web-series-online',
|
||||
},
|
||||
'skip': 'Subscription required',
|
||||
}, { # Premium movie
|
||||
'url': 'https://www.hoichoi.tv/movies/detective-2020',
|
||||
'only_matching': True,
|
||||
@ -302,6 +314,7 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'info_dict': {
|
||||
'id': 'bn/series/sinpaat',
|
||||
},
|
||||
'skip': 'Subscription required',
|
||||
}, { # Chorki free movie
|
||||
'url': 'https://www.chorki.com/bn/videos/bangla-movie-bikkhov',
|
||||
'info_dict': {
|
||||
@ -317,9 +330,7 @@ class ViewLiftIE(ViewLiftBaseIE):
|
||||
'description': 'md5:71492b086450625f4374a3eb824f27dc',
|
||||
'duration': 8002,
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, { # Chorki Premium movie
|
||||
'url': 'https://www.chorki.com/bn/videos/something-like-an-autobiography',
|
||||
'only_matching': True,
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -24,7 +24,7 @@ class ViqeoIE(InfoExtractor):
|
||||
'id': 'cde96f09d25f39bee837',
|
||||
'ext': 'mp4',
|
||||
'title': 'cde96f09d25f39bee837',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'duration': 76,
|
||||
},
|
||||
}, {
|
||||
@ -34,6 +34,19 @@ class ViqeoIE(InfoExtractor):
|
||||
'url': 'https://api.viqeo.tv/v1/data/startup?video%5B%5D=71bbec412ade45c3216c&profile=112',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://viqeo.tv/',
|
||||
'info_dict': {
|
||||
'id': 'viqeo',
|
||||
'title': 'Viqeo video platform',
|
||||
'age_limit': 0,
|
||||
'description': 'md5:e8e06e20df92ed66febeaef2533a0d5d',
|
||||
'thumbnail': r're:https?://static\.tildacdn\.com/.+\.png',
|
||||
'timestamp': 1751479769,
|
||||
'upload_date': '20250702',
|
||||
},
|
||||
'playlist_count': 3,
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
@ -72,6 +72,7 @@ class VoxMediaIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:www\.)?(?:(?:theverge|vox|sbnation|eater|polygon|curbed|racked|funnyordie)\.com|recode\.net)/(?:[^/]+/)*(?P<id>[^/?]+)'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+?src="(?P<url>https?://(?:www\.)?funnyordie\.com/embed/[^"]+)"']
|
||||
_TESTS = [{
|
||||
# FIXME: Unsupported iframe embed
|
||||
# Volume embed, Youtube
|
||||
'url': 'http://www.theverge.com/2014/6/27/5849272/material-world-how-google-discovered-what-software-is-made-of',
|
||||
'info_dict': {
|
||||
@ -156,6 +157,15 @@ class VoxMediaIE(InfoExtractor):
|
||||
}],
|
||||
'skip': 'Page no longer contain videos',
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://www.theguardian.com/world/2014/mar/11/obama-zach-galifianakis-between-two-ferns',
|
||||
'info_dict': {
|
||||
'id': '18e820ec3f',
|
||||
'ext': 'mp4',
|
||||
'title': 'Between Two Ferns with Zach Galifianakis: President Barack Obama',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
display_id = self._match_id(url)
|
||||
|
@ -30,9 +30,7 @@ class WimTVIE(InfoExtractor):
|
||||
'duration': 6481,
|
||||
'thumbnail': r're:https?://.+?/thumbnail/.+?/720$',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# live stream
|
||||
'url': 'https://platform.wim.tv/embed/?live=28e22c22-49db-40f3-8c37-8cbb0ff44556&autostart=true',
|
||||
@ -42,9 +40,7 @@ class WimTVIE(InfoExtractor):
|
||||
'title': 'Streaming MSmotorTV',
|
||||
'is_live': True,
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://platform.wim.tv/#/webtv/automotornews/vod/422492b6-539e-474d-9c6b-68c9d5893365',
|
||||
'only_matching': True,
|
||||
@ -52,6 +48,17 @@ class WimTVIE(InfoExtractor):
|
||||
'url': 'https://platform.wim.tv/#/webtv/renzoarborechannel/cast/f47e0d15-5b45-455e-bf0d-dba8ffa96365',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'http://www.renzoarborechannel.tv/50_sorrisi_da_napoli.htm',
|
||||
'info_dict': {
|
||||
'id': '50_sorrisi_da_napoli',
|
||||
'title': 'Renzo Arbore Channel . TV - 50 Sorrisi da Napoli',
|
||||
'age_limit': 0,
|
||||
'timestamp': 1612226372,
|
||||
'upload_date': '20210202',
|
||||
},
|
||||
'playlist_count': 40,
|
||||
}]
|
||||
|
||||
def _real_initialize(self):
|
||||
if not self._player:
|
||||
|
@ -193,12 +193,12 @@ class WistiaIE(WistiaBaseIE):
|
||||
'info_dict': {
|
||||
'id': 'a6ndpko1wg',
|
||||
'ext': 'mp4',
|
||||
'title': 'Episode 2: Boxed Water\'s retention is thirsty',
|
||||
'title': 'BXO-S02-E02-Boxed_Water-v4.mp4',
|
||||
'upload_date': '20210324',
|
||||
'description': 'md5:da5994c2c2d254833b412469d9666b7a',
|
||||
'description': 'md5:3b9296a45aa46010767451b3691b1105',
|
||||
'duration': 966.0,
|
||||
'timestamp': 1616614369,
|
||||
'thumbnail': 'https://embed-ssl.wistia.com/deliveries/53dc60239348dc9b9fba3755173ea4c2.png',
|
||||
'thumbnail': r're:https?://embed(?:-ssl)?\.wistia\.com/.+\.(?:jpg|png)',
|
||||
},
|
||||
}, {
|
||||
'url': 'wistia:5vd7p4bct5',
|
||||
@ -211,7 +211,7 @@ class WistiaIE(WistiaBaseIE):
|
||||
'upload_date': '20220915',
|
||||
'timestamp': 1663258727,
|
||||
'duration': 623.019,
|
||||
'thumbnail': r're:https?://embed(?:-ssl)?.wistia.com/.+\.jpg$',
|
||||
'thumbnail': r're:https?://embed(?:-ssl)?\.wistia\.com/.+\.(?:jpg|png)',
|
||||
},
|
||||
}, {
|
||||
'url': 'wistia:sh7fpupwlt',
|
||||
@ -226,7 +226,6 @@ class WistiaIE(WistiaBaseIE):
|
||||
'url': 'http://fast.wistia.net/embed/medias/sh7fpupwlt.json',
|
||||
'only_matching': True,
|
||||
}]
|
||||
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.weidert.com/blog/wistia-channels-video-marketing-tool',
|
||||
'info_dict': {
|
||||
@ -237,8 +236,9 @@ class WistiaIE(WistiaBaseIE):
|
||||
'timestamp': 1618974400,
|
||||
'description': 'md5:27abc99a758573560be72600ef95cece',
|
||||
'upload_date': '20210421',
|
||||
'thumbnail': 'https://embed-ssl.wistia.com/deliveries/6c551820ae950cdee2306d6cbe9ef742.jpg',
|
||||
'thumbnail': r're:https?://embed(?:-ssl)?\.wistia\.com/.+\.(?:jpg|png)',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://study.com/academy/lesson/north-american-exploration-failed-colonies-of-spain-france-england.html#lesson',
|
||||
'md5': 'b9676d24bf30945d97060638fbfe77f0',
|
||||
@ -249,9 +249,19 @@ class WistiaIE(WistiaBaseIE):
|
||||
'upload_date': '20220915',
|
||||
'timestamp': 1663258727,
|
||||
'duration': 623.019,
|
||||
'thumbnail': 'https://embed-ssl.wistia.com/deliveries/83e6ec693e2c05a0ce65809cbaead86a.jpg',
|
||||
'thumbnail': r're:https?://embed(?:-ssl)?\.wistia\.com/.+\.(?:jpg|png)',
|
||||
'description': 'a Paywall Videos video',
|
||||
},
|
||||
}, {
|
||||
'url': 'https://support.wistia.com/en/articles/8233354-embedding-your-media',
|
||||
'info_dict': {
|
||||
'id': '8233354-embedding-your-media',
|
||||
'title': 'Embedding Your Media | Wistia Help Center',
|
||||
'age_limit': 0,
|
||||
'description': 'md5:32a5edc0e266cd61e2d15be28873d614',
|
||||
'thumbnail': r're:https?://downloads\.intercomcdn\.com/.+\.jpg',
|
||||
},
|
||||
'playlist_count': 2,
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
@ -278,13 +288,13 @@ def _extract_embed_urls(cls, url, webpage):
|
||||
class WistiaPlaylistIE(WistiaBaseIE):
|
||||
_VALID_URL = rf'{WistiaBaseIE._VALID_URL_BASE}playlists/{WistiaBaseIE._VALID_ID_REGEX}'
|
||||
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'https://fast.wistia.net/embed/playlists/aodt9etokc',
|
||||
'info_dict': {
|
||||
'id': 'aodt9etokc',
|
||||
},
|
||||
'playlist_count': 3,
|
||||
}
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
playlist_id = self._match_id(url)
|
||||
@ -312,7 +322,7 @@ class WistiaChannelIE(WistiaBaseIE):
|
||||
'description': 'Learn all things Copysmith via short and informative videos!',
|
||||
},
|
||||
'playlist_mincount': 7,
|
||||
'expected_warnings': ['falling back to webpage'],
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
'url': 'https://fast.wistia.net/embed/channel/3802iirk0l',
|
||||
'info_dict': {
|
||||
@ -327,7 +337,7 @@ class WistiaChannelIE(WistiaBaseIE):
|
||||
'id': 'sp5dqjzw3n',
|
||||
'ext': 'mp4',
|
||||
'title': 'The Roof S2: The Modern CRO',
|
||||
'thumbnail': 'https://embed-ssl.wistia.com/deliveries/dadfa9233eaa505d5e0c85c23ff70741.png',
|
||||
'thumbnail': r're:https?://embed(?:-ssl)?\.wistia\.com/.+\.(?:jpg|png)',
|
||||
'duration': 86.487,
|
||||
'description': 'A sales leader on The Roof? Man, they really must be letting anyone up here this season.\n',
|
||||
'timestamp': 1619790290,
|
||||
@ -343,6 +353,7 @@ class WistiaChannelIE(WistiaBaseIE):
|
||||
'description': 'md5:14a8a93a1dbe236718e6a59f8c8c7bae',
|
||||
},
|
||||
'playlist_mincount': 30,
|
||||
'skip': 'Site no longer embeds Wistia playlists',
|
||||
}, {
|
||||
# section instead of div
|
||||
'url': 'https://360learning.com/studio/onboarding-joei/',
|
||||
@ -362,9 +373,9 @@ class WistiaChannelIE(WistiaBaseIE):
|
||||
'upload_date': '20220530',
|
||||
'description': 'Learn how to help your company improve and achieve your product related goals.',
|
||||
'duration': 1854.39,
|
||||
'thumbnail': 'https://embed-ssl.wistia.com/deliveries/12fd19e56413d9d6f04e2185c16a6f8854e25226.png',
|
||||
'thumbnail': r're:https?://embed(?:-ssl)?\.wistia\.com/.+\.(?:jpg|png)',
|
||||
},
|
||||
'params': {'noplaylist': True, 'skip_download': True},
|
||||
'skip': 'Invalid URL',
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
|
@ -43,7 +43,7 @@ class XHamsterIE(InfoExtractor):
|
||||
'uploader_id': 'ruseful2011',
|
||||
'duration': 893,
|
||||
'age_limit': 18,
|
||||
'thumbnail': 'https://thumb-nss.xhcdn.com/a/u3Vr5F2vvcU3yK59_jJqVA/001/509/445/1280x720.8.jpg',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'uploader_url': 'https://xhamster.com/users/ruseful2011',
|
||||
'description': '',
|
||||
'view_count': int,
|
||||
@ -63,11 +63,12 @@ class XHamsterIE(InfoExtractor):
|
||||
'age_limit': 18,
|
||||
'description': '',
|
||||
'view_count': int,
|
||||
'thumbnail': 'https://thumb-nss.xhcdn.com/a/kk5nio_iR-h4Z3frfVtoDw/002/221/348/1280x720.4.jpg',
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'comment_count': int,
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
'extractor_args': {'generic': {'impersonate': ['chrome']}},
|
||||
'skip_download': 'm3u8',
|
||||
},
|
||||
}, {
|
||||
# empty seo, unavailable via new URL schema
|
||||
@ -86,11 +87,9 @@ class XHamsterIE(InfoExtractor):
|
||||
'uploader_url': 'https://xhamster.com/users/parejafree',
|
||||
'description': '',
|
||||
'view_count': int,
|
||||
'thumbnail': 'https://thumb-nss.xhcdn.com/a/xc8MSwVKcsQeRRiTT-saMQ/005/667/973/1280x720.2.jpg',
|
||||
},
|
||||
'params': {
|
||||
'skip_download': True,
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
},
|
||||
'skip': 'Invalid URL',
|
||||
}, {
|
||||
# mobile site
|
||||
'url': 'https://m.xhamster.com/videos/cute-teen-jacqueline-solo-masturbation-8559111',
|
||||
@ -390,19 +389,48 @@ def get_height(s):
|
||||
class XHamsterEmbedIE(InfoExtractor):
|
||||
_VALID_URL = rf'https?://(?:[^/?#]+\.)?{XHamsterIE._DOMAINS}/xembed\.php\?video=(?P<id>\d+)'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+?src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?xhamster\.com/xembed\.php\?video=\d+)\1']
|
||||
_TEST = {
|
||||
_TESTS = [{
|
||||
'url': 'http://xhamster.com/xembed.php?video=3328539',
|
||||
'info_dict': {
|
||||
'id': '3328539',
|
||||
'ext': 'mp4',
|
||||
'title': 'Pen Masturbation',
|
||||
'comment_count': int,
|
||||
'description': '',
|
||||
'display_id': 'pen-masturbation',
|
||||
'timestamp': 1406581861,
|
||||
'upload_date': '20140728',
|
||||
'uploader': 'ManyakisArt',
|
||||
'duration': 5,
|
||||
'age_limit': 18,
|
||||
'thumbnail': r're:https?://.+\.jpg',
|
||||
'uploader_id': 'manyakisart',
|
||||
'uploader_url': 'https://xhamster.com/users/manyakisart',
|
||||
'view_count': int,
|
||||
},
|
||||
}
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Embed detection
|
||||
'url': 'https://xhamster.com/awards/2023',
|
||||
'info_dict': {
|
||||
'id': 'xh2VnYn',
|
||||
'ext': 'mp4',
|
||||
'title': 'xHamster Awards 2023 - The Winners',
|
||||
'age_limit': 18,
|
||||
'comment_count': int,
|
||||
'description': '',
|
||||
'display_id': 'xhamster-awards-2023-the-winners',
|
||||
'duration': 292,
|
||||
'thumbnail': r're:https?://ic-vt-nss\.xhcdn\.com/.+',
|
||||
'timestamp': 1700122082,
|
||||
'upload_date': '20231116',
|
||||
'uploader': 'xHamster',
|
||||
'uploader_id': 'xhamster',
|
||||
'uploader_url': 'https://xhamster.com/users/xhamster',
|
||||
'view_count': int,
|
||||
},
|
||||
'params': {'skip_download': 'm3u8'},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
@ -437,13 +465,13 @@ class XHamsterUserIE(InfoExtractor):
|
||||
'info_dict': {
|
||||
'id': 'firatkaan',
|
||||
},
|
||||
'playlist_mincount': 1,
|
||||
'playlist_mincount': 0,
|
||||
}, {
|
||||
'url': 'https://xhamster.com/creators/squirt-orgasm-69',
|
||||
'info_dict': {
|
||||
'id': 'squirt-orgasm-69',
|
||||
},
|
||||
'playlist_mincount': 150,
|
||||
'playlist_mincount': 46,
|
||||
}, {
|
||||
'url': 'https://xhday.com/users/mobhunter',
|
||||
'only_matching': True,
|
||||
|
@ -28,6 +28,15 @@ class YapFilesIE(InfoExtractor):
|
||||
'url': 'https://api.yapfiles.ru/get_player/?uid=video_player_1872528&plroll=1&adv=1&v=vMDE4NzI1Mjgt690b',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
# FIXME: Update _VALID_URL
|
||||
'url': 'https://www.yapfiles.ru/show/3397030/e34b69aa03829d513d7dc3ace6ec9631.mp4.html',
|
||||
'info_dict': {
|
||||
'id': 'vMDE4NzI1Mjgt690b',
|
||||
'ext': 'mp4',
|
||||
'title': 'Котята',
|
||||
},
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
video_id = self._match_id(url)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -13,35 +13,39 @@
|
||||
class ZapiksIE(InfoExtractor):
|
||||
_VALID_URL = r'https?://(?:www\.)?zapiks\.(?:fr|com)/(?:(?:[a-z]{2}/)?(?P<display_id>.+?)\.html|index\.php\?.*\bmedia_id=(?P<id>\d+))'
|
||||
_EMBED_REGEX = [r'<iframe[^>]+src="(?P<url>https?://(?:www\.)?zapiks\.fr/index\.php\?.+?)"']
|
||||
_TESTS = [
|
||||
{
|
||||
'url': 'http://www.zapiks.fr/ep2s3-bon-appetit-eh-be-viva.html',
|
||||
'md5': 'aeb3c473b2d564b2d46d664d28d5f050',
|
||||
'info_dict': {
|
||||
'id': '80798',
|
||||
'ext': 'mp4',
|
||||
'title': 'EP2S3 - Bon Appétit - Eh bé viva les pyrénées con!',
|
||||
'description': 'md5:7054d6f6f620c6519be1fe710d4da847',
|
||||
'thumbnail': r're:^https?://.*\.jpg$',
|
||||
'duration': 528,
|
||||
'timestamp': 1359044972,
|
||||
'upload_date': '20130124',
|
||||
'view_count': int,
|
||||
},
|
||||
_TESTS = [{
|
||||
'url': 'http://www.zapiks.fr/ep2s3-bon-appetit-eh-be-viva.html',
|
||||
'md5': 'aeb3c473b2d564b2d46d664d28d5f050',
|
||||
'info_dict': {
|
||||
'id': '80798',
|
||||
'ext': 'mp4',
|
||||
'title': 'EP2S3 - Bon Appétit - Eh bé viva les pyrénées con!',
|
||||
'description': 'md5:7054d6f6f620c6519be1fe710d4da847',
|
||||
'thumbnail': r're:https?://zpks\.com/.+\.jpg',
|
||||
'duration': 528,
|
||||
'timestamp': 1359044972,
|
||||
'upload_date': '20130124',
|
||||
'view_count': int,
|
||||
},
|
||||
{
|
||||
'url': 'http://www.zapiks.com/ep3s5-bon-appetit-baqueira-m-1.html',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'http://www.zapiks.com/ep3s5-bon-appetit-baqueira-m-1.html',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'http://www.zapiks.com/nl/ep3s5-bon-appetit-baqueira-m-1.html',
|
||||
'only_matching': True,
|
||||
}, {
|
||||
'url': 'http://www.zapiks.fr/index.php?action=playerIframe&media_id=118046&width=640&height=360&autoStart=false&language=fr',
|
||||
'only_matching': True,
|
||||
}]
|
||||
_WEBPAGE_TESTS = [{
|
||||
'url': 'https://www.skipass.com/news/116090-bon-appetit-s5ep3-baqueira-mi-cor.html',
|
||||
'info_dict': {
|
||||
'id': '118046',
|
||||
'ext': 'mp4',
|
||||
'title': 'EP3S5 - Bon Appétit - Baqueira Mi Corazon !',
|
||||
'thumbnail': r're:https?://zpks\.com/.+\.jpg',
|
||||
},
|
||||
{
|
||||
'url': 'http://www.zapiks.com/nl/ep3s5-bon-appetit-baqueira-m-1.html',
|
||||
'only_matching': True,
|
||||
},
|
||||
{
|
||||
'url': 'http://www.zapiks.fr/index.php?action=playerIframe&media_id=118046&width=640&height=360&autoStart=false&language=fr',
|
||||
'only_matching': True,
|
||||
},
|
||||
]
|
||||
}]
|
||||
|
||||
def _real_extract(self, url):
|
||||
mobj = self._match_valid_url(url)
|
||||
|
Loading…
Reference in New Issue
Block a user