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,24 +15,27 @@ async function findClientID() {
return cachedID.id;
}
const scripts = sc.matchAll(/<script.+src="(.+)">/g);
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);
let clientid;
for (let script of scripts) {
const url = script[1];
for (let script of scripts) {
const url = script[1];
if (!url?.startsWith('https://a-v2.sndcdn.com/')) {
return;
}
if (!url?.startsWith('https://a-v2.sndcdn.com/')) {
return;
}
const scrf = await fetch(url).then(r => r.text()).catch(() => {});
const id = scrf.match(/\("client_id=[A-Za-z0-9]{32}"\)/);
const scrf = await fetch(url).then(r => r.text()).catch(() => {});
const id = scrf.match(/,client_id:"([A-Za-z0-9]{32})",/);
if (id && typeof id[0] === 'string') {
clientid = id[0].match(/[A-Za-z0-9]{32}/)[0];
break;
if (id && id.length >= 2) {
clientid = id[1];
break;
}
}
}
cachedID.version = scVersion;
cachedID.id = clientid;