[Python-es] Necesito una pequeña ayuda sobre la librería yt-dlp

Chema Cortes pych3m4 en gmail.com
Mie Nov 24 05:56:46 EST 2021


El mar, 23 nov 2021 a las 16:27, Héctor J. Benítez Corredera (<
facturasxebolax en gmail.com>) escribió:

> Buenas desesperado de no encontrar una respuesta acudo a ustedes.
>
>
>
> Bien necesito extraer los comentarios de unos videos de Youtube y no me
> vale la API de Google ya que es para una aplicación y bueno prefiero no
> depender de dicha API.
>
>
>
> E estado buscando tanto en Github en las isos como por todo internet y no
> doy con la clave.
>
>
>
> Se que yt-dlp permite extraer los comentarios de un video pero por más que
> lo intento no lo consigo.
>
>
>
> Por lo que e estado leyendo usando la librería de manera aplicación así lo
> obtendría:
>
>
>
> yt-dlp --write-comments --extractor-args
> "youtube:comment_sort=top;max_comments=3;max_comment_depth=1"
> --skip-download
>
>
>
> Bien lo que me interesa es realmente usarlo desde Python pero no encuentro
> información por ninguna parte de como pasarle los parámetros para obtener
> los comentarios en la devolución del JSON.
>
>
>
> Bien el obtener los datos del video lo hago así:
>
>
>
> import yt_dlp as youtube_dl
>
> url = "https://www.youtube.com/watch?v=HqGykxomWIc"
>
> opciones = {'ignoreerrors': True, 'quiet': True, 'extract_flat':
> 'in_playlist', 'dump_single_json': True}
>
> with youtube_dl.YoutubeDL(opciones) as ydl:
>
>     r = ydl.extract_info(url, download=False)
>
> print(r)
>
>
>
> Bien sé que con getcomments se obtienen pero por más que se lo pongo en
> opciones y valor True no me devuelve los comentarios en el json.
>
>
>
> Esta librería yt-dlp la verdad que todavía no la domino y sigo
> estudiándola pero estoy atrancado en esto y la verdad no encuentro
> información y su documentación pues la verdad en Github me parece un poco
> liosa más que cuando le doy en que se agrego la extracción de comentarios
> no me da nada de información.
>
>
>
> Este el repo:
>
>
>
> https://github.com/yt-dlp/yt-dlp
>
>
>
> En definitiva que trae muchas cosas que la original Youtube.-dl no traía y
> estoy más perdido…
>
>
>
> Muchas gracias a quien pueda echarme un poco de luz y a ser posible si
> pudieseis ponerme un pequeño código de extracción de comentarios quedaría
> agradecido.
>
>
>
> De nuevo y por adelantado mil gracias.
>
>
>
> Cordiales saludos
>
>
>
A veces, cuando no hay documentación, la documentación es el código.

En el fichero YoutubeDL.py están las opciones que puedes usar. Entre otras,
se ve que hay que usar la opción "getcomments" para extraer los
comentarios, y que se debe usar la opción "writeinfojson" si queremos que
se escriba a un fichero.

En tu código, obtienes la información de vídeo o vídeos, pero falta el
procesado posterior. Como no quieres descargar el vídeo, hay que usar la
opción "skip_download".

Todo junto:

import yt_dlp as youtube_dl


url = "https://www.youtube.com/watch?v=HqGykxomWIc"

opciones = {

    'ignoreerrors': True,

    'quiet': True,

    'extract_flat': 'in_playlist',

    'dump_single_json': True,

    'getcomments': True,

    'writeinfojson': True,

    'skip_download': True,

}


with youtube_dl.YoutubeDL(opciones) as ydl:

    r = ydl.extract_info(url, download=False)

    ydl.process_info(r)



En realidad, ya habíamos indicado que no descargara el vídeo, por lo que se
podría haber hecho en un sólo paso:

with youtube_dl.YoutubeDL(opciones) as ydl:

    ydl.extract_info(url)




-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
https://blog.ch3m4.org
Buscador Python Hispano: http://busca.ch3m4.org
<https://blog.ch3m4.org/pages/busqueda-python-es/>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://mail.python.org/pipermail/python-es/attachments/20211124/69da832a/attachment.html>


Más información sobre la lista de distribución Python-es