- rimosso supporto a TVDB (l'accesso alle API diventerà a pagamento) - aggiunto canale Discovery+ - aggiunta possibilità di scegliere numerazioni alternative per le serie tv - migliorie interne di vario tipo (tra cui un migliore riconoscimento dei contenuti nel caso siano scritti male)
36 lines
1.4 KiB
Python
36 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
from core import httptools, support, jsontools
|
|
from platformcode import config, logger
|
|
|
|
|
|
def test_video_exists(page_url):
|
|
global data
|
|
logger.debug('page url=', page_url)
|
|
response = httptools.downloadpage(page_url)
|
|
|
|
if response.code == 404:
|
|
return False, config.get_localized_string(70449) % 'Paramount'
|
|
else:
|
|
data = response.data
|
|
return True, ""
|
|
|
|
|
|
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
|
logger.debug("url=" + page_url)
|
|
# from core.support import dbg;dbg()
|
|
qualities = []
|
|
video_urls = []
|
|
mgid = support.match(data, patron=r'uri":"([^"]+)"').match
|
|
url = 'https://media.mtvnservices.com/pmt/e1/access/index.html?uri=' + mgid + '&configtype=edge&ref=' + page_url
|
|
ID, rootUrl = support.match(url, patron=[r'"id":"([^"]+)",',r'brightcove_mediagenRootURL":"([^"]+)"']).matches
|
|
url = jsontools.load(support.match(rootUrl.replace('&device={device}','').format(uri = ID)).data)['package']['video']['item'][0]['rendition'][0]['src']
|
|
urls = support.match(url, patron=r'RESOLUTION=(\d+x\d+).*?(http[^ ]+)').matches
|
|
for quality, url in urls:
|
|
quality = quality.split('x')[0]
|
|
if quality not in qualities:
|
|
qualities.append(quality)
|
|
video_urls.append(["m3u8 {}p [Paramount]".format(quality), url])
|
|
video_urls.sort(key=lambda url: int(support.match(url[0], patron=r'(\d+)p').match))
|
|
return video_urls
|