#!/usr/bin/python import os import re import google.oauth2.credentials import google_auth_oauthlib.flow from googleapiclient.discovery import build from googleapiclient.errors import HttpError from google_auth_oauthlib.flow import InstalledAppFlow # The CLIENT_SECRETS_FILE variable specifies the name of a file that contains # the OAuth 2.0 information for this application, including its client_id and # client_secret. You can acquire an OAuth 2.0 client ID and client secret from # the {{ Google Cloud Console }} at # {{ https://cloud.google.com/console }}. # Please ensure that you have enabled the YouTube Data API for your project. # For more information about using OAuth2 to access the YouTube Data API, see: # https://developers.google.com/youtube/v3/guides/authentication # For more information about the client_secrets.json file format, see: # https://developers.google.com/api-client-library/python/guide/aaa_client_secrets CLIENT_SECRETS_FILE = 'client_secret.json' # This OAuth 2.0 access scope allows for read-only access to the authenticated # user's account, but not other types of account access. SCOPES = ['https://www.googleapis.com/auth/youtube.readonly'] API_SERVICE_NAME = 'youtube' API_VERSION = 'v3' # Authorize the request and store authorization credentials. def get_authenticated_service(): flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES) credentials = flow.run_console() return build(API_SERVICE_NAME, API_VERSION, credentials = credentials) # Retrieve a list of the liveStream resources associated with the currently # authenticated user's channel. def list_streams(youtube): print 'Live streams:' list_streams_request = youtube.liveStreams().list( part='id,snippet', mine=True, maxResults=50 ) while list_streams_request: list_streams_response = list_streams_request.execute() for stream in list_streams_response.get('items', []): print '%s (%s)' % (stream['snippet']['title'], stream['id']) list_streams_request = youtube.liveStreams().list_next( list_streams_request, list_streams_response) if __name__ == '__main__': youtube = get_authenticated_service() try: list_streams(youtube) except HttpError, e: print 'An HTTP error %d occurred:\n%s' % (e.resp.status, e.content)