Skip to content

Instantly share code, notes, and snippets.

@TheOnlyWayUp
Last active June 23, 2025 11:45
Show Gist options
  • Save TheOnlyWayUp/4452b0a5c151740417c16f3518fb701e to your computer and use it in GitHub Desktop.
Save TheOnlyWayUp/4452b0a5c151740417c16f3518fb701e to your computer and use it in GitHub Desktop.
Like all songs in a Youtube Music Playlist

This script likes all the songs in a Youtube Music Playlist at once.

How to use:

  • Visit a Playlist's page on ytm (URL looks like: https://music.youtube.com/playlist?list=...
  • Press ctrl + shift + j. This opens the Developer Console.
  • Copy the script in this gist (That's in script.js)
  • Paste the code into the Developer Console on the ytm Tab, hit enter.
  • Great, you're done!

Star ⭐ this gist if it was useful. Follows to my GitHub Profile are appreciated.

Follow Badge


TheOnlyWayUp © 2024

// made by https://github.com/TheOnlyWayUp, if it helped, drop a follow!
// source: https://gist.github.com/TheOnlyWayUp/4452b0a5c151740417c16f3518fb701e
let interval = 10 // wait time between chunks in seconds
const chunk = size => array => array.reduce((result, item) => {
if (result[result.length - 1].length < size) {
result[result.length - 1].push(item);
} else {
result.push([item]);
}
return result;
}, [
[]
]); // Thanks https://stackoverflow.com/a/77372180
function likeall() {
let els = document.getElementById("contents").querySelectorAll(
"button[aria-pressed=false][aria-label='Like']")
console.log(`${els.length} to Like`)
let cels = chunk(5)(Array.from(els))
cels.forEach(function(items, index) {
setTimeout(function() {
console.log("start")
items.forEach(el => el.click())
console.log("end")
}, index *
interval * 1000); // Thanks https://stackoverflow.com/a/45500721
});
}
likeall()
@olekii
Copy link

olekii commented Jun 3, 2025

The program worked perfectly I used it to like my 3000 songs that I had from spotify over to my youtube music account.

I am hoping you have not gotten banned? How much did you wait between liking songs?

I still have my account and its been over 2 months still use it daily and had no problems. I also believe its due to my accounts age of 10+ years and it being premium for youtube music and I used the default original code without changing the timing between liking songs

@svintit
Copy link

svintit commented Jun 15, 2025

None of these seem to work as of today, no songs are selected, and it finishes almost immediately, will try find some time to fix

@svintit
Copy link

svintit commented Jun 15, 2025

I got it working with https://github.com/aawezhussain/Youtube-Music-Auto-Playlist-Liker - updating the query selector ID and removing the liked conditional (none of my songs were already liked so worked for me)

@pokemonshowdown1
Copy link

I got it working with https://github.com/aawezhussain/Youtube-Music-Auto-Playlist-Liker - updating the query selector ID and removing the liked conditional (none of my songs were already liked so worked for me)

Would you mind posting your fix?

@PostApoc
Copy link

I got it working with https://github.com/aawezhussain/Youtube-Music-Auto-Playlist-Liker - updating the query selector ID and removing the liked conditional (none of my songs were already liked so worked for me)

Would you mind posting your fix?

I got it working by changing the following line:
const likeButtons = document.querySelectorAll('tp-yt-paper-icon-button[aria-label="Like"]');
To:
const likeButtons = document.querySelectorAll('.yt-spec-button-shape-next--icon-button[aria-label="Like"]');

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