From aeabc1810131a249ed8bab933ee19837691bf56b Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Mon, 18 May 2020 20:53:43 -0400 Subject: tried to fix youtube snapshotter --- src/server/ApiManagers/UploadManager.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts index 1ab81803f..60c52bcfc 100644 --- a/src/server/ApiManagers/UploadManager.ts +++ b/src/server/ApiManagers/UploadManager.ts @@ -289,12 +289,13 @@ async function captureYoutubeScreenshot(targetUrl: string): Promise> const page = await browser.newPage(); await page.setViewport({ width: 1920, height: 1080 }); - await page.goto(targetUrl, { waitUntil: 'networkidle0' }); + await page.goto(targetUrl, { waitUntil: 'networkidle2' as any }); + const videoPlayer = await page.$('.html5-video-player'); // hide youtube player controls. - await page.evaluate(() => (document.querySelector('.ytp-chrome-bottom') as any).style.display = 'none'); + await page.evaluate(() => + (document.querySelector('.ytp-chrome-bottom') as any).style.display = 'none'); - const videoPlayer = await page.$('.html5-video-player'); const buffer = await videoPlayer?.screenshot({ encoding: "binary" }); await browser.close(); -- cgit v1.2.3-70-g09d2 From 4c86d66b5642726325636ecfe7677f0139ce06c1 Mon Sep 17 00:00:00 2001 From: Bob Zeleznik Date: Mon, 18 May 2020 22:42:05 -0400 Subject: added a long delay and an attempt to click on the skip ads button to make youtube snapshots. --- src/server/ApiManagers/UploadManager.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts index 60c52bcfc..ad165e3fe 100644 --- a/src/server/ApiManagers/UploadManager.ts +++ b/src/server/ApiManagers/UploadManager.ts @@ -277,7 +277,9 @@ export default class UploadManager extends ApiManager { } } - +function delay(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} /** * On success, returns a buffer containing the bytes of a screenshot * of the video specified by @param url at timecode @param t. @@ -289,9 +291,15 @@ async function captureYoutubeScreenshot(targetUrl: string): Promise> const page = await browser.newPage(); await page.setViewport({ width: 1920, height: 1080 }); - await page.goto(targetUrl, { waitUntil: 'networkidle2' as any }); + await page.goto(targetUrl, { waitUntil: 'domcontentloaded' as any }); const videoPlayer = await page.$('.html5-video-player'); + videoPlayer && await page.focus("video"); + await delay(7000); + const ad = await page.$('.ytp-ad-skip-button-text'); + await ad?.click(); + await videoPlayer?.click(); + await delay(1000); // hide youtube player controls. await page.evaluate(() => (document.querySelector('.ytp-chrome-bottom') as any).style.display = 'none'); -- cgit v1.2.3-70-g09d2