Aplicación basada en línea de comando/terminal escrita en Go para descargar cortos y videos usando URL/ID de YouTube.
Nota : si está buscando una herramienta lista para usar, verifique los problemas fijados para este repositorio.
Descarga de vídeos y cortos de YouTube.
Posibilidad de seleccionar entre diferentes calidades de contenido.
Actualmente el proyecto cuenta con 2 dependencias,
tview: biblioteca de interfaz de usuario de terminal con widgets interactivos y enriquecidos, escrita en Golang.
FFmpeg: el marco multimedia multiplataforma líder. Debe estar instalado en el sistema o al menos tener el binario estático más reciente en el directorio raíz del proyecto. Es más una dependencia del tiempo de ejecución externo .
Cuando se pegan cortos de YouTube/ID de video o URL, la aplicación obtiene los metadatos de las API internas de YouTube.
Luego, dependiendo de las selecciones de calidad para video y audio, la aplicación descarga el contenido de Shorts/Video realizando solicitudes de datos de pequeño tamaño a las URL del contenido obtenido.
Al final, si existe FFmpeg, los archivos de transmisión de audio y video separados se fusionan en un único archivo de salida.
Después de instalar Go, ingrese el siguiente comando desde la raíz del proyecto,
En Linux/UNIX,
go build -o go_youtube_downloader ./cmd/go_youtube_downloader.go
En Windows,
go build -o go_youtube_downloader.exe ./cmd/go_youtube_downloader.go
Después de instalar Go, clone/descargue este proyecto e ingrese el siguiente comando desde la raíz del proyecto,
go run ./cmd/go_youtube_downloader.go
Los sistemas deben tener instalado FFmpeg o tener el binario estático más reciente en el directorio raíz del proyecto para fusionar transmisiones de video y audio separadas descargadas en un solo archivo.
Los videos con restricción de edad no se pueden descargar debido al cifrado de firmas de YouTube.
YouTube tiene limitaciones de ancho de banda para cada solicitud entrante, alrededor de 10 MB por solicitud. Si alguna solicitud obtiene más datos que este límite de tamaño, más solicitudes acelerarán la descarga o es posible que se cancele la conexión. Por lo tanto, para obtener un mejor rendimiento al descargar datos y escribirlos en un archivo de salida, se divide en partes más pequeñas para mantener la coherencia. Según la calidad y el tamaño seleccionados, el tiempo de descarga será más o menos.
YouTube con ingeniería inversa: revisitado: blog que explica las API internas de YouTube.
Clientes internos de YouTube: un script de Python que descubre clientes API de YouTube ocultos. Sólo un proyecto de investigación.
YT-DLP: una bifurcación de youtube-dl con funciones y correcciones adicionales
Youtubei: obtenga datos de Youtube, como videos, listas de reproducción, canales, información y comentarios de videos, videos relacionados, el próximo video y más.
Descarga eficiente de archivos en Golang: una guía completa
Ejemplo de archivos de descarga de Golang
Equipo NewPipe
Ejecución avanzada de comandos en Go con os/exec