def handle_unresolved_url(data, action): url = unquote(data) logger.info(u'Trying to resolve URL (%s): %s' % (action, url)) if xbmc.Player().isPlaying(): utils.show_info_notification(utils.translation(32007), 1000) else: utils.show_info_notification(utils.translation(32007)) if 'youtube.com' in url or 'youtu.be' in url: youtube_addon = xbmcaddon.Addon(id="plugin.video.youtube") if youtube_addon: if utils.get_setting('preferYoutubeAddon') == 'true' or youtube_addon.getSetting("kodion.video.quality.mpd") == "true": logger.info(u'Youtube addon have DASH enabled or is configured as preferred use it') clean_url = list(urlparse(url)) clean_url[4] = '&'.join( [x for x in clean_url[4].split('&') if not re.match(r'app=', x)]) url = urlunparse(clean_url) utils.play_url('plugin://plugin.video.youtube/uri2addon/?uri=%s' % url, action) return logger.info(u'Trying to resolve with YoutubeDL') result = resolve_with_youtube_dl(url, {'format': 'best', 'no_color': 'true', 'ignoreerrors': 'true'}, action) if result: return # Second pass with new params to fix site like reddit dash streams logger.info(u'Trying to resolve with YoutubeDL other options') result = resolve_with_youtube_dl(url, {'format': 'bestvideo+bestaudio/best', 'no_color': 'true', 'ignoreerrors': 'true'}, action) if result: return logger.error(u'Url not resolved by YoutubeDL') logger.info(u'Trying to play as basic url') utils.play_url(url, action) if url: utils.show_error_notification(utils.translation(32006))
def handle_magnet(data): open_with = utils.get_setting('openMagnetWith') logger.info('Sharing magnet with %s' % open_with) if open_with == 'Elementum': utils.call_plugin('plugin://plugin.video.elementum/playuri?uri=' + data) elif open_with == 'Torrenter V2': utils.call_plugin('plugin://plugin.video.torrenter/?action=playSTRM&url=' + data) elif open_with == 'Quasar': utils.call_plugin('plugin://plugin.video.quasar/playuri?uri=' + data) elif open_with == 'YATP': utils.call_plugin('plugin://plugin.video.yatp/?action=play&torrent=' + data + '&file_index=dialog')