def handle_playlists(results): """ process playlist api result to ItemList """ playlists = ItemList(content_type="videos") for item in results: snippet = item["snippet"] thumb = snippet["thumbnails"]["high"]["url"] if "thumbnails" in snippet else "" try: playlist_id = item["id"]["playlistId"] except Exception: playlist_id = snippet["resourceId"]["playlistId"] playlist = VideoItem(label=snippet["title"], path=PLUGIN_BASE + 'youtubeplaylist&&id=%s' % playlist_id) playlist.set_infos({'plot': snippet["description"], "mediatype": "video", 'premiered': snippet["publishedAt"][:10]}) playlist.set_art("thumb", thumb) playlist.set_properties({'youtube_id': playlist_id, 'channel_title': snippet["channelTitle"], 'type': "playlist", 'live': snippet["liveBroadcastContent"].replace("none", "")}) playlists.append(playlist) params = {"id": ",".join([i.get_property("youtube_id") for i in playlists]), "part": "contentDetails"} ext_results = get_data(method="playlists", params=params) for item, ext_item in itertools.product(playlists, ext_results["items"]): if item.get_property("youtube_id") == ext_item['id']: item.set_property("itemcount", ext_item['contentDetails']['itemCount']) return playlists
def handle_channels(results): """ process channel api result to ItemList """ channels = ItemList(content_type="videos") for item in results: snippet = item["snippet"] thumb = snippet["thumbnails"]["high"]["url"] if "thumbnails" in snippet else "" try: channel_id = item["id"]["channelId"] except Exception: channel_id = snippet["resourceId"]["channelId"] channel = VideoItem(label=snippet["title"], path=PLUGIN_BASE + 'youtubechannel&&id=%s' % channel_id) channel.set_infos({'plot': snippet["description"], 'mediatype': "video", 'premiered': snippet["publishedAt"][:10]}) channel.set_art("thumb", thumb) channel.set_properties({"youtube_id": channel_id, "type": "channel"}) channels.append(channel) channel_ids = [item.get_property("youtube_id") for item in channels] params = {"id": ",".join(channel_ids), "part": "contentDetails,statistics,brandingSettings"} ext_results = get_data(method="channels", params=params) for item, ext_item in itertools.product(channels, ext_results["items"]): if item.get_property("youtube_id") == ext_item['id']: item.set_property("itemcount", ext_item['statistics']['videoCount']) item.set_art("fanart", ext_item["brandingSettings"]["image"].get("bannerTvMediumImageUrl")) return channels
def get_images(path=""): images = [] for filename in xbmcvfs.listdir(path)[-1]: try: img = Image.open(path + filename) exif_data = ImageTags.get_exif_data(img) lat, lon = ImageTags.get_lat_lon(exif_data) if not lat or not lon: continue if "DateTimeOriginal" in exif_data: date = exif_data["DateTimeOriginal"] elif "DateTime" in exif_data: date = exif_data["DateTime"] else: date = "" image = VideoItem(label=filename) image.set_properties({"lat": str(lat), "lon": str(lon), "date": date, "description": date}) image.set_art("thumb", path + filename) images.append(image) except Exception: pass return images
def handle_musicvideos(results): if not results.get('mvids'): return [] mvids = ItemList(content_type="musicvideos") for item in results['mvids']: youtube_id = utils.extract_youtube_id(item.get('strMusicVid', '')) mvid = VideoItem(label=item['strTrack'], path="%syoutubevideo&&id=%s" % (PLUGIN_BASE, youtube_id)) mvid.set_infos({'title': item['strTrack'], 'plot': item['strDescriptionEN'], 'mediatype': "musicvideo"}) mvid.set_properties({'id': item['idTrack']}) mvid.set_art({'thumb': "http://i.ytimg.com/vi/%s/0.jpg" % youtube_id}) mvids.append(mvid) return mvids
def handle_musicvideos(results): if not results.get('mvids'): return [] mvids = ItemList(content_type="musicvideos") for item in results['mvids']: youtube_id = utils.extract_youtube_id(item.get('strMusicVid', '')) mvid = VideoItem(label=item['strTrack'], path="%syoutubevideo&&id=%s" % (PLUGIN_BASE, youtube_id)) mvid.set_infos({ 'title': item['strTrack'], 'plot': item['strDescriptionEN'], 'mediatype': "musicvideo" }) mvid.set_properties({'id': item['idTrack']}) mvid.set_art({'thumb': "http://i.ytimg.com/vi/%s/0.jpg" % youtube_id}) mvids.append(mvid) return mvids
def handle_playlists(results): """ process playlist api result to ItemList """ playlists = ItemList(content_type="videos") for item in results: snippet = item["snippet"] thumb = snippet["thumbnails"]["high"][ "url"] if "thumbnails" in snippet else "" try: playlist_id = item["id"]["playlistId"] except Exception: playlist_id = snippet["resourceId"]["playlistId"] playlist = VideoItem(label=snippet["title"], path=PLUGIN_BASE + 'youtubeplaylist&&id=%s' % playlist_id) playlist.set_infos({ 'plot': snippet["description"], "mediatype": "video", 'premiered': snippet["publishedAt"][:10] }) playlist.set_art("thumb", thumb) playlist.set_properties({ 'youtube_id': playlist_id, 'channel_title': snippet["channelTitle"], 'type': "playlist", 'live': snippet["liveBroadcastContent"].replace("none", "") }) playlists.append(playlist) params = { "id": ",".join([i.get_property("youtube_id") for i in playlists]), "part": "contentDetails" } ext_results = get_data(method="playlists", params=params) for item, ext_item in itertools.product(playlists, ext_results["items"]): if item.get_property("youtube_id") == ext_item['id']: item.set_property("itemcount", ext_item['contentDetails']['itemCount']) return playlists
def handle_channels(results): """ process channel api result to ItemList """ channels = ItemList(content_type="videos") for item in results: snippet = item["snippet"] thumb = snippet["thumbnails"]["high"][ "url"] if "thumbnails" in snippet else "" try: channel_id = item["id"]["channelId"] except Exception: channel_id = snippet["resourceId"]["channelId"] channel = VideoItem(label=snippet["title"], path=PLUGIN_BASE + 'youtubechannel&&id=%s' % channel_id) channel.set_infos({ 'plot': snippet["description"], 'mediatype': "video", 'premiered': snippet["publishedAt"][:10] }) channel.set_art("thumb", thumb) channel.set_properties({"youtube_id": channel_id, "type": "channel"}) channels.append(channel) channel_ids = [item.get_property("youtube_id") for item in channels] params = { "id": ",".join(channel_ids), "part": "contentDetails,statistics,brandingSettings" } ext_results = get_data(method="channels", params=params) for item, ext_item in itertools.product(channels, ext_results["items"]): if item.get_property("youtube_id") == ext_item['id']: item.set_property("itemcount", ext_item['statistics']['videoCount']) item.set_art( "fanart", ext_item["brandingSettings"]["image"].get( "bannerTvMediumImageUrl")) return channels