api/soundcloud: fix extraction of client_id (#1497)

fixes #1495
This commit is contained in:
patrick
2026-01-09 10:38:29 +01:00
committed by GitHub
parent eb5cf3b64c
commit 07bb16dfe7

View File

@@ -15,9 +15,10 @@ async function findClientID() {
return cachedID.id; return cachedID.id;
} }
let clientid = sc.match(/"hydratable"\s*:\s*"apiClient"\s*,\s*"data"\s*:\s*\{\s*"id"\s*:\s*"([^"]+)"/)?.[1];
if (!clientid) {
const scripts = sc.matchAll(/<script.+src="(.+)">/g); const scripts = sc.matchAll(/<script.+src="(.+)">/g);
let clientid;
for (let script of scripts) { for (let script of scripts) {
const url = script[1]; const url = script[1];
@@ -26,13 +27,15 @@ async function findClientID() {
} }
const scrf = await fetch(url).then(r => r.text()).catch(() => {}); const scrf = await fetch(url).then(r => r.text()).catch(() => {});
const id = scrf.match(/\("client_id=[A-Za-z0-9]{32}"\)/); const id = scrf.match(/,client_id:"([A-Za-z0-9]{32})",/);
if (id && typeof id[0] === 'string') { if (id && id.length >= 2) {
clientid = id[0].match(/[A-Za-z0-9]{32}/)[0]; clientid = id[1];
break; break;
} }
} }
}
cachedID.version = scVersion; cachedID.version = scVersion;
cachedID.id = clientid; cachedID.id = clientid;