1
0
mirror of https://codeberg.org/polarisfm/youtube-dl synced 2024-12-24 15:27:55 +01:00

[history] fix signature and media url extraction(fixes #8240)

This commit is contained in:
remitamine 2016-01-15 12:34:28 +01:00
parent 345f12196c
commit ffbc0baf72
2 changed files with 14 additions and 5 deletions

View File

@ -2,6 +2,7 @@ from __future__ import unicode_literals
from .common import InfoExtractor from .common import InfoExtractor
from ..utils import smuggle_url from ..utils import smuggle_url
from ..compat import compat_urllib_parse
class HistoryIE(InfoExtractor): class HistoryIE(InfoExtractor):
@ -19,13 +20,21 @@ class HistoryIE(InfoExtractor):
'add_ie': ['ThePlatform'], 'add_ie': ['ThePlatform'],
}] }]
_VIDEO_URL_RE = [
r"media_url\s*=\s*'[^']'",
r'data-mediaurl="([^"]+)"'
]
def _real_extract(self, url): def _real_extract(self, url):
video_id = self._match_id(url) video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id) webpage = self._download_webpage(url, video_id)
video_url = self._search_regex( media_url = self._search_regex(self._VIDEO_URL_RE, webpage, 'video url')
r'data-href="[^"]*/%s"[^>]+data-release-url="([^"]+)"' % video_id,
webpage, 'video url')
return self.url_result(smuggle_url(video_url, {'sig': {'key': 'crazyjava', 'secret': 's3cr3t'}})) pdk_signature = webpage = self._download_webpage(
'https://signature.video.aetndigital.com/?' +
compat_urllib_parse.urlencode({'url': media_url}), video_id)
return self.url_result(smuggle_url(
media_url + '?mbr=true&format=smil&sig=' + pdk_signature, {'force_smil_url': True}))

View File

@ -85,7 +85,7 @@ class ThePlatformBaseIE(InfoExtractor):
class ThePlatformIE(ThePlatformBaseIE): class ThePlatformIE(ThePlatformBaseIE):
_VALID_URL = r'''(?x) _VALID_URL = r'''(?x)
(?:https?://(?:link|player)\.theplatform\.com/[sp]/(?P<provider_id>[^/]+)/ (?:https?://(?:link|player)\.theplatform\.com/[sp]/(?P<provider_id>[^/]+)/
(?:(?P<media>(?:[^/]+/)+select/media/)|(?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/))? (?:(?P<media>(?:(?:[^/]+/)+select/)?media/)|(?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/))?
|theplatform:)(?P<id>[^/\?&]+)''' |theplatform:)(?P<id>[^/\?&]+)'''
_TESTS = [{ _TESTS = [{