From c86ab40acd8ea6f8c13d9e398815ce8073c3998a Mon Sep 17 00:00:00 2001 From: jj Date: Mon, 13 Oct 2025 23:27:08 +0000 Subject: [PATCH] youtube: fix custom fetch breakage https://github.com/LuanRT/YouTube.js/issues/962#issuecomment-2864091135 --- api/src/processing/services/youtube.js | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/api/src/processing/services/youtube.js b/api/src/processing/services/youtube.js index b47c266d..d44f8c03 100644 --- a/api/src/processing/services/youtube.js +++ b/api/src/processing/services/youtube.js @@ -1,7 +1,7 @@ import HLS from "hls-parser"; -import { fetch } from "undici"; -import { Innertube, Session } from "youtubei.js"; +import { fetch, Request } from "undici"; +import { Innertube, Platform, Session } from "youtubei.js"; import { env } from "../../config.js"; import { getCookie } from "../cookie/manager.js"; @@ -206,10 +206,24 @@ export default async function (o) { let yt; try { yt = await cloneInnertube( - (input, init) => fetch(input, { - ...init, - dispatcher: o.dispatcher - }), + (input, init) => { + const url = typeof input === 'string' + ? new URL(input) + : input instanceof URL + ? input + : new URL(input.url); + + const request = new Request( + url, + input instanceof Platform.shim.Request + ? input : undefined + ); + + return fetch(request, { + ...init, + dispatcher: o.dispatcher + }); + }, useSession ); } catch (e) {