Open In App

How to Extract YouTube Comments Using Youtube API – Python

Prerequisite: YouTube API

Google provides a large set of API’s for the developer to choose from. Each and every service provided by Google has an associated API. Being one of them, YouTube Data API is very simple to use provides features like –



In this article, we will discuss How to Extract YouTube Comments and reply using Google YouTube API in Python.

Understand step by step implementation:-






# creating youtube resource object
youtube = build('youtube','v3',
                developerKey="Enter API Key")
 
# retrieve youtube video results
video_response=youtube.commentThreads().list(
  part='snippet,replies',
  videoId="Enter Video ID"
).execute()

Below is the full implementation:




from googleapiclient.discovery import build
 
api_key = 'API KEY'
 
def video_comments(video_id):
    # empty list for storing reply
    replies = []
 
    # creating youtube resource object
    youtube = build('youtube', 'v3',
                    developerKey=api_key)
 
    # retrieve youtube video results
    video_response=youtube.commentThreads().list(
    part='snippet,replies',
    videoId=video_id
    ).execute()
 
    # iterate video response
    while video_response:
       
        # extracting required info
        # from each result object
        for item in video_response['items']:
           
            # Extracting comments
            comment = item['snippet']['topLevelComment']['snippet']['textDisplay']
             
            # counting number of reply of comment
            replycount = item['snippet']['totalReplyCount']
 
            # if reply is there
            if replycount>0:
               
                # iterate through all reply
                for reply in item['replies']['comments']:
                   
                    # Extract reply
                    reply = reply['snippet']['textDisplay']
                     
                    # Store reply is list
                    replies.append(reply)
 
            # print comment with list of reply
            print(comment, replies, end = '\n\n')
 
            # empty reply list
            replies = []
 
        # Again repeat
        if 'nextPageToken' in video_response:
            video_response = youtube.commentThreads().list(
                    part = 'snippet,replies',
                    videoId = video_id,
                      pageToken = video_response['nextPageToken']
                ).execute()
        else:
            break
 
# Enter video id
video_id = "Enter Video ID"
 
# Call function
video_comments(video_id)

Output:

Let’s verify the results:

3 Comments and 2 Replies


Article Tags :