From 0e6ea09b16d77ccfdd947f2a3648a1b4cb6ffa15 Mon Sep 17 00:00:00 2001 From: wukko Date: Fri, 10 May 2024 23:57:14 +0600 Subject: [PATCH] soundcloud: fix fallback & use source mp3 if preferred --- src/modules/processing/match.js | 1 + src/modules/processing/services/soundcloud.js | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/processing/match.js b/src/modules/processing/match.js index cc9543c..a6432e4 100644 --- a/src/modules/processing/match.js +++ b/src/modules/processing/match.js @@ -114,6 +114,7 @@ export default async function(host, patternMatch, url, lang, obj) { url, author: patternMatch.author, song: patternMatch.song, + format: obj.aFormat, shortLink: patternMatch.shortLink || false, accessKey: patternMatch.accessKey || false }); diff --git a/src/modules/processing/services/soundcloud.js b/src/modules/processing/services/soundcloud.js index 6a20acc..2288b5f 100644 --- a/src/modules/processing/services/soundcloud.js +++ b/src/modules/processing/services/soundcloud.js @@ -63,11 +63,12 @@ export default async function(obj) { if (!json["media"]["transcodings"]) return { error: 'ErrorEmptyDownload' }; let bestAudio = "opus", - selectedStream = json.media.transcodings.find(v => v.preset === "opus_0_0"); + selectedStream = json.media.transcodings.find(v => v.preset === "opus_0_0"), + mp3Media = json.media.transcodings.find(v => v.preset === "mp3_0_0"); - // fall back to mp3 if no opus is available - if (selectedStream.length === 0) { - selectedStream = json.media.transcodings.find(v => v.preset === "mp3_0_0"); + // use mp3 if present if user prefers it or if opus isn't available + if (mp3Media && (obj.format === "mp3" || !selectedStream)) { + selectedStream = mp3Media; bestAudio = "mp3" }