mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-28 07:36:52 +01:00
parent
43f1e4e41e
commit
ad213a1d74
@ -112,6 +112,13 @@ class DailymotionIE(DailymotionBaseInfoExtractor):
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _extract_urls(webpage):
|
||||||
|
# Look for embedded Dailymotion player
|
||||||
|
matches = re.findall(
|
||||||
|
r'<(?:(?:embed|iframe)[^>]+?src=|input[^>]+id=[\'"]dmcloudUrlEmissionSelect[\'"][^>]+value=)(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.com/(?:embed|swf)/video/.+?)\1', webpage)
|
||||||
|
return list(map(lambda m: unescapeHTML(m[1]), matches))
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
video_id = self._match_id(url)
|
video_id = self._match_id(url)
|
||||||
|
|
||||||
|
@ -14,7 +14,10 @@
|
|||||||
parse_duration,
|
parse_duration,
|
||||||
determine_ext,
|
determine_ext,
|
||||||
)
|
)
|
||||||
from .dailymotion import DailymotionCloudIE
|
from .dailymotion import (
|
||||||
|
DailymotionIE,
|
||||||
|
DailymotionCloudIE,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class FranceTVBaseInfoExtractor(InfoExtractor):
|
class FranceTVBaseInfoExtractor(InfoExtractor):
|
||||||
@ -188,6 +191,21 @@ class FranceTvInfoIE(FranceTVBaseInfoExtractor):
|
|||||||
'params': {
|
'params': {
|
||||||
'skip_download': True,
|
'skip_download': True,
|
||||||
},
|
},
|
||||||
|
}, {
|
||||||
|
# Dailymotion embed
|
||||||
|
'url': 'http://www.francetvinfo.fr/politique/notre-dame-des-landes/video-sur-france-inter-cecile-duflot-denonce-le-regard-meprisant-de-patrick-cohen_1520091.html',
|
||||||
|
'md5': 'ee7f1828f25a648addc90cb2687b1f12',
|
||||||
|
'info_dict': {
|
||||||
|
'id': 'x4iiko0',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'NDDL, référendum, Brexit : Cécile Duflot répond à Patrick Cohen',
|
||||||
|
'description': 'Au lendemain de la victoire du "oui" au référendum sur l\'aéroport de Notre-Dame-des-Landes, l\'ancienne ministre écologiste est l\'invitée de Patrick Cohen. Plus d\'info : https://www.franceinter.fr/emissions/le-7-9/le-7-9-27-juin-2016',
|
||||||
|
'timestamp': 1467011958,
|
||||||
|
'upload_date': '20160627',
|
||||||
|
'uploader': 'France Inter',
|
||||||
|
'uploader_id': 'x2q2ez',
|
||||||
|
},
|
||||||
|
'add_ie': ['Dailymotion'],
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
@ -197,7 +215,13 @@ def _real_extract(self, url):
|
|||||||
|
|
||||||
dmcloud_url = DailymotionCloudIE._extract_dmcloud_url(webpage)
|
dmcloud_url = DailymotionCloudIE._extract_dmcloud_url(webpage)
|
||||||
if dmcloud_url:
|
if dmcloud_url:
|
||||||
return self.url_result(dmcloud_url, 'DailymotionCloud')
|
return self.url_result(dmcloud_url, DailymotionCloudIE.ie_key())
|
||||||
|
|
||||||
|
dailymotion_urls = DailymotionIE._extract_urls(webpage)
|
||||||
|
if dailymotion_urls:
|
||||||
|
return self.playlist_result([
|
||||||
|
self.url_result(dailymotion_url, DailymotionIE.ie_key())
|
||||||
|
for dailymotion_url in dailymotion_urls])
|
||||||
|
|
||||||
video_id, catalogue = self._search_regex(
|
video_id, catalogue = self._search_regex(
|
||||||
(r'id-video=([^@]+@[^"]+)',
|
(r'id-video=([^@]+@[^"]+)',
|
||||||
|
@ -49,7 +49,10 @@
|
|||||||
from .xhamster import XHamsterEmbedIE
|
from .xhamster import XHamsterEmbedIE
|
||||||
from .tnaflix import TNAFlixNetworkEmbedIE
|
from .tnaflix import TNAFlixNetworkEmbedIE
|
||||||
from .vimeo import VimeoIE
|
from .vimeo import VimeoIE
|
||||||
from .dailymotion import DailymotionCloudIE
|
from .dailymotion import (
|
||||||
|
DailymotionIE,
|
||||||
|
DailymotionCloudIE,
|
||||||
|
)
|
||||||
from .onionstudios import OnionStudiosIE
|
from .onionstudios import OnionStudiosIE
|
||||||
from .viewlift import ViewLiftEmbedIE
|
from .viewlift import ViewLiftEmbedIE
|
||||||
from .screenwavemedia import ScreenwaveMediaIE
|
from .screenwavemedia import ScreenwaveMediaIE
|
||||||
@ -1673,12 +1676,9 @@ def _playlist_from_matches(matches, getter=None, ie=None):
|
|||||||
if matches:
|
if matches:
|
||||||
return _playlist_from_matches(matches, lambda m: m[-1])
|
return _playlist_from_matches(matches, lambda m: m[-1])
|
||||||
|
|
||||||
# Look for embedded Dailymotion player
|
matches = DailymotionIE._extract_urls(webpage)
|
||||||
matches = re.findall(
|
|
||||||
r'<(?:(?:embed|iframe)[^>]+?src=|input[^>]+id=[\'"]dmcloudUrlEmissionSelect[\'"][^>]+value=)(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.com/(?:embed|swf)/video/.+?)\1', webpage)
|
|
||||||
if matches:
|
if matches:
|
||||||
return _playlist_from_matches(
|
return _playlist_from_matches(matches)
|
||||||
matches, lambda m: unescapeHTML(m[1]))
|
|
||||||
|
|
||||||
# Look for embedded Dailymotion playlist player (#3822)
|
# Look for embedded Dailymotion playlist player (#3822)
|
||||||
m = re.search(
|
m = re.search(
|
||||||
|
Loading…
Reference in New Issue
Block a user