Skip to content

Instantly share code, notes, and snippets.

@shiftgeist
Last active June 8, 2026 10:53
Show Gist options
  • Select an option

  • Save shiftgeist/b96190f0af72d45e05489b8131f42106 to your computer and use it in GitHub Desktop.

Select an option

Save shiftgeist/b96190f0af72d45e05489b8131f42106 to your computer and use it in GitHub Desktop.
Soundcloud: Add all liked songs to playlist
// 1. Start on https://soundcloud.com/you/likes
// 2. Scroll all the way to the bottom (may only add 300 items at a time because of soundcloud api)
// (playlists are limited to 500 songs)
playlistName = 'Likes' // <== your playlist
list = Array.from(document.querySelectorAll('.badgeList__item .sc-button-more'))
console.log('Found', list.length, 'liked songs')
function addToPlaylist(item) {
// open menu
item.click()
document.querySelector('.sc-button-addtoset').click()
setTimeout(() => {
playlists = Array.from(document.querySelectorAll('.addToPlaylistItem'))
playlist = playlists.find(p => {
titleLink = p.querySelector('.addToPlaylistItem__titleLink').innerText
return titleLink.toLowerCase() === playlistName.toLowerCase()
})
if (!playlist) {
console.error('No playlist with name', playlistName)
}
// click add to playlist after animation
button = playlist.querySelector('.addToPlaylistButton')
if (button.innerText.toLowerCase() === 'added') {
console.warn('Song already in playlist')
} else {
console.info('Song added to playlist')
button.click()
}
document.querySelector('.modal').click()
}, 300)
}
function delay(i) {
addToPlaylist(list[i])
if (i < list.length) {
setTimeout(() => {
i++;
delay(i);
}, 500);
} else {
console.warn('End of list reached', i)
}
}
delay(0)
@zogaru

zogaru commented Jun 8, 2026

Copy link
Copy Markdown

Thank you for this, worked like a charm. I don't think there are many other options do add your liked tracks with automation around. Nicely done!!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment