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

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.