From 31eb1a0f61aa075159dea91ed898b971f78aecda Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Mon, 9 May 2022 11:03:17 -0700 Subject: [PATCH] Fix parsing video IDs from youtube URLs --- packages/puppeteer-parse/youtube-handler.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/puppeteer-parse/youtube-handler.js b/packages/puppeteer-parse/youtube-handler.js index 1b2286354..796bea5db 100644 --- a/packages/puppeteer-parse/youtube-handler.js +++ b/packages/puppeteer-parse/youtube-handler.js @@ -9,13 +9,7 @@ const axios = require('axios'); const YOUTUBE_URL_MATCH = /^((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be))(\/(?:[\w-]+\?v=|embed\/|v\/)?)([\w-]+)(\S+)?$/ -exports.youtubeHandler = { - - shouldPrehandle: (url, env) => { - return YOUTUBE_URL_MATCH.test(url.toString()) - }, - - getVideoId: (url) => { +function getYoutubeVideoId(url) { const u = new URL(url); const videoId = u.searchParams['v'] if (!videoId) { @@ -26,10 +20,19 @@ exports.youtubeHandler = { return match[5] } return videoId + } +exports.getYoutubeVideoId = getYoutubeVideoId + +exports.youtubeHandler = { + + shouldPrehandle: (url, env) => { + return YOUTUBE_URL_MATCH.test(url.toString()) }, + + prehandle: async (url, env) => { - const videoId = getVideoId(url) + const videoId = getYoutubeVideoId(url) if (!videoId) { return {} }