From 335cd51eb5edd8230e19af3c46374b810f8a583e Mon Sep 17 00:00:00 2001 From: wukko Date: Sun, 20 Apr 2025 20:45:07 +0600 Subject: [PATCH] api: add an option to allow better audio from youtube & an env variable to disable it if needed --- api/src/config.js | 1 + api/src/processing/match.js | 4 ++++ api/src/processing/schema.js | 1 + 3 files changed, 6 insertions(+) diff --git a/api/src/config.js b/api/src/config.js index bb4994c0..bc740587 100644 --- a/api/src/config.js +++ b/api/src/config.js @@ -61,6 +61,7 @@ const env = { ytSessionServer: process.env.YOUTUBE_SESSION_SERVER, ytSessionReloadInterval: 300, ytSessionInnertubeClient: process.env.YOUTUBE_SESSION_INNERTUBE_CLIENT, + ytAllowBetterAudio: process.env.YOUTUBE_ALLOW_BETTER_AUDIO !== "0", } const genericUserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"; diff --git a/api/src/processing/match.js b/api/src/processing/match.js index 63de71e7..d93e1caf 100644 --- a/api/src/processing/match.js +++ b/api/src/processing/match.js @@ -113,6 +113,10 @@ export default async function({ host, patternMatch, params }) { fetchInfo.format = "vp9"; fetchInfo.isAudioOnly = true; fetchInfo.isAudioMuted = false; + + if (env.ytAllowBetterAudio && params.youtubeBetterAudio) { + fetchInfo.quality = "max"; + } } r = await youtube(fetchInfo); diff --git a/api/src/processing/schema.js b/api/src/processing/schema.js index a1b667d7..fb227714 100644 --- a/api/src/processing/schema.js +++ b/api/src/processing/schema.js @@ -46,5 +46,6 @@ export const apiSchema = z.object({ localProcessing: z.boolean().default(false), youtubeHLS: z.boolean().default(false), + youtubeBetterAudio: z.boolean().default(false), }) .strict();