Obtener subtítulos de un vídeo de Youtube con Python

Tiempo de lectura: < 1 minuto

Hola, hoy vamos a aprender a obtener los subtítulos de un vídeo de Youtube utilizando una librería para Python.

Lo primero que vamos a hacer es instalar la librería:

pip install youtube-transcript-api

Esta librería podéis encontrarla aquí: https://pypi.org/project/youtube-transcript-api/

Para utilizarla y obtener los subtítulos de un video, tendremos que hacer lo siguiente:

Importamos las siguientes dependencias:

from youtube_transcript_api import YouTubeTranscriptApi
import json

Y vamos a crear una función que recibirá un código de vídeo e idioma y generará su transcripción:

def getSubtitles(videoId, language):
    strText = ""
    try:
        srt = YouTubeTranscriptApi.get_transcript(videoId, languages=[language])
        #Pasar a JSON:
        json.dumps(srt)
 
        for i in srt:
            strText += i['text']
            strText += " "
    except:
        strText = "-1"
    return strText

En mi ejemplo, le paso el idioma del vídeo y el código del video.

*Se puede saber qué idiomas tiene disponibles con este código:

transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)

Aunque si el idioma no es el correcto, por defecto se devolverá en inglés.

Finalmente, el código completo queda asi:

from youtube_transcript_api import YouTubeTranscriptApi
import json

def getSubtitles(videoId, language):
    strText = ""
    try:
        srt = YouTubeTranscriptApi.get_transcript(videoId,languages=[language])
        #Pasar a JSON:
        json.dumps(srt)
 
        for i in srt:
            strText += i['text']
            strText += " "
    except:
        strText = "-1"
    return strText
  

Deja un comentario