diff --git a/src/modules/music.js b/src/modules/music.js index af20805..3d34218 100644 --- a/src/modules/music.js +++ b/src/modules/music.js @@ -184,6 +184,7 @@ async function createVoiceConnection(guild_id, voice_id, text_id) { return state; } +const REGEX_HLS_AUDIO_TRACK = /#EXT-X-MEDIA:URI="(.+?)",TYPE=AUDIO,/; async function enqueue({ guild_id, voice_id, @@ -233,13 +234,22 @@ async function enqueue({ thumbnail = info?.thumbnailUrl; const hlsUrl = new URL(info.hls); + const hlsBase = await fetch(info.hls) + .then((res) => res.text()) + .then((data) => + data.replaceAll( + "/api/manifest/", + `https://${hlsUrl.hostname}/api/manifest/` + ) + ); + media = Readable.from( - await fetch(info.hls) + await fetch(hlsBase.match(REGEX_HLS_AUDIO_TRACK)[1]) .then((res) => res.text()) .then((data) => data.replaceAll( - "/api/manifest/", - `https://${hlsUrl.hostname}/api/manifest/` + "/videoplayback/", + `https://${hlsUrl.hostname}/videoplayback/` ) ) );