mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-30 16:42:57 +01:00
[extractor/foxnews] Fix extractors (#7222)
Closes #6050 Authored by: bashonly
This commit is contained in:
parent
5ee9a7d6e1
commit
97d60ad8cd
@ -5,6 +5,7 @@
|
|||||||
int_or_none,
|
int_or_none,
|
||||||
mimetype2ext,
|
mimetype2ext,
|
||||||
parse_iso8601,
|
parse_iso8601,
|
||||||
|
strip_jsonp,
|
||||||
unified_timestamp,
|
unified_timestamp,
|
||||||
url_or_none,
|
url_or_none,
|
||||||
)
|
)
|
||||||
@ -15,7 +16,7 @@ class AMPIE(InfoExtractor): # XXX: Conventionally, base classes should end with
|
|||||||
def _extract_feed_info(self, url):
|
def _extract_feed_info(self, url):
|
||||||
feed = self._download_json(
|
feed = self._download_json(
|
||||||
url, None, 'Downloading Akamai AMP feed',
|
url, None, 'Downloading Akamai AMP feed',
|
||||||
'Unable to download Akamai AMP feed')
|
'Unable to download Akamai AMP feed', transform_source=strip_jsonp)
|
||||||
item = feed.get('channel', {}).get('item')
|
item = feed.get('channel', {}).get('item')
|
||||||
if not item:
|
if not item:
|
||||||
raise ExtractorError('%s said: %s' % (self.IE_NAME, feed['error']))
|
raise ExtractorError('%s said: %s' % (self.IE_NAME, feed['error']))
|
||||||
@ -73,8 +74,10 @@ def get_media_node(name, default=None):
|
|||||||
media_url + '?hdcore=3.4.0&plugin=aasp-3.4.0.132.124',
|
media_url + '?hdcore=3.4.0&plugin=aasp-3.4.0.132.124',
|
||||||
video_id, f4m_id='hds', fatal=False))
|
video_id, f4m_id='hds', fatal=False))
|
||||||
elif ext == 'm3u8':
|
elif ext == 'm3u8':
|
||||||
formats.extend(self._extract_m3u8_formats(
|
fmts, subs = self._extract_m3u8_formats_and_subtitles(
|
||||||
media_url, video_id, 'mp4', m3u8_id='hls', fatal=False))
|
media_url, video_id, 'mp4', m3u8_id='hls', fatal=False)
|
||||||
|
formats.extend(fmts)
|
||||||
|
self._merge_subtitles(subs, target=subtitles)
|
||||||
else:
|
else:
|
||||||
formats.append({
|
formats.append({
|
||||||
'format_id': media_data.get('media-category', {}).get('@attributes', {}).get('label'),
|
'format_id': media_data.get('media-category', {}).get('@attributes', {}).get('label'),
|
||||||
|
@ -7,8 +7,37 @@
|
|||||||
class FoxNewsIE(AMPIE):
|
class FoxNewsIE(AMPIE):
|
||||||
IE_NAME = 'foxnews'
|
IE_NAME = 'foxnews'
|
||||||
IE_DESC = 'Fox News and Fox Business Video'
|
IE_DESC = 'Fox News and Fox Business Video'
|
||||||
_VALID_URL = r'https?://(?P<host>video\.(?:insider\.)?fox(?:news|business)\.com)/v/(?:video-embed\.html\?video_id=)?(?P<id>\d+)'
|
_VALID_URL = r'https?://video\.(?:insider\.)?fox(?:news|business)\.com/v/(?:video-embed\.html\?video_id=)?(?P<id>\d+)'
|
||||||
_TESTS = [
|
_TESTS = [
|
||||||
|
{
|
||||||
|
'url': 'https://video.foxnews.com/v/6320653836112',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '6320653836112',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'Tucker Carlson joins \'Gutfeld!\' to discuss his new documentary',
|
||||||
|
'thumbnail': r're:^https?://.*\.jpg$',
|
||||||
|
'duration': 404,
|
||||||
|
'upload_date': '20230217',
|
||||||
|
'description': 'md5:858a8a36f59e9ca897d758855bcdfa02',
|
||||||
|
'timestamp': 1676611344.0,
|
||||||
|
},
|
||||||
|
'params': {'skip_download': 'm3u8'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# From http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words
|
||||||
|
'url': 'http://video.insider.foxnews.com/v/video-embed.html?video_id=5099377331001&autoplay=true&share_url=http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words&share_title=Student%20Group:%20Saying%20%27Politically%20Correct,%27%20%27Trash%27%20and%20%27Lame%27%20Is%20Offensive&share=true',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '5099377331001',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': '82416_censoring',
|
||||||
|
'description': '82416_censoring',
|
||||||
|
'upload_date': '20160826',
|
||||||
|
'timestamp': 1472169708.0,
|
||||||
|
'thumbnail': r're:^https?://.*\.jpg$',
|
||||||
|
'duration': 521,
|
||||||
|
},
|
||||||
|
'params': {'skip_download': 'm3u8'},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
'url': 'http://video.foxnews.com/v/3937480/frozen-in-time/#sp=show-clips',
|
'url': 'http://video.foxnews.com/v/3937480/frozen-in-time/#sp=show-clips',
|
||||||
'md5': '32aaded6ba3ef0d1c04e238d01031e5e',
|
'md5': '32aaded6ba3ef0d1c04e238d01031e5e',
|
||||||
@ -22,6 +51,7 @@ class FoxNewsIE(AMPIE):
|
|||||||
'upload_date': '20110503',
|
'upload_date': '20110503',
|
||||||
'thumbnail': r're:^https?://.*\.jpg$',
|
'thumbnail': r're:^https?://.*\.jpg$',
|
||||||
},
|
},
|
||||||
|
'skip': '404 page',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'url': 'http://video.foxnews.com/v/3922535568001/rep-luis-gutierrez-on-if-obamas-immigration-plan-is-legal/#sp=show-clips',
|
'url': 'http://video.foxnews.com/v/3922535568001/rep-luis-gutierrez-on-if-obamas-immigration-plan-is-legal/#sp=show-clips',
|
||||||
@ -36,10 +66,7 @@ class FoxNewsIE(AMPIE):
|
|||||||
'upload_date': '20141204',
|
'upload_date': '20141204',
|
||||||
'thumbnail': r're:^https?://.*\.jpg$',
|
'thumbnail': r're:^https?://.*\.jpg$',
|
||||||
},
|
},
|
||||||
'params': {
|
'skip': 'm3u8 HTTP error 400 in web browser',
|
||||||
# m3u8 download
|
|
||||||
'skip_download': True,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'url': 'http://video.foxnews.com/v/video-embed.html?video_id=3937480&d=video.foxnews.com',
|
'url': 'http://video.foxnews.com/v/video-embed.html?video_id=3937480&d=video.foxnews.com',
|
||||||
@ -49,11 +76,6 @@ class FoxNewsIE(AMPIE):
|
|||||||
'url': 'http://video.foxbusiness.com/v/4442309889001',
|
'url': 'http://video.foxbusiness.com/v/4442309889001',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
# From http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words
|
|
||||||
'url': 'http://video.insider.foxnews.com/v/video-embed.html?video_id=5099377331001&autoplay=true&share_url=http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words&share_title=Student%20Group:%20Saying%20%27Politically%20Correct,%27%20%27Trash%27%20and%20%27Lame%27%20Is%20Offensive&share=true',
|
|
||||||
'only_matching': True,
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -67,10 +89,10 @@ def _extract_embed_urls(cls, url, webpage):
|
|||||||
yield f'https://video.foxnews.com/v/video-embed.html?video_id={mobj.group("video_id")}'
|
yield f'https://video.foxnews.com/v/video-embed.html?video_id={mobj.group("video_id")}'
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
host, video_id = self._match_valid_url(url).groups()
|
video_id = self._match_id(url)
|
||||||
|
|
||||||
info = self._extract_feed_info(
|
info = self._extract_feed_info(
|
||||||
'http://%s/v/feed/video/%s.js?template=fox' % (host, video_id))
|
f'https://api.foxnews.com/v3/video-player/{video_id}?callback=uid_{video_id}')
|
||||||
info['id'] = video_id
|
info['id'] = video_id
|
||||||
return info
|
return info
|
||||||
|
|
||||||
@ -78,6 +100,19 @@ def _real_extract(self, url):
|
|||||||
class FoxNewsVideoIE(InfoExtractor):
|
class FoxNewsVideoIE(InfoExtractor):
|
||||||
_VALID_URL = r'https?://(?:www\.)?foxnews\.com/video/(?P<id>\d+)'
|
_VALID_URL = r'https?://(?:www\.)?foxnews\.com/video/(?P<id>\d+)'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
|
'url': 'https://www.foxnews.com/video/6328632286112',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '6328632286112',
|
||||||
|
'ext': 'mp4',
|
||||||
|
'title': 'Review: 2023 Toyota Prius Prime',
|
||||||
|
'duration': 155,
|
||||||
|
'thumbnail': r're:^https://.+\.jpg$',
|
||||||
|
'timestamp': 1685720177.0,
|
||||||
|
'upload_date': '20230602',
|
||||||
|
'description': 'md5:b69aafb125b41c1402e9744f53d6edc4',
|
||||||
|
},
|
||||||
|
'params': {'skip_download': 'm3u8'},
|
||||||
|
}, {
|
||||||
'url': 'https://www.foxnews.com/video/6313058664112',
|
'url': 'https://www.foxnews.com/video/6313058664112',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '6313058664112',
|
'id': '6313058664112',
|
||||||
@ -89,8 +124,7 @@ class FoxNewsVideoIE(InfoExtractor):
|
|||||||
'title': 'Gutfeld! - Thursday, September 29',
|
'title': 'Gutfeld! - Thursday, September 29',
|
||||||
'timestamp': 1664527538,
|
'timestamp': 1664527538,
|
||||||
},
|
},
|
||||||
'expected_warnings': ['Ignoring subtitle tracks'],
|
'skip': '404 page',
|
||||||
'params': {'skip_download': 'm3u8'},
|
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
@ -104,19 +138,22 @@ class FoxNewsArticleIE(InfoExtractor):
|
|||||||
|
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
# data-video-id
|
# data-video-id
|
||||||
'url': 'http://www.foxnews.com/politics/2016/09/08/buzz-about-bud-clinton-camp-denies-claims-wore-earpiece-at-forum.html',
|
'url': 'https://www.foxnews.com/politics/2016/09/08/buzz-about-bud-clinton-camp-denies-claims-wore-earpiece-at-forum.html',
|
||||||
'md5': '83d44e1aff1433e7a29a7b537d1700b5',
|
'md5': 'd2dd6ce809cedeefa96460e964821437',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '5116295019001',
|
'id': '5116295019001',
|
||||||
'ext': 'mp4',
|
'ext': 'mp4',
|
||||||
'title': 'Trump and Clinton asked to defend positions on Iraq War',
|
'title': 'Trump and Clinton asked to defend positions on Iraq War',
|
||||||
'description': 'Veterans react on \'The Kelly File\'',
|
'description': 'Veterans and Fox News host Dana Perino react on \'The Kelly File\' to NBC\'s presidential forum',
|
||||||
'timestamp': 1473301045,
|
'timestamp': 1473301045,
|
||||||
'upload_date': '20160908',
|
'upload_date': '20160908',
|
||||||
|
'thumbnail': r're:^https?://.*\.jpg$',
|
||||||
|
'duration': 426,
|
||||||
},
|
},
|
||||||
|
'params': {'skip_download': 'm3u8'},
|
||||||
}, {
|
}, {
|
||||||
# iframe embed
|
# iframe embed
|
||||||
'url': 'http://www.foxnews.com/us/2018/03/09/parkland-survivor-kyle-kashuv-on-meeting-trump-his-app-to-prevent-another-school-shooting.amp.html?__twitter_impression=true',
|
'url': 'https://www.foxnews.com/us/2018/03/09/parkland-survivor-kyle-kashuv-on-meeting-trump-his-app-to-prevent-another-school-shooting.amp.html?__twitter_impression=true',
|
||||||
'info_dict': {
|
'info_dict': {
|
||||||
'id': '5748266721001',
|
'id': '5748266721001',
|
||||||
'ext': 'flv',
|
'ext': 'flv',
|
||||||
@ -127,9 +164,7 @@ class FoxNewsArticleIE(InfoExtractor):
|
|||||||
'timestamp': 1520594670,
|
'timestamp': 1520594670,
|
||||||
'upload_date': '20180309',
|
'upload_date': '20180309',
|
||||||
},
|
},
|
||||||
'params': {
|
'skip': '404 page',
|
||||||
'skip_download': True,
|
|
||||||
},
|
|
||||||
}, {
|
}, {
|
||||||
'url': 'http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words',
|
'url': 'http://insider.foxnews.com/2016/08/25/univ-wisconsin-student-group-pushing-silence-certain-words',
|
||||||
'only_matching': True,
|
'only_matching': True,
|
||||||
|
Loading…
Reference in New Issue
Block a user