diff --git a/src/modules/music.js b/src/modules/music.js index 4ba712f..c45f8f3 100644 --- a/src/modules/music.js +++ b/src/modules/music.js @@ -119,6 +119,31 @@ async function processPlaylist( ).then((res) => res.json()); playlist = [...playlist, ...currentLikes.collection]; } + } else if (url.indexOf("/tracks")) { + let userInfo = await fetch( + `https://api-v2.soundcloud.com/resolve?url=${url}&client_id=${clientId}&limit=500` + ).then((res) => res.json()); + + while (!userInfo.uri) { + userInfo = await fetch( + `https://api-v2.soundcloud.com/resolve?url=${url}&client_id=${clientId}&limit=500` + ).then((res) => res.json()); + } + + const tracksUrl = + userInfo.uri.replace("api.", "api-v2.") + + "/tracks?limit=500&client_id=" + + clientId; + + let currentTracks = await fetch(tracksUrl).then((res) => res.json()); + playlist = currentTracks.collection; + + while (currentTracks.next_href != null) { + currentTracks = await fetch( + currentTracks.next_href + "&client_id=" + clientId + ).then((res) => res.json()); + playlist = [...playlist, ...currentTracks.collection]; + } } else { playlist = await fetch( `https://api-v2.soundcloud.com/resolve?url=${url}&client_id=${clientId}&limit=500`