
#!/usr/bin/python

from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.tools import argparser

# Set DEVELOPER_KEY to the API key value from the APIs & auth > Registered apps
# tab of
#   https://cloud.google.com/console
# Please ensure that you have enabled the YouTube Data API for your project.
DEVELOPER_KEY = "AIzaSyDc2TIQOR3lrk-jY9vl_lXO-LxAtvw9FOw"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"

class Youtube(tk.Frame):
    def __init__(self):
        self.query=""
    def youtube_search(options):
        youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
                developerKey = DEVVELOPER_KEY)
        search_response = youtube.search().list(
                q=options.q,
                part = "id,snippet",
                maxResults = options.max_results
            ).execute()
        videos = []
        channels = []
        playlists = []


        for search_result in search_response.get("items", []):
            if search_result["id"]["kind"] == "youtube#video":
                videos.append("%s (%s)" % (search_result["snippet"]["title"], search_result["id"]["videoId"]))
            elif search_result["id"]["kind"] == "youtube#channel":
                channels.append("%s (%s)" % (search_result["snippet"]["title"],search_result["id"]["channelId"]))
            elif search_result["id"]["kind"] == "youtube#playlist":
                playlists.append("%s (%s)" % (search_result["snippet"]["title"],search_result["id"]["playlistId"]))
        
        print("Videos:\n", "\n".join(videos), "\n")
        print("Channels:\n", "\n".join(channels), "\n")        
        print("Channels:\n", "\n".join(playlists), "\n")



        if __name__=="__main__":
            argparser.add_argument("--q", help="Search term", default="Google")
            argparser.add_argument("--max-results", help="Max results", default=25)
            args = argparser.parse_args()
            try:
                youtube_search(args)
            except (HttpError, e):
                print ("An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
        


Add files via upload