Cómo extraer comentarios de YouTube usando la API de Youtube – Python

Requisito previo: API de YouTube

Google proporciona un gran conjunto de API para que el desarrollador elija. Todos y cada uno de los servicios proporcionados por Google tienen una API asociada. Siendo uno de ellos, la API de datos de YouTube es muy fácil de usar y ofrece funciones como:

  • buscar videos
  • Manejar videos como recuperar información sobre un video, insertar un video, eliminar un video, etc.
  • Manejar suscripciones como listas de todas las suscripciones, insertar o eliminar una suscripción, etc.

En este artículo, discutiremos cómo extraer comentarios de YouTube y responder usando la API de YouTube de Google en Python.

Comprender la implementación paso a paso: –

  • Recuperar resultados de videos de YouTube
    • Aquí usaremos commentThreads, lista, método de ejecución, dará la lista de comentarios y respuestas
    • Método de lista interna , pase el fragmento y las respuestas en la propiedad de la parte y en la propiedad videoId pase la identificación del video de la URL del video

Python3

# 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()
  • Repita cada respuesta en video y obtenga comentarios y respuestas
    • Los datos vienen en formato de diccionario, los datos de cada comentario tienen un número de conteo de respuestas, si el número de conteo de respuestas es cero significa que no hay respuesta en ese comentario
    • si el recuento es mayor que cero, iteramos cada respuesta y obtenemos el texto.
    • nextPageToken contiene los siguientes datos, aquí estamos verificando si nextPageToken no tiene valor, significa que el valor es Ninguno, finaliza el ciclo, de lo contrario, el ciclo continuará.

A continuación se muestra la implementación completa:

Python3

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
                ).execute()
        else:
            break
  
# Enter video id
video_id = "Enter Video ID"
  
# Call function
video_comments(video_id)

Producción:

Verifiquemos los resultados:

3 Comentarios y 2 Respuestas

Publicación traducida automáticamente

Artículo escrito por abhigoya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *