aboutsummaryrefslogtreecommitdiff
path: root/src/server/ApiManagers/UploadManager.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/ApiManagers/UploadManager.ts')
-rw-r--r--src/server/ApiManagers/UploadManager.ts14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts
index 60c52bcfc..756bde738 100644
--- a/src/server/ApiManagers/UploadManager.ts
+++ b/src/server/ApiManagers/UploadManager.ts
@@ -277,10 +277,12 @@ 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.
+ * of the video (optionally, at a timecode) specified by @param targetUrl.
*
* On failure, returns undefined.
*/
@@ -289,9 +291,15 @@ async function captureYoutubeScreenshot(targetUrl: string): Promise<Opt<Buffer>>
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');