Par exemple, lorsqu'on veut jouer le dernier épisode des Francs-Tireurs, l'épisode est en 480x270 au lieu du 1024x768 habituel.
J'ai trouvé moyen d'aller chercher une résolution un peu plus haute dans le cas où seulement une résolution était offerte (c'est toujours le cas avec les nouveaux épisodes en basse résolution).
def jouer_video(media_uid):
""" function docstring """
check_for_internet_connection()
# Obtenir JSON avec liens RTMP du playlistService
video_json = simplejson.loads(\
cache.get_cached_content(\
'http://production.ps.delve.cust.lldns.net/r/PlaylistService/media/%s/getPlaylistByMediaId' % media_uid\
)\
)
# Preparer list de videos à jouer
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
playlist.clear()
# Analyser chaque stream disponible pour trouver la meilleure qualité
#for play_list_item in video_json['playlistItems']:
play_list_item =video_json['playlistItems'][0]
# Si on a qu'un stream, on doit appliquer la patch suivante:
# L'émission est sur le nouvel API et on doit aller chercher notre stream sur
# https://mnmedias.api.telequebec.tv/m3u8 au lieu de delvenetworks/flash-player
# Faudrait voir si y'a mieux qui peut être fait, car même avec le nouvel API, on
# n'a pas les résolution Full HD auxquelles on étaient habituées.
if(len(play_list_item['streams']) > 1):
highest_bit_rate = 0
stream_url = None
for stream in play_list_item['streams']:
if stream['videoBitRate'] > highest_bit_rate:
highest_bit_rate = stream['videoBitRate']
stream_url = stream['url']
if stream_url:
# Générer un lien compatible pour librtmp
# rtmp_url - play_path - swf_url
url_final = '%s playPath=%s swfUrl=%s swfVfy=true' % (\
stream_url[:stream_url.find('mp4')],\
stream_url[stream_url.find('mp4'):],\
'http://s.delvenetworks.com/deployments/flash-player/flash-player-5.10.1.swf?playerForm=Chromeless'\
)
# log('Starting playback of :' + urllib.quote_plus(url_final))
item = xbmcgui.ListItem(\
video_json['title'],\
iconImage=video_json['imageUrl'],\
thumbnailImage=play_list_item['thumbnailImageUrl'], path=url_final)
#playlist.add(url_final, item)
play_item = xbmcgui.ListItem(path=url_final)
xbmc.log("**************************************DING? " +sys.argv[0])
xbmcplugin.setResolvedUrl(__handle__,True, item)
xbmc.log("**************************************DONG! ")
else:
xbmc.executebuiltin('Notification(%s,Incapable d''obtenir lien du video,5000,%s' % (ADDON_NAME, ADDON_ICON))
else:
url_final = 'https://mnmedias.api.telequebec.tv/m3u8/%s.m3u8' % str(play_list_item['refId'])
item = xbmcgui.ListItem(\
video_json['title'],\
iconImage=video_json['imageUrl'],\
thumbnailImage=play_list_item['thumbnailImageUrl'], path=url_final)
#playlist.add(url_final, item)
play_item = xbmcgui.ListItem(path=url_final)
xbmc.log("**************************************DING? " +sys.argv[0])
xbmcplugin.setResolvedUrl(__handle__,True, item)
xbmc.log("**************************************DONG! ")