Intenté ejecutar el código a continuación dos veces, la primera vez que intenté devolver el vid desde la función p.evaluate , devolvió un objeto vacío. La segunda vez intenté devolver vid.src desde la misma función y devolvió blob:https://www.youtube.com/2e29a76f-f87b-4ebc-85a3-faa1ad671e3d . ¿Cómo puede un objeto vacío conservar un valor y, si no está vacío, por qué aparece así cuando se intenta devolverlo por sí solo? Necesito el video en sí y no el enlace para convertirlo en formato utf-8 , así que no puedo usar la fuente.
El código que devuelve el video:
const p = require("puppeteer"); const func = async () => { const browser = await p.launch({ headless: true, slowMo: 10 }); const page = await browser.newPage(); await page.goto("https://www.youtube.com/watch?v=dXjKh66BR2U"); await page.waitForSelector(".html5-main-video"); const vid = await page.evaluate(() => { const vid = document.querySelector(".html5-main-video"); return vid; }); console.log(vid); await browser.close(); }; func();El código que devuelve el src:
const p = require("puppeteer"); const func = async () => { const browser = await p.launch({ headless: true, slowMo: 10 }); const page = await browser.newPage(); await page.goto("https://www.youtube.com/watch?v=dXjKh66BR2U"); await page.waitForSelector(".html5-main-video"); const vid = await page.evaluate(() => { const vid = document.querySelector(".html5-main-video"); return vid.src; }); console.log(vid); await browser.close(); }; func();