Improve Streams with Headers and Quality Options
This commit is contained in:
parent
a9f183b22a
commit
fc9700f0ae
@ -1,4 +1,3 @@
|
|||||||
import m3u8
|
|
||||||
|
|
||||||
|
|
||||||
class OriginChannels():
|
class OriginChannels():
|
||||||
@ -32,8 +31,6 @@ class OriginChannels():
|
|||||||
origin_chandict = self.get_channel_dict(channels_json, "identifier", chandict["origin_id"])
|
origin_chandict = self.get_channel_dict(channels_json, "identifier", chandict["origin_id"])
|
||||||
streamdict = self.get_channel_dict(origin_chandict["streams"], "StreamType", 'website')
|
streamdict = self.get_channel_dict(origin_chandict["streams"], "StreamType", 'website')
|
||||||
streamurl = streamdict['Url']
|
streamurl = streamdict['Url']
|
||||||
if self.fhdhr.config.dict["origin"]["force_best"]:
|
|
||||||
streamurl = self.m3u8_beststream(streamurl)
|
|
||||||
|
|
||||||
stream_info = {"url": streamurl}
|
stream_info = {"url": streamurl}
|
||||||
|
|
||||||
@ -41,20 +38,3 @@ class OriginChannels():
|
|||||||
|
|
||||||
def get_channel_dict(self, chanlist, keyfind, valfind):
|
def get_channel_dict(self, chanlist, keyfind, valfind):
|
||||||
return next(item for item in chanlist if item[keyfind] == valfind)
|
return next(item for item in chanlist if item[keyfind] == valfind)
|
||||||
|
|
||||||
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
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user