Extrae Shorts de YouTube
Simulación de interfaz para scraping de contenido. En un entorno real, esto requeriría un backend Node.js con Puppeteer o yt-dlp.
Iniciando navegador...
0%
Resultados 0
Implementación Node.js Real
Código necesario para ejecutar esto en un servidor real
scraper.js
const puppeteer = require('puppeteer');
const fs = require('fs');
async function scrapeShorts(channelUrl, limit = 25) {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
// Navegar al canal
await page.goto(`${channelUrl}/shorts`, {
waitUntil: 'networkidle2'
});
// Scroll infinito para cargar shorts
let shorts = [];
let previousHeight = 0;
while (shorts.length < limit) {
const newShorts = await page.evaluate(() => {
const items = document.querySelectorAll('ytd-reel-item-renderer');
return Array.from(items).map(item => ({
title: item.querySelector('#video-title')?.innerText,
views: item.querySelector(querySelector('a')?.href,
thumbnail: item.querySelector('img')?.src
}));
});
shorts = [...shorts, ...newShorts];
// Scroll down
await page.evaluate('window.scrollTo(0, document.body.scrollHeight)');
await page.waitForTimeout(2000);
}
await browser.close();
return shorts.slice(0, limit);
}
// Ejecutar
scrapeShorts(process.argv[2], 25)
.then(data => {
fs.writeFileSync('shorts.json', JSON.stringify(data, null, 2));
console.log('✅ Scraping completado');
});
Nota importante: YouTube tiene protecciones contra scraping (CORS, rate limiting, CAPTCHAs). Para uso real, se recomienda usar la API oficial de YouTube Data API v3 o yt-dlp con proxies rotativos.