mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[dailymotion/generic] Add DailymotionCloudIE
This commit is contained in:
		| @@ -106,6 +106,7 @@ from .dailymotion import ( | ||||
|     DailymotionIE, | ||||
|     DailymotionPlaylistIE, | ||||
|     DailymotionUserIE, | ||||
|     DailymotionCloudIE, | ||||
| ) | ||||
| from .daum import DaumIE | ||||
| from .dbtv import DBTVIE | ||||
|   | ||||
| @@ -251,3 +251,45 @@ class DailymotionUserIE(DailymotionPlaylistIE): | ||||
|             'title': full_user, | ||||
|             'entries': self._extract_entries(user), | ||||
|         } | ||||
|  | ||||
|  | ||||
| class DailymotionCloudIE(DailymotionBaseInfoExtractor): | ||||
|     _VALID_URL = r'http://api\.dmcloud\.net/embed/[^/]+/(?P<id>[^/?]+)' | ||||
|  | ||||
|     _TEST = { | ||||
|         # From http://www.francetvinfo.fr/economie/entreprises/les-entreprises-familiales-le-secret-de-la-reussite_933271.html | ||||
|         # Tested at FranceTvInfo_2 | ||||
|         'url': 'http://api.dmcloud.net/embed/4e7343f894a6f677b10006b4/556e03339473995ee145930c?auth=1464865870-0-jyhsm84b-ead4c701fb750cf9367bf4447167a3db&autoplay=1', | ||||
|         'only_matching': True, | ||||
|     } | ||||
|  | ||||
|     @classmethod | ||||
|     def _extract_dmcloud_url(self, webpage): | ||||
|         mobj = re.search(r'<iframe[^>]+src=[\'"](http://api\.dmcloud\.net/embed/[^/]+/[^\'"]+)[\'"]', webpage) | ||||
|         if mobj: | ||||
|             return mobj.group(1) | ||||
|  | ||||
|         mobj = re.search(r'<input[^>]+id=[\'"]dmcloudUrlEmissionSelect[\'"][^>]+value=[\'"](http://api\.dmcloud\.net/embed/[^/]+/[^\'"]+)[\'"]', webpage) | ||||
|         if mobj: | ||||
|             return mobj.group(1) | ||||
|  | ||||
|     def _real_extract(self, url): | ||||
|         video_id = self._match_id(url) | ||||
|  | ||||
|         request = self._build_request(url) | ||||
|         webpage = self._download_webpage(request, video_id) | ||||
|  | ||||
|         title = self._html_search_regex(r'<title>([^>]+)</title>', webpage, 'title') | ||||
|  | ||||
|         video_info = self._parse_json(self._search_regex( | ||||
|             r'var\s+info\s*=\s*([^;]+);', webpage, 'video info'), video_id) | ||||
|  | ||||
|         # TODO: parse ios_url, which is in fact a manifest | ||||
|         video_url = video_info['mp4_url'] | ||||
|  | ||||
|         return { | ||||
|             'id': video_id, | ||||
|             'url': video_url, | ||||
|             'title': title, | ||||
|             'thumbnail': video_info.get('thumbnail_url'), | ||||
|         } | ||||
|   | ||||
| @@ -44,6 +44,7 @@ from .bliptv import BlipTVIE | ||||
| from .svt import SVTIE | ||||
| from .pornhub import PornHubIE | ||||
| from .vimeo import VimeoIE | ||||
| from .dailymotion import DailymotionCloudIE | ||||
|  | ||||
|  | ||||
| class GenericIE(InfoExtractor): | ||||
| @@ -813,6 +814,17 @@ class GenericIE(InfoExtractor): | ||||
|                 'description': 'To understand why he was the Toronto Blue Jays’ top off-season priority is to appreciate his background and upbringing in Montreal, where he first developed his baseball skills. Written and narrated by Stephen Brunt.', | ||||
|                 'uploader': 'Rogers Sportsnet', | ||||
|             }, | ||||
|         }, | ||||
|         # Dailymotion Cloud video | ||||
|         { | ||||
|             'url': 'http://replay.publicsenat.fr/vod/le-debat/florent-kolandjian,dominique-cena,axel-decourtye,laurence-abeille,bruno-parmentier/175910', | ||||
|             'md5': '49444254273501a64675a7e68c502681', | ||||
|             'info_dict': { | ||||
|                 'id': '5585de919473990de4bee11b', | ||||
|                 'ext': 'mp4', | ||||
|                 'title': 'Le débat', | ||||
|                 'thumbnail': 're:^https?://.*\.jpe?g$', | ||||
|             } | ||||
|         } | ||||
|     ] | ||||
|  | ||||
| @@ -1486,6 +1498,11 @@ class GenericIE(InfoExtractor): | ||||
|         if senate_isvp_url: | ||||
|             return self.url_result(senate_isvp_url, 'SenateISVP') | ||||
|  | ||||
|         # Look for Dailymotion Cloud videos | ||||
|         dmcloud_url = DailymotionCloudIE._extract_dmcloud_url(webpage) | ||||
|         if dmcloud_url: | ||||
|             return self.url_result(dmcloud_url, 'DailymotionCloud') | ||||
|  | ||||
|         def check_video(vurl): | ||||
|             if YoutubeIE.suitable(vurl): | ||||
|                 return True | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan