@@ -43,10 +43,13 @@ def get_live(id):
4343 pin = get_config_value ('pin' )
4444 else :
4545 pin = '1234'
46- post = {"authorization" :[{"schema" :"PinRequestAuthorization" ,"pin" :pin ,"type" :"parental" }],"payload" :{"criteria" :{"schema" :"ContentCriteria" ,"contentId" :"channel." + id },"startMode" :"live " },"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
46+ post = {"authorization" :[{"schema" :"PinRequestAuthorization" ,"pin" :pin ,"type" :"parental" }],"payload" :{"criteria" :{"schema" :"ContentCriteria" ,"contentId" :"channel." + id },"startMode" :"start " },"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
4747 else :
48- post = {"payload" :{"criteria" :{"schema" :"ContentCriteria" ,"contentId" :"channel." + id },"startMode" :"live " },"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
48+ post = {"payload" :{"criteria" :{"schema" :"ContentCriteria" ,"contentId" :"channel." + id },"startMode" :"start " },"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
4949 data = call_api (url = 'https://http.cms.jyxo.cz/api/' + api_version + '/content.play' , data = post , token = token )
50+ if 'err' in data :
51+ post ['payload' ]['startMode' ] = 'live'
52+ data = call_api (url = 'https://http.cms.jyxo.cz/api/' + api_version + '/content.play' , data = post , token = token )
5053 if md == True and 'liveControl' in data ['playerControl' ] and 'mosaic' in data ['playerControl' ]['liveControl' ]:
5154 stream_number = 1
5255 for md_item in data ['playerControl' ]['liveControl' ]['mosaic' ]['items' ]:
@@ -57,7 +60,7 @@ def get_live(id):
5760 elif 'contentId' in md_item ['play' ]['params' ]['payload' ]:
5861 md_id = md_item ['play' ]['params' ]['payload' ]['contentId' ]
5962 if md_id is not None :
60- post = {"payload" :{"criteria" :{"schema" :"MDPlaybackCriteria" ,"contentId" :md_id ,"position" :0 },"startMode" :"live " },"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
63+ post = {"payload" :{"criteria" :{"schema" :"MDPlaybackCriteria" ,"contentId" :md_id ,"position" :0 },"startMode" :"start " },"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
6164 data = call_api (url = 'https://http.cms.jyxo.cz/api/' + api_version + '/content.play' , data = post , token = token )
6265 if 'err' in data or 'media' not in data :
6366 url = 'http://sledovanietv.sk/download/noAccess-cs.m3u8'
@@ -103,7 +106,15 @@ def get_archive(channel_name, start_ts, end_ts):
103106 if md == True :
104107 post = {"payload" :{"criteria" :{"schema" :"MDPlaybackCriteria" ,"contentId" :epg [start_ts ]['id' ],"position" :0 }},"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
105108 else :
106- post = {"payload" :{'criteria' : {'schema' : 'ChannelPlaybackCriteria' , 'channel' : epg [start_ts ]['payload' ]['deeplink' ]['channel' ], 'time' : epg [start_ts ]['payload' ]['deeplink' ]['time' ]}},"playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
109+ payload = None
110+ data = call_api (url = 'https://http.cms.jyxo.cz/api/' + api_version + '/page.content.display' , data = {'payload' : epg [start_ts ]['payload' ]}, token = token )
111+ for block in data .get ('layout' , {}).get ('blocks' , []):
112+ schema = block .get ('schema' )
113+ if not payload and schema == 'ContentHeaderBlock' :
114+ action = block .get ('mainAction' , {}).get ('action' , {})
115+ if action .get ('call' ) == 'content.play' :
116+ payload = action .get ('params' , {}).get ('payload' )
117+ post = {"payload" :payload , "playbackCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"subtitle" :{"formats" :["vtt" ],"locations" :["InstreamTrackLocation" ,"ExternalTrackLocation" ]},"liveSpecificCapabilities" :{"protocols" :["dash" ,"hls" ],"drm" :["widevine" ,"fairplay" ],"altTransfer" :"Unicast" ,"multipleAudio" :False }}}
107118 data = call_api (url = 'https://http.cms.jyxo.cz/api/' + api_version + '/content.play' , data = post , token = token )
108119 url = 'http://sledovanietv.sk/download/noAccess-cs.m3u8'
109120 for asset in data ['media' ]['stream' ]['assets' ]:
@@ -116,6 +127,3 @@ def get_archive(channel_name, start_ts, end_ts):
116127 return url
117128 else :
118129 return get_live (channel_name )
119-
120-
121-
0 commit comments