Фото з chat gpt ai
Хтось коли-небудь думав записувати відео, але не хоче, щоб воно відображалось в браузері? 🤚 Я мав можливість працювати над проєктом, який пов'язаний з таким завданням, тому вирішив поділитись досвідом. Готові? Поїхали! ```
Спершу нам потрібно познайомитись з бібліотекою puppeteer-stream.
Puppeteer-stream — це бібліотека, яка використовується разом з Puppeteer для додавання функціональності запису відео з екрану (screen recording) сторінки, яку контролює Puppeteer, у вигляді відео стріму (Readable Stream
). Її особливість полягає в тому, що вона дозволяє безпосередньо працювати з записом відео у форматі стріму, що підходить для завдань, які потребують гнучкості, таких як запис і обробка відео під час зйомки або передача відео в реальному часі на інші адреси.
Як працює puppeteer-stream
- Використовуємо Puppeteer для запуску браузера (Chrome або Chromium) в режимі headless або non-headless.
- Використовуємо Puppeteer-stream для початку процесу запису екрану поточної вкладки (або веб-сторінки), що відображається в браузері.
- Записане відео виходить у вигляді стріму (
Readable Stream
), який можна:
- Зберігати у файл (наприклад,
.webm
). - Передавати на інші сервери через різні протоколи, такі як HTTP або WebSocket.
4.
Фото з chat gpt ai
Хтось коли-небудь думав записувати відео, але не хоче, щоб воно відображалось у браузері? 🤚 Я мав можливість працювати над проєктом, що стосується такого завдання, тому вирішив поділитись досвідом. Готові? Поїхали! ```
Спершу нам потрібно познайомитись з бібліотекою puppeteer-stream.
Puppeteer-stream — це бібліотека, яка використовується разом з Puppeteer для додавання функціональності запису відео з екрану (screen recording) сторінки, яку контролює Puppeteer, у вигляді відео стріму (Readable Stream
). Її особливість полягає в тому, що вона дозволяє безпосередньо працювати з записом відео у форматі стріму, що підходить для завдань, які потребують гнучкості, таких як запис і обробка відео під час зйомки або передача відео в реальному часі на інші адреси.
Як працює puppeteer-stream
- Використовуємо Puppeteer для запуску браузера (Chrome або Chromium) в режимі headless або non-headless.
- Використовуємо Puppeteer-stream для початку процесу запису екрану поточної вкладки (або веб-сторінки), що відображається в браузері.
- Записане відео виходить у вигляді стріму (
Readable Stream
), який можна:
- Зберігати у файл (наприклад,
.webm
). - Передавати на інші сервери через різні протоколи, такі як HTTP або WebSocket.
Відкриваємо браузер і записуємо відео
Крок 1: Встановлення
Спершу, потрібно встановити бібліотеку в вашому проєкті, а потім почекати, поки вона буде встановлена.
npm i puppeteer-stream
Після цього спробуємо імпортувати puppeteer-stream для використання в коді 👴
const { launch } = require("puppeteer-stream");
let browser, page;
async function openBrowserGotoPageByURL(url) {
browser = await launch({
executablePath: 'path/to/chrome/in/your/computer/naJaaaarrr',
headless: false,
args: ['--headless=new', '--disable-blink-features=AutomationControlled', '--no-sandbox', '--disable-setuid-sandbox'],
defaultViewport: { width: 1280, height: 720 },
});
page = await browser.newPage();
await page.goto(url);
}
openBrowserGotoPageByURL('https://www.google.com/');
Після цього потрібно вставити код і запустити. Браузер з указаною URL-адресою повинен відкритися, але якщо ви хочете приховати його від користувача, змініть параметр headless
на true
.
headless: true,
Це дозволить браузеру працювати в фоновому режимі без відображення.
Крок 2: Запис відео
Використовуємо метод getStream(), щоб записати відео:
const { launch, getStream } = require("puppeteer-stream");
const fs = require('fs');
let browser, page, stream;
async function openBrowserGotoPageByURL(url) {
browser = await launch({
executablePath: 'path/to/chrome/in/your/computer/naJaaaarrr',
headless: true,
args: ['--headless=new', '--disable-blink-features=AutomationControlled', '--no-sandbox', '--disable-setuid-sandbox'],
defaultViewport: { width: 1280, height: 720 },
});
page = await browser.newPage();
await page.goto(url);
let writableStream = fs.createWriteStream('path/to/chrome/in/your/computer/naJaaaarrr');
stream = await getStream(page, { audio: true, video: true });
stream.pipe(writableStream);
await new Promise(resolve => setTimeout(resolve, 10000));
stream.unpipe(writableStream);
stream.destroy();
await page.close();
await browser.close();
}
openBrowserGotoPageByURL('https://www.google.com/');
Ось так виглядає весь код для запису відео. Я встановив час запису на 10 хвилин, після чого все закривається. Ви побачите файл у вказаному шляху після того, як запустите програму.
Після цього відкрийте відео, і ви побачите запис веб-сторінки, яку ви відкрили.
Якщо ви хочете дізнатись більше про інші команди Puppeteer, в наступних статтях я поділюсь з вами цією інформацією. Не забудьте поставити лайк, поділитись статтею і підписатися (як жартуючи сказав). Дякую за те, що прочитали до кінця! 🚗
Перекладено з: สอนการใช้งาน Puppeteer-Stream Record Video With out Open Browser 🎈