¿Cómo descargar subtítulos públicos de YouTube en XML usando Pytube en Python?

Requisito previo : Pytube

Pytube es una biblioteca ligera de Python libre de dependencias para descargar videos de YouTube . Hay varias API para obtener metadatos de YouTube. En este artículo, vamos a ver cómo descargar subtítulos públicos de YouTube en XML usando Python.

Antes de comenzar necesitamos instalar este módulo:

pip install pytube

Acercarse:

  • Importar pytube: desde pytube importar YouTube.
  • Cree una instancia del objeto usando la función YouTube() que toma el enlace del video de YouTube como parámetro.
  • La instancia, por ejemplo, en el siguiente código es ‘src’ , que tiene un atributo de título para obtener una lista de idiomas y su respectivo código de idioma para un video en particular.
  • Para obtener un título en un idioma en particular, usamos get_by_language_code(‘en’) en significa inglés, como se muestra en el código a continuación.
  • De forma predeterminada, los subtítulos se descargan solo en formato XML.
  • Para convertirlo explícitamente en un tipo de datos de string, debemos encasillarlo usando ‘ generar_srt_captions() ‘ como se muestra en el código a continuación.

A continuación se muestra la implementación:

Python3

from pytube import YouTube
 
link = 'https://www.youtube.com/watch?v=wjTn_EkgQRg&index=1&list=PLgJ7b1NurjD2oN5ZXbKbPjuI04d_S0V1K'
src = YouTube(link)
 
# prints all available captions in various languages.
print('Captions Available: ', src.captions)
print()
 
# Getting only English captions by specifying 'en' as parameter
en_caption = src.captions.get_by_language_code('en')
print(en_caption.xml_captions)
 
# Instead of Captions in XML format we are converting it to string format.
en_caption_convert_to_srt = (en_caption.generate_srt_captions())
print(en_caption_convert_to_srt)

Producción:

Subtítulos XML 

Publicación traducida automáticamente

Artículo escrito por arun singh 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 *