2020-04-25 19:26:39 -07:00

128 lines
4.5 KiB
Python

from .common import InfoExtractor
LABEL_SIZES={
'480p': {"width":640, "height": 480},
'480i': {"width":640, "height": 480},
'720p': {"width":1280, "height": 720},
'720i': {"width":1280, "height": 720},
'1080p': {"width":1920, "height": 1080},
'1080i': {"width":1920, "height": 1080},
'1440p': {"width":2560, "height": 1440},
'1440i': {"width":2560, "height": 1440},
'4K': {"width":3840, "height": 2160},
'2160p': {"width":3840, "height": 2160},
'2160i': {"width":3840, "height": 2160},
'8K': {"width":7680, "height": 4320},
'4320p': {"width":7680, "height": 4320},
'4320i': {"width":7680, "height": 4320},
}
class MyRunningManIE(InfoExtractor):
_VALID_URL = r'(?:https?://)?(?:www\.)?myrunningman\.com/ep/(?P<id>[0-9]+)$'
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
data_url = self._html_search_regex(r'data-url="f([^"]+)"', webpage, "data-url")
source = self._download_json('https://feurl.com/api/source/{}'.format(data_url),video_id, data='r=https%3A%2F%2Fwww.myrunningman.com%2Fcache%2Fstream%2Ff{}.html&d=feurl.com'.format(data_url).encode('utf-8'))
assert source['success']
formats = []
for d in source['data']:
formats.append(dict({
'ext': d['type'],
'url': d['file'],
}, **LABEL_SIZES.get(d['label'], {})))
return {
'id': video_id,
'title': self._html_search_regex(
r'<title>(?:Episode #[0-9]+ - )?(.*?)(?: - My Running Man [(]MyRM[)])?</title>',
webpage,
'title'
),
'formats': formats,
}
_="""{
"success": true,
"player": {
"poster_file": "/userdata/220521/poster/4/0o/40ox-ry0yo8.png?v=1558638851",
"logo_file": "/userdata/220521/player/2706_logo.png?v=1558807686",
"logo_position": "control-bar",
"logo_link": "https://www.myrunningman.com",
"logo_margin": 10,
"aspectratio": "16:9",
"powered_text": "Fembed 1.6.0",
"powered_url": "https://www.fembed.com",
"css_background": "rgba(0, 0, 0, 0)",
"css_text": "#f2f2f2",
"css_menu": "#333333",
"css_mntext": "#ffffff",
"css_caption": "#000000",
"css_cttext": "#ffffff",
"css_ctsize": "15",
"css_ctopacity": "40",
"css_icon": "rgba(255, 255, 255, 0.8)",
"css_ichover": "#ffffff",
"css_tsprogress": "#f2f2f2",
"css_tsrail": "rgba(255, 255, 255, 0.3)",
"css_button": "#565656",
"css_bttext": "#ffffff",
"opt_autostart": false,
"opt_title": false,
"opt_quality": true,
"opt_caption": false,
"opt_download": false,
"opt_sharing": false,
"opt_playrate": false,
"opt_mute": false,
"opt_loop": false,
"opt_vr": false,
"opt_cast": {
"appid": "00000000"
},
"opt_nodefault": false,
"opt_forceposter": false,
"opt_parameter": false,
"restrict_domain": "myrunningman.com",
"restrict_action": "DisplayErrorPage",
"restrict_target": "https://www.myrunningman.com/",
"adb_enable": false,
"adb_offset": "0",
"adb_text": "Please turn off adblockers in order to continue watching",
"ads_adult": false,
"ads_pop": true,
"ads_vast": true,
"ads_free": 0,
"trackingId": "",
"viewId": "",
"income": false,
"incomePop": false,
"resume_text": "Welcome back! You left off at xx:xx:xx. Would you like to resume watching?",
"resume_yes": "Yes",
"resume_no": "No",
"resume_enable": true,
"css_ctedge": "none",
"logger": "https://v3.fstats.xyz",
"revenue": "https://b.suggestvideos.xyz/scripts/coming-soon",
"revenue_fallback": "https://obefjbb4mykw.com/6b/64/32/6b64325728db266a83a1ce720563f755.js",
"revenue_track": "https://mc.yandex.ru/watch/56313682"
},
"data": [
{
"file": "https://fvs.io/redirector?token=VXIxalFMbFBKZE5zOVRvNjVNVWxNYkxXR2dCdis5V2xtL3lVR2E2VGxEdmVraSs4YXp2Q0MzeWJFMDA0bDhJK2ZlWDlBTlF3eTI3dXVqWWl4aHlOTHEvVkpMNHYveHRtWGhCc08xWlFZVGx3MjBaSHIrT3ZvODRZM2FZU21GaUZ2WEE0Vm00cHBpazFHcGcxaTB0Vzc3MmZ1QWs9OnZNVFkzWTdWdm02RGc1Tm9hd1M0ZEE9PQ",
"label": "480p",
"type": "mp4"
},
{
"file": "https://fvs.io/redirector?token=NUh5RHFiR2lUUWswcXFFUEhCLzhIUk90Z0JoRWhQb21ERGJBSGhEU2RxWFhvSS9rbDRKeW4vVkRMd0RrTWlFNkYyMUU5ZGN3cmEyVWFCeVdpTGJueDl3cC9hOWF2RkY4Y2ZpYmZzeGE5c2N2NUdPWVpoc21RMUE3R0ZPU3RqY0VoTWZLQTUwMkxFTnMwZTkreVpoNzYrQnVYdz09OmZ4UlF1eFNkU3ZYT3RzOGcrZ0k3TlE9PQ",
"label": "720p",
"type": "mp4"
}
],
"captions": [],
"is_vr": false
}"""