From be62d0777af6df64e0db72d7ea842e1f6884c922 Mon Sep 17 00:00:00 2001 From: Cary Jones Date: Fri, 13 Oct 2017 18:57:12 -0700 Subject: [PATCH] Fix Fox extractor when provider logins are required --- youtube_dl/extractor/fox.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/youtube_dl/extractor/fox.py b/youtube_dl/extractor/fox.py index 5f98d017b..8a8220605 100644 --- a/youtube_dl/extractor/fox.py +++ b/youtube_dl/extractor/fox.py @@ -11,6 +11,7 @@ from ..utils import ( parse_duration, try_get, unified_timestamp, + update_url_query, ) @@ -76,9 +77,13 @@ class FOXIE(AdobePassIE): episode_number = int_or_none(video.get('episodeNumber')) release_year = int_or_none(video.get('releaseYear')) + query = {} if data.get('authRequired'): - # TODO: AP - pass + rating = video.get('contentRating') + if rating == 'n/a': + rating = None + resource = self._get_mvpd_resource('fbc-fox', None, video['guid'], rating) + query['auth'] = self._extract_mvpd_auth(url, video_id, 'fbc-fox', resource) info = { 'id': video_id, @@ -95,17 +100,18 @@ class FOXIE(AdobePassIE): 'release_year': release_year, } - urlh = self._request_webpage(HEADRequest(release_url), video_id) - video_url = compat_str(urlh.geturl()) + if not data.get('authRequired'): + urlh = self._request_webpage(HEADRequest(release_url), video_id) + video_url = compat_str(urlh.geturl()) - if UplynkPreplayIE.suitable(video_url): + if not data.get('authRequired') and 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'] + m3u8_url = self._download_json(update_url_query(video['videoRelease']['url'], query), video_id)['playURL'] formats = self._extract_m3u8_formats( m3u8_url, video_id, 'mp4', entry_protocol='m3u8_native', m3u8_id='hls')