1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-08-16 09:28:28 +00:00
This commit is contained in:
doe1080 2025-07-18 23:01:44 +09:00
parent d7d4c38072
commit 08c216c7ad

View File

@ -519,8 +519,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
# Non-standard embedded Vimeo player
r'<video[^>]+src=(["\'])(?P<url>(?:https?:)?//(?:www\.)?vimeo\.com/[0-9]+)\1',
]
_TESTS = [
{
_TESTS = [{
'url': 'http://vimeo.com/56015672#at=0',
'md5': '8879b6cc097e987f02484baf890129e5',
'info_dict': {
@ -540,8 +539,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
'format': 'best[protocol=https]',
},
'skip': 'No longer available',
},
{
}, {
'url': 'https://player.vimeo.com/video/54469442',
'md5': '619b811a4417aa4abe78dc653becf511',
'note': 'Videos that embed the url in the player page',
@ -550,17 +548,14 @@ class VimeoIE(VimeoBaseInfoExtractor):
'ext': 'mp4',
'title': 'Kathy Sierra: Building the minimum Badass User, Business of Software 2012',
'uploader': 'Business of Software',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/businessofsoftware',
'uploader_id': 'businessofsoftware',
'uploader_url': 'https://vimeo.com/businessofsoftware',
'duration': 3610,
'thumbnail': r're:https?://i\.vimeocdn\.com/video/.+',
},
'params': {
'format': 'best[protocol=https]',
},
'params': {'format': 'best[protocol=https]'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
'url': 'http://vimeo.com/68375962',
'md5': 'aaf896bdb7ddd6476df50007a0ac0ae7',
'note': 'Video protected with password',
@ -572,8 +567,8 @@ class VimeoIE(VimeoBaseInfoExtractor):
'upload_date': '20130614',
'release_timestamp': 1371214555,
'release_date': '20130614',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user18948128',
'uploader_id': 'user18948128',
'uploader_url': 'https://vimeo.com/user18948128',
'uploader': 'Jaime Marquínez Ferrándiz',
'duration': 10,
'comment_count': int,
@ -585,8 +580,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
'videopassword': 'youtube-dl',
},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
'url': 'http://vimeo.com/channels/keypeele/75629013',
'md5': '2f86a05afe9d7abc0b9126d229bbe15d',
'info_dict': {
@ -594,11 +588,11 @@ class VimeoIE(VimeoBaseInfoExtractor):
'ext': 'mp4',
'title': 'Key & Peele: Terrorist Interrogation',
'description': 'md5:6173f270cd0c0119f22817204b3eb86c',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/atencio',
'uploader_id': 'atencio',
'uploader_url': 'https://vimeo.com/atencio',
'uploader': 'Peter Atencio',
'channel_id': 'keypeele',
'channel_url': r're:https?://(?:www\.)?vimeo\.com/channels/keypeele',
'channel_url': 'https://vimeo.com/channels/keypeele',
'timestamp': 1380339469,
'upload_date': '20130928',
'duration': 187,
@ -609,8 +603,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
},
'params': {'format': 'http-1080p'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
'url': 'http://vimeo.com/76979871',
'note': 'Video with subtitles',
'info_dict': {
@ -622,8 +615,8 @@ class VimeoIE(VimeoBaseInfoExtractor):
'upload_date': '20131015',
'release_timestamp': 1381860509,
'release_date': '20131015',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/staff',
'uploader_id': 'staff',
'uploader_url': 'https://vimeo.com/staff',
'uploader': 'Vimeo',
'duration': 62,
'comment_count': int,
@ -640,8 +633,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
'Ignoring subtitle tracks found in the HLS manifest',
'Failed to parse XML: not well-formed',
],
},
{
}, {
# from https://www.ouya.tv/game/Pier-Solar-and-the-Great-Architects/
'url': 'https://player.vimeo.com/video/98044508',
'note': 'The js code contains assignments to the same variable as the config',
@ -650,15 +642,13 @@ class VimeoIE(VimeoBaseInfoExtractor):
'ext': 'mp4',
'title': 'Pier Solar OUYA Official Trailer',
'uploader': 'Tulio Gonçalves',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user28849593',
'uploader_id': 'user28849593',
'uploader_url': 'https://vimeo.com/user28849593',
'duration': 118,
'thumbnail': r're:https?://i\.vimeocdn\.com/video/.+',
},
'expected_warnings': ['Failed to parse XML: not well-formed'],
'params': {'extractor_args': {'generic': {'impersonate': ['chrome']}}},
},
{
}, {
# contains Original format
'url': 'https://vimeo.com/33951933',
# 'md5': '53c688fa95a55bf4b7293d37a89c5c53',
@ -667,8 +657,8 @@ class VimeoIE(VimeoBaseInfoExtractor):
'ext': 'mp4',
'title': 'FOX CLASSICS - Forever Classic ID - A Full Minute',
'uploader': 'The DMCI',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/dmci',
'uploader_id': 'dmci',
'uploader_url': 'https://vimeo.com/dmci',
'timestamp': 1324361742,
'upload_date': '20111220',
'description': 'md5:f37b4ad0f3ded6fa16f38ecde16c3c44',
@ -681,8 +671,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
},
# 'params': {'format': 'Original'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
'note': 'Contains source format not accessible in webpage',
'url': 'https://vimeo.com/393756517',
# 'md5': 'c464af248b592190a5ffbb5d33f382b0',
@ -705,8 +694,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
},
# 'params': {'format': 'source'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
# only available via https://vimeo.com/channels/tributes/6213729 and
# not via https://vimeo.com/6213729
'url': 'https://vimeo.com/channels/tributes/6213729',
@ -715,26 +703,23 @@ class VimeoIE(VimeoBaseInfoExtractor):
'ext': 'mp4',
'title': 'Vimeo Tribute: The Shining',
'uploader': 'Casey Donahue',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/caseydonahue',
'uploader_id': 'caseydonahue',
'channel_url': r're:https?://(?:www\.)?vimeo\.com/channels/tributes',
'uploader_url': 'https://vimeo.com/caseydonahue',
'channel_id': 'tributes',
'channel_url': 'https://vimeo.com/channels/tributes',
'timestamp': 1250886430,
'upload_date': '20090821',
'description': str, # FIXME: Dynamic SEO spam description
'duration': 321,
'comment_count': int,
'view_count': int,
'tags': 'count:4',
'thumbnail': r're:https?://i\.vimeocdn\.com/video/.+',
'like_count': int,
'tags': ['[the shining', 'vimeohq', 'cv', 'vimeo tribute]'],
},
'params': {
'skip_download': True,
},
'params': {'skip_download': True},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
# redirects to ondemand extractor and should be passed through it
# for successful extraction
'url': 'https://vimeo.com/73445910',
@ -743,26 +728,23 @@ class VimeoIE(VimeoBaseInfoExtractor):
'ext': 'mp4',
'title': 'The Reluctant Revolutionary',
'uploader': '10Ft Films',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/tenfootfilms',
'uploader_url': 'https://vimeo.com/tenfootfilms',
'uploader_id': 'tenfootfilms',
'description': 'md5:0fa704e05b04f91f40b7f3ca2e801384',
'upload_date': '20130830',
'timestamp': 1377853339,
},
'params': {
'skip_download': True,
},
'params': {'skip_download': True},
'skip': 'this page is no longer available.',
},
{
}, {
'url': 'https://player.vimeo.com/video/68375962',
'md5': 'aaf896bdb7ddd6476df50007a0ac0ae7',
'info_dict': {
'id': '68375962',
'ext': 'mp4',
'title': 'youtube-dl password protected test video',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/user18948128',
'uploader_id': 'user18948128',
'uploader_url': 'https://vimeo.com/user18948128',
'uploader': 'Jaime Marquínez Ferrándiz',
'duration': 10,
'thumbnail': r're:https?://i\.vimeocdn\.com/video/.+',
@ -772,25 +754,20 @@ class VimeoIE(VimeoBaseInfoExtractor):
'videopassword': 'youtube-dl',
},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
'url': 'http://vimeo.com/moogaloop.swf?clip_id=2539741',
'only_matching': True,
},
{
}, {
'url': 'https://vimeo.com/109815029',
'note': 'Video not completely processed, "failed" seed status',
'only_matching': True,
},
{
}, {
'url': 'https://vimeo.com/groups/travelhd/videos/22439234',
'only_matching': True,
},
{
}, {
'url': 'https://vimeo.com/album/2632481/video/79010983',
'only_matching': True,
},
{
}, {
'url': 'https://vimeo.com/showcase/3253534/video/119195465',
'note': 'A video in a password protected album (showcase)',
'info_dict': {
@ -814,13 +791,11 @@ class VimeoIE(VimeoBaseInfoExtractor):
'videopassword': 'youtube-dl',
},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
# source file returns 403: Forbidden
'url': 'https://vimeo.com/7809605',
'only_matching': True,
},
{
}, {
'note': 'Direct URL with hash',
'url': 'https://vimeo.com/160743502/abd0e13fb4',
'info_dict': {
@ -842,8 +817,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
},
'params': {'skip_download': True},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
'url': 'https://vimeo.com/138909882',
'info_dict': {
'id': '138909882',
@ -868,8 +842,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
# 'format': 'source',
},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
'url': 'https://vimeo.com/channels/staffpicks/143603739',
'info_dict': {
'id': '143603739',
@ -892,15 +865,13 @@ class VimeoIE(VimeoBaseInfoExtractor):
},
'params': {'skip_download': 'm3u8'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
# requires passing unlisted_hash(a52724358e) to load_download_config request
'url': 'https://vimeo.com/392479337/a52724358e',
'only_matching': True,
},
{
}, {
# similar, but all numeric: ID must be 581039021, not 9603038895
# issue #29690
# https://github.com/ytdl-org/youtube-dl/issues/29690
'url': 'https://vimeo.com/581039021/9603038895',
'info_dict': {
'id': '581039021',
@ -918,12 +889,9 @@ class VimeoIE(VimeoBaseInfoExtractor):
'uploader_id': 'txwestcapital',
'upload_date': '20210730',
},
'params': {
'skip_download': True,
},
'params': {'skip_download': True},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
# chapters must be sorted, see: https://github.com/yt-dlp/yt-dlp/issues/5308
'url': 'https://player.vimeo.com/video/756714419',
'info_dict': {
@ -955,8 +923,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
'skip_download': 'm3u8',
},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
# vimeo.com URL with unlisted hash and Original format
'url': 'https://vimeo.com/144579403/ec02229140',
# 'md5': '6b662c2884e0373183fbde2a0d15cb78',
@ -979,8 +946,7 @@ class VimeoIE(VimeoBaseInfoExtractor):
},
# 'params': {'format': 'Original'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
},
{
}, {
# player.vimeo.com URL with source format
'url': 'https://player.vimeo.com/video/859028877',
# 'md5': '19ca3d2463441dee2d2f0671ac2916a2',
@ -997,16 +963,28 @@ class VimeoIE(VimeoBaseInfoExtractor):
# 'params': {'format': 'source'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
'params': {'skip_download': 'm3u8'},
},
{
}, {
# user playlist alias -> https://vimeo.com/258705797
'url': 'https://vimeo.com/user26785108/newspiritualguide',
'only_matching': True,
},
# https://gettingthingsdone.com/workflowmap/
# vimeo embed with check-password page protected by Referer header
]
}]
_WEBPAGE_TESTS = [{
# Referer & password-protected
# https://github.com/yt-dlp/yt-dlp/commit/a1a460759815414c6194bc921ac77a5533b6e02e
'url': 'https://gettingthingsdone.com/workflowmap/',
'info_dict': {
'id': '105375912',
'ext': 'mp4',
'title': 'WORKFLOW MAP',
'duration': 1950,
'thumbnail': r're:https?://i\.vimeocdn\.com/video/.+',
'uploader': 'GTD',
'uploader_id': 'gettingthingsdone',
'uploader_url': 'https://vimeo.com/gettingthingsdone',
},
'expected_warnings': ['Failed to parse XML: not well-formed'],
'skip': 'Password protected',
}, {
'url': 'https://www.gsd.harvard.edu/event/i-m-pei-a-centennial-celebration/',
'info_dict': {
'id': '855172304',
@ -1399,8 +1377,8 @@ class VimeoOndemandIE(VimeoIE): # XXX: Do not subclass from concrete IE
'ext': 'mp4',
'title': 'המעבדה - במאי יותם פלדמן',
'uploader': 'גם סרטים',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/gumfilms',
'uploader_id': 'gumfilms',
'uploader_url': 'https://vimeo.com/gumfilms',
'description': 'md5:aeeba3dbd4d04b0fa98a4fdc9c639998',
'upload_date': '20140906',
'timestamp': 1410032453,
@ -1411,9 +1389,7 @@ class VimeoOndemandIE(VimeoIE): # XXX: Do not subclass from concrete IE
'view_count': int,
'like_count': int,
},
'params': {
'format': 'best[protocol=https]',
},
'params': {'format': 'best[protocol=https]'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
}, {
# requires Referer to be passed along with og:video:url
@ -1423,8 +1399,8 @@ class VimeoOndemandIE(VimeoIE): # XXX: Do not subclass from concrete IE
'ext': 'mp4',
'title': 'Rävlock, rätt läte på rätt plats',
'uploader': 'Lindroth & Norin',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/lindrothnorin',
'uploader_id': 'lindrothnorin',
'uploader_url': 'https://vimeo.com/lindrothnorin',
'description': 'md5:c3c46a90529612c8279fb6af803fc0df',
'upload_date': '20150502',
'timestamp': 1430586422,
@ -1435,9 +1411,7 @@ class VimeoOndemandIE(VimeoIE): # XXX: Do not subclass from concrete IE
'like_count': int,
'tags': 'count:5',
},
'params': {
'skip_download': True,
},
'params': {'skip_download': True},
'expected_warnings': ['Failed to parse XML: not well-formed'],
}, {
'url': 'https://vimeo.com/ondemand/nazmaalik',
@ -1550,9 +1524,7 @@ class VimeoAlbumIE(VimeoBaseInfoExtractor):
'id': '3253534',
},
'playlist_count': 1,
'params': {
'videopassword': 'youtube-dl',
},
'params': {'videopassword': 'youtube-dl'},
}]
_PAGE_SIZE = 100
@ -1695,9 +1667,7 @@ class VimeoReviewIE(VimeoBaseInfoExtractor):
'uploader': 'TMB',
'uploader_id': 'user37284429',
},
'params': {
'videopassword': 'holygrail',
},
'params': {'videopassword': 'holygrail'},
'skip': 'video gone',
}]
@ -1816,8 +1786,8 @@ class VimeoProIE(VimeoBaseInfoExtractor):
'info_dict': {
'id': '68093876',
'ext': 'mp4',
'uploader_url': r're:https?://(?:www\.)?vimeo\.com/openstreetmapus',
'uploader_id': 'openstreetmapus',
'uploader_url': 'https://vimeo.com/openstreetmapus',
'uploader': 'OpenStreetMap US',
'title': 'Andy Allan - Putting the Carto into OpenStreetMap Cartography',
'description': 'md5:8cf69a1a435f2d763f4adf601e9c3125',
@ -1831,9 +1801,7 @@ class VimeoProIE(VimeoBaseInfoExtractor):
'release_timestamp': 1370907556,
'release_date': '20130610',
},
'params': {
'format': 'best[protocol=https]',
},
'params': {'format': 'best[protocol=https]'},
'expected_warnings': ['Failed to parse XML: not well-formed'],
}, {
# password-protected VimeoPro page with Vimeo player embed