From afbc570c814b1e3c59a8801b6f58cbc513f902a4 Mon Sep 17 00:00:00 2001 From: Juan Carlos Ramirez Date: Mon, 20 Jan 2025 03:37:25 -0600 Subject: [PATCH 1/3] Reset playerclients for ytdl during getinfo to defaults Update ytdl-core and ytsr --- package.json | 4 ++-- src/services/player.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 6e05dcc..d87ca60 100644 --- a/package.json +++ b/package.json @@ -89,8 +89,8 @@ "@discordjs/opus": "^0.8.0", "@discordjs/rest": "1.0.1", "@discordjs/voice": "0.17.0", - "@distube/ytdl-core": "^4.14.4", - "@distube/ytsr": "^2.0.0", + "@distube/ytdl-core": "^4.14.8", + "@distube/ytsr": "^2.0.4", "@prisma/client": "4.16.0", "@types/libsodium-wrappers": "^0.7.9", "array-shuffle": "^3.0.0", diff --git a/src/services/player.ts b/src/services/player.ts index b833022..45f1388 100644 --- a/src/services/player.ts +++ b/src/services/player.ts @@ -515,7 +515,7 @@ export default class { if (!ffmpegInput) { // Not yet cached, must download - const info = await ytdl.getInfo(song.url); + const info = await ytdl.getInfo(song.url, {playerClients: ['WEB_CREATOR', 'IOS']}); const formats = info.formats as YTDLVideoFormat[]; From 35855dd16461a2570a4f8294497ae5e46aa80778 Mon Sep 17 00:00:00 2001 From: Juan Carlos Ramirez Date: Mon, 20 Jan 2025 17:11:11 -0600 Subject: [PATCH 2/3] Update reflect-metadata package --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d87ca60..d588e79 100644 --- a/package.json +++ b/package.json @@ -121,7 +121,7 @@ "patch-package": "^8.0.0", "postinstall-postinstall": "^2.1.0", "read-pkg": "7.1.0", - "reflect-metadata": "^0.1.13", + "reflect-metadata": "^0.2.2", "sponsorblock-api": "^0.2.4", "spotify-uri": "^3.0.2", "spotify-web-api-node": "^5.0.2", From 0db43cee324834a305dab2ba83785d0e0a5f6643 Mon Sep 17 00:00:00 2001 From: Juan Carlos Ramirez Date: Mon, 20 Jan 2025 17:44:07 -0600 Subject: [PATCH 3/3] Add logic to catch empty formats --- src/services/player.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/services/player.ts b/src/services/player.ts index 45f1388..99ac8f0 100644 --- a/src/services/player.ts +++ b/src/services/player.ts @@ -524,6 +524,10 @@ export default class { format = formats.find(filter); const nextBestFormat = (formats: ytdl.videoFormat[]): ytdl.videoFormat | undefined => { + if (formats.length < 1) { + return undefined; + } + if (formats[0].isLive) { formats = formats.sort((a, b) => (b as unknown as {audioBitrate: number}).audioBitrate - (a as unknown as {audioBitrate: number}).audioBitrate); // Bad typings