summary refs log tree commit diff
diff options
context:
space:
mode:
authorRemita Amine <remitamine@gmail.com>2020-12-29 14:06:58 +0100
committerRemita Amine <remitamine@gmail.com>2020-12-29 14:11:37 +0100
commit7acd042bbb555962f42fa4f0f236772194d2da64 (patch)
tree4429dbdb84126e8fc94f27aa26190ec8a651af7b
parentbcfe485e0172ff32c450bb7835cfae7fca7594ae (diff)
downloadyoutube-dl-7acd042bbb555962f42fa4f0f236772194d2da64.tar.gz
youtube-dl-7acd042bbb555962f42fa4f0f236772194d2da64.tar.xz
youtube-dl-7acd042bbb555962f42fa4f0f236772194d2da64.zip
[tenplay] fix format extraction(closes #26653)
-rw-r--r--youtube_dl/extractor/tenplay.py34
1 files changed, 23 insertions, 11 deletions
diff --git a/youtube_dl/extractor/tenplay.py b/youtube_dl/extractor/tenplay.py
index af325fea8..cd30d57f4 100644
--- a/youtube_dl/extractor/tenplay.py
+++ b/youtube_dl/extractor/tenplay.py
@@ -3,9 +3,10 @@ from __future__ import unicode_literals
 
 from .common import InfoExtractor
 from ..utils import (
+    HEADRequest,
     parse_age_limit,
     parse_iso8601,
-    smuggle_url,
+    # smuggle_url,
 )
 
 
@@ -24,14 +25,16 @@ class TenPlayIE(InfoExtractor):
             'uploader_id': '2199827728001',
         },
         'params': {
-            'format': 'bestvideo',
+            # 'format': 'bestvideo',
             'skip_download': True,
         }
     }, {
         'url': 'https://10play.com.au/how-to-stay-married/web-extras/season-1/terrys-talks-ep-1-embracing-change/tpv190915ylupc',
         'only_matching': True,
     }]
-    BRIGHTCOVE_URL_TEMPLATE = 'https://players.brightcove.net/2199827728001/cN6vRtRQt_default/index.html?videoId=%s'
+    # BRIGHTCOVE_URL_TEMPLATE = 'https://players.brightcove.net/2199827728001/cN6vRtRQt_default/index.html?videoId=%s'
+    _GEO_BYPASS = False
+    _FASTLY_URL_TEMPL = 'https://10-selector.global.ssl.fastly.net/s/kYEXFC/media/%s?mbr=true&manifest=m3u&format=redirect'
 
     def _real_extract(self, url):
         content_id = self._match_id(url)
@@ -40,19 +43,28 @@ class TenPlayIE(InfoExtractor):
         video = data.get('video') or {}
         metadata = data.get('metaData') or {}
         brightcove_id = video.get('videoId') or metadata['showContentVideoId']
-        brightcove_url = smuggle_url(
-            self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id,
-            {'geo_countries': ['AU']})
+        # brightcove_url = smuggle_url(
+        #     self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id,
+        #     {'geo_countries': ['AU']})
+        m3u8_url = self._request_webpage(HEADRequest(
+            self._FASTLY_URL_TEMPL % brightcove_id), brightcove_id).geturl()
+        if '10play-not-in-oz' in m3u8_url:
+            self.raise_geo_restricted(countries=['AU'])
+        formats = self._extract_m3u8_formats(m3u8_url, brightcove_id, 'mp4')
+        self._sort_formats(formats)
 
         return {
-            '_type': 'url_transparent',
-            'url': brightcove_url,
-            'id': content_id,
-            'title': video.get('title') or metadata.get('pageContentName') or metadata.get('showContentName'),
+            # '_type': 'url_transparent',
+            # 'url': brightcove_url,
+            'formats': formats,
+            'id': brightcove_id,
+            'title': video.get('title') or metadata.get('pageContentName') or metadata['showContentName'],
             'description': video.get('description'),
             'age_limit': parse_age_limit(video.get('showRatingClassification') or metadata.get('showProgramClassification')),
             'series': metadata.get('showName'),
             'season': metadata.get('showContentSeason'),
             'timestamp': parse_iso8601(metadata.get('contentPublishDate') or metadata.get('pageContentPublishDate')),
-            'ie_key': 'BrightcoveNew',
+            'thumbnail': video.get('poster'),
+            'uploader_id': '2199827728001',
+            # 'ie_key': 'BrightcoveNew',
         }