aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-10-08 01:34:17 +0700
committerSergey M․ <dstftw@gmail.com>2017-10-08 01:34:17 +0700
commita22ccac1f02b5957f1f083a54e1f83d22a7e6f69 (patch)
tree6527fcf2d2db722876917f59fb3637b754d9501a
parent8b561bfc9d15bf487be0e0bb5bb1d7248fd321d3 (diff)
[fox] Delegate to uplynk:preplay (#14147)
-rw-r--r--youtube_dl/extractor/fox.py33
1 files changed, 23 insertions, 10 deletions
diff --git a/youtube_dl/extractor/fox.py b/youtube_dl/extractor/fox.py
index facc665f6..5f98d017b 100644
--- a/youtube_dl/extractor/fox.py
+++ b/youtube_dl/extractor/fox.py
@@ -2,7 +2,10 @@
from __future__ import unicode_literals
from .adobepass import AdobePassIE
+from .uplynk import UplynkPreplayIE
+from ..compat import compat_str
from ..utils import (
+ HEADRequest,
int_or_none,
parse_age_limit,
parse_duration,
@@ -53,14 +56,7 @@ class FOXIE(AdobePassIE):
})
title = video['name']
-
- m3u8_url = self._download_json(
- video['videoRelease']['url'], video_id)['playURL']
-
- formats = self._extract_m3u8_formats(
- m3u8_url, video_id, 'mp4',
- entry_protocol='m3u8_native', m3u8_id='hls')
- self._sort_formats(formats)
+ release_url = video['videoRelease']['url']
description = video.get('description')
duration = int_or_none(video.get('durationInSeconds')) or int_or_none(
@@ -84,7 +80,7 @@ class FOXIE(AdobePassIE):
# TODO: AP
pass
- return {
+ info = {
'id': video_id,
'title': title,
'description': description,
@@ -97,5 +93,22 @@ class FOXIE(AdobePassIE):
'episode': episode,
'episode_number': episode_number,
'release_year': release_year,
- 'formats': formats,
}
+
+ urlh = self._request_webpage(HEADRequest(release_url), video_id)
+ video_url = compat_str(urlh.geturl())
+
+ if UplynkPreplayIE.suitable(video_url):
+ info.update({
+ '_type': 'url_transparent',
+ 'url': video_url,
+ 'ie_key': UplynkPreplayIE.ie_key(),
+ })
+ else:
+ m3u8_url = self._download_json(release_url, video_id)['playURL']
+ formats = self._extract_m3u8_formats(
+ m3u8_url, video_id, 'mp4',
+ entry_protocol='m3u8_native', m3u8_id='hls')
+ self._sort_formats(formats)
+ info['formats'] = formats
+ return info