47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
import m3u8
|
|
|
|
|
|
class OriginChannels():
|
|
|
|
def __init__(self, fhdhr, origin):
|
|
self.fhdhr = fhdhr
|
|
self.origin = origin
|
|
|
|
self.base_api = 'https://valencia-app-mds.xumo.com/v2/%s'
|
|
|
|
def get_channels(self):
|
|
|
|
channel_list = []
|
|
|
|
channel_json_path = 'channels/list/%s.json?sort=hybrid&geoId=%s' % (self.origin.geoLST, self.origin.geoID)
|
|
channel_json_url = self.base_api + channel_json_path
|
|
api_json = self.fhdhr.web.session.get(channel_json_url).json()
|
|
print(api_json)
|
|
|
|
return
|
|
|
|
return channel_list
|
|
|
|
def get_channel_stream(self, chandict):
|
|
streamurl = ''
|
|
# if self.fhdhr.config.dict["origin"]["force_best"]:
|
|
# streamurl = self.m3u8_beststream(streamurl)
|
|
return streamurl
|
|
|
|
def m3u8_beststream(self, m3u8_url):
|
|
bestStream = None
|
|
videoUrlM3u = m3u8.load(m3u8_url)
|
|
if not videoUrlM3u.is_variant:
|
|
return m3u8_url
|
|
|
|
for videoStream in videoUrlM3u.playlists:
|
|
if not bestStream:
|
|
bestStream = videoStream
|
|
elif videoStream.stream_info.bandwidth > bestStream.stream_info.bandwidth:
|
|
bestStream = videoStream
|
|
|
|
if not bestStream:
|
|
return bestStream.absolute_uri
|
|
else:
|
|
return m3u8_url
|