mirror of
https://github.com/l1ving/youtube-dl
synced 2020-11-18 19:53:54 -08:00
71 lines
2.6 KiB
Python
71 lines
2.6 KiB
Python
# coding: utf-8
|
|
from __future__ import unicode_literals
|
|
|
|
from .theplatform import ThePlatformFeedIE
|
|
|
|
|
|
class MediasetIE(ThePlatformFeedIE):
|
|
_VALID_URL = r'''(?x)
|
|
(?:
|
|
mediaset:|
|
|
https?://
|
|
(?:www\.)?mediasetplay\.mediaset\.it/video/
|
|
(?:[^/]+/)
|
|
(?:[^/_]+)_
|
|
)(?P<id>F[0-9]+)
|
|
'''
|
|
_TESTS = [{
|
|
# full episode
|
|
'url': 'https://www.mediasetplay.mediaset.it/video/temptationisland/lunedi-16-luglio-seconda-puntata_F309179001000201',
|
|
'md5': 'aea24e52e32bf3e1dae8e0c54c7a1370',
|
|
'info_dict': {
|
|
'id': 'F309179001000201',
|
|
'ext': 'mpd',
|
|
'title': 'Lunedì 16 luglio - Seconda puntata',
|
|
'description': 'md5:d41d8cd98f00b204e9800998ecf8427e',
|
|
'thumbnail': r're:^https?://.*\.jpg$',
|
|
'duration': 10045.01,
|
|
'upload_date': '20180717',
|
|
'uploader': 'FINC-MSIT',
|
|
'timestamp': 1531789469,
|
|
}
|
|
}, {
|
|
'url': 'https://www.mediasetplay.mediaset.it/video/beforewego/before-we-go_F307046901000103',
|
|
'md5': '50eba7a60b5142ae232a1d9858d84e57',
|
|
'info_dict': {
|
|
'id': 'F307046901000103',
|
|
'ext': 'mpd',
|
|
'title': 'Before we go',
|
|
'description': 'md5:d41d8cd98f00b204e9800998ecf8427e',
|
|
'thumbnail': r're:^https?://.*\.jpg$',
|
|
'duration': 5478.014,
|
|
'upload_date': '20180714',
|
|
'uploader': 'FINC-MSIT',
|
|
'timestamp': 1531529416,
|
|
}
|
|
}]
|
|
|
|
def _download_theplatform_metadata(self, path, video_id):
|
|
info_url = 'http://link.theplatform.eu/s/%s?format=preview' % path
|
|
return self._download_json(info_url, video_id)
|
|
|
|
def _real_extract(self, url):
|
|
video_id = self._match_id(url)
|
|
provider_id = 'PR1GhC'
|
|
real_url = 'https://feed.entertainment.tv.theplatform.eu/f/%s/mediaset-prod-all-programs?byGuid=%s' % (provider_id, video_id)
|
|
entry = self._download_json(real_url, video_id)['entries'][0]
|
|
|
|
theplatform_id = entry['media'][0]['pid']
|
|
smil_url = 'https://link.theplatform.eu/s/%s/media/%s?format=smil' % (provider_id, theplatform_id)
|
|
formats, subtitles = self._extract_theplatform_smil(smil_url, video_id)
|
|
|
|
path = provider_id + '/media/' + theplatform_id
|
|
ret = self._extract_theplatform_metadata(path, video_id)
|
|
ret.update({
|
|
'id': video_id,
|
|
'formats': formats,
|
|
'subtitles': subtitles,
|
|
})
|
|
|
|
return ret
|