Пример #1
0
def play(item_id):
    item = plugin.get_window_property(item_id) or plugin.items.instantiate(item_id=item_id)
    si = plugin.kwargs.get("season_index")
    i = plugin.kwargs.get("index")
    playable_li = plugin.items.get_playable(item, season_index=si, index=i).playable_list_item
    player = Player(list_item=playable_li)
    xbmcplugin.setResolvedUrl(plugin.handle, True, playable_li)
    while player.is_playing:
        player.set_marktime()
        xbmc.sleep(1000)
Пример #2
0
def play(item_id, index):
    properties = {}
    if ("hls" in plugin.settings.stream_type
            and plugin.settings.inputstream_adaptive_enabled == "true"
            and inputstreamhelper):
        helper = inputstreamhelper.Helper("hls")
        if not helper.check_inputstream():
            return
        else:
            properties.update({
                "inputstreamaddon": helper.inputstream_addon,
                "inputstream.adaptive.manifest_type": "hls",
            })
    playback_data = get_window_property(index)
    video_data = playback_data.get("video_data")
    video_info = playback_data["video_info"]
    if not video_data:
        response = plugin.client("items/{}".format(item_id)).get()
        video_data = response["item"]["videos"][0]
        video_info = extract_video_info(response["item"], video_info)
    if "files" not in video_data:
        notice("Видео обновляется и временно не доступно!",
               "Видео в обработке",
               time=8000)
        return
    url = get_mlink(
        video_data,
        quality=plugin.settings.video_quality,
        stream_type=plugin.settings.stream_type,
        ask_quality=plugin.settings.ask_quality,
    )
    properties.update({
        "item_id": item_id,
        "play_duration": video_info["duration"],
        "play_resumetime": video_info["time"],
        "video_number": video_info.get("episode", 1),
        "season_number": video_info.get("season", ""),
        "playcount": video_info["playcount"],
        "imdbnumber": video_info["imdbnumber"],
    })
    li = plugin.list_item(
        playback_data["title"],
        path=url,
        properties=properties,
        poster=playback_data["poster"],
        subtitles=[subtitle["url"] for subtitle in video_data["subtitles"]],
    )
    player = Player(list_item=li)
    xbmcplugin.setResolvedUrl(plugin.handle, True, li)
    while player.is_playing:
        player.set_marktime()
        xbmc.sleep(1000)