Shorts Scraper Pro

Node.js Powered

Built with anycoder

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.

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.

Operación completada