@natsu.darkcore/ytdl-darkcore
v2.0.1
Published
YouTube scraper/downloader — InnerTube API directo, zero external deps
Maintainers
Readme
@natsu.darkcore/ytdl-darkcore
YouTube scraper/downloader. InnerTube API directa. Zero dependencias externas.
- Usa la API interna de YouTube (ANDROID client) → URLs directas, sin decipher
- Sin yt-dlp, sin módulos npm de terceros, solo
node:https - ffmpeg opcional para merging audio+video o conversión de formato
Instalación
npm install @natsu.darkcore/ytdl-darkcoreUso
import { getVideoInfo, downloadStream } from '@natsu.darkcore/ytdl-darkcore'
const info = await getVideoInfo('dQw4w9WgXcQ')
console.log(info.title, info.formats.length, 'formats disponibles')
// Descargar el mejor audio (itag 251 = opus 160k)
const audio = info.bestAudio!
const path = await downloadStream(audio, './descargas/audio.webm')
console.log('Descargado:', path)API
getVideoInfo(videoId)
Usa InnerTube API. Retorna VideoInfo con todos los formats (URLs directas).
downloadStream(format, outputPath, opts?)
Descarga un stream con node:https. Soporta descarga multisegment para DASH.
getFfmpegPath(), getFfmpegBinDir()
Localiza o auto-descarga ffmpeg (solo si se necesita merging/conversión).
Cómo funciona
getVideoInfohace un POST ayoutubei/v1/playercon API key y ANDROID client- YouTube responde con metadatos + hasta 50+ formats con URLs directas
- El ANDROID client no requiere decipher (a diferencia del web client)
downloadStreamdescarga connode:https, con soporte de fragmentos concurrentes para DASH
Seguridad
Sin exec de subprocesos para extracción. Sin shell. Sin inyección. Solo HTTP requests.
Licencia
MIT
