Search code examples
pythondjangooauth-2.0youtube-api

Getting Youtube Channel ID using oAuth2.0 with Django/Python


Is there a way to obtain youtube channel ID or youtube userID using Google oAuth2. I am able to retrieve 'profile' and email details using oauth. Also provided scope for "youtube-readonly". I want to achieve this using Python/Django

NB: General idea here is to show the Youtube Channel name and subscriber count of the logged in User. [user login through Google OAuth only.]


Solution

  • Finally, got a way to implement with python.
    Hope this will help anyone with similar question.

        # -*- coding: utf-8 -*-
    
        # Sample Python code for youtube.channels.list
    # See instructions for running these code samples locally:
    # https://developers.google.com/explorer-help/guides/code_samples#python
    
    import os
    
    import google_auth_oauthlib.flow
    import googleapiclient.discovery
    import googleapiclient.errors
    
    scopes = ["https://www.googleapis.com/auth/youtube.readonly"]
    
    def main():
        # Disable OAuthlib's HTTPS verification when running locally.
        # *DO NOT* leave this option enabled in production.
        os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"
    
        api_service_name = "youtube"
        api_version = "v3"
        client_secrets_file = "YOUR_CLIENT_SECRET_FILE.json"
    
        # Get credentials and create an API client
        flow = google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file(
            client_secrets_file, scopes)
        credentials = flow.run_console()
        youtube = googleapiclient.discovery.build(
            api_service_name, api_version, credentials=credentials)
    
        request = youtube.channels().list(
            part="id,status,snippet,statistics",
            mine=True
        )
        response = request.execute()
    
        print(response)
    
    if __name__ == "__main__":
        main()