Отличный вопрос, у меня была такая же проблема. ?
Основная проблема в том, что URL-адреса видео не должны заканчиваться определенным суффиксом, и на самом деле их нет на многих веб-сайтах (например, на YouTube).
Но есть эта функция:
request.resourceType ()
Содержит тип ресурса запроса, как он был воспринят механизмом рендеринга,ResourceType будет одним из следующих: документ, таблица стилей, изображение, мультимедиа, шрифт, скрипт, texttrack, xhr, выборка, источник событий, веб-сокет, манифест, др.
Немного погуглил и нашел это MDN :
media
Ресурсы, загруженные элементом <video>
или <audio>
.
И так как я не возражаю против блокировки аудио-запросов (слава Богу, они не используются на обычных веб-страницах ...)
В конце концов это то, что я закончил:
page.on('request', request => {
const url = request.url().toLowerCase()
const resourceType = request.resourceType()
if (resourceType == 'media' ||
url.endsWith('.mp4') ||
url.endsWith('.avi') ||
url.endsWith('.flv') ||
url.endsWith('.mov') ||
url.endsWith('.wmv')) {
console.log(`ABORTING: video`)
request.abort();
}
else
request.continue();
})