Skip to content

Instantly share code, notes, and snippets.

@teknikqa
Created May 7, 2017 06:38
Show Gist options
  • Save teknikqa/f14fa07cf28228cb2dfe49a0caab8e70 to your computer and use it in GitHub Desktop.
Save teknikqa/f14fa07cf28228cb2dfe49a0caab8e70 to your computer and use it in GitHub Desktop.
Bulk delete Last.FM scrobbles & loved tracks
// On the Last.FM website go to the page which lists the tracks that you have loved.
// Open Chrome DevTools (or Firefox or any modern browser that has a built in Javacript Console)
// and run the following command.
// This basically clicks on all the delete buttons on the page and reloads the page.
jQuery('.love-button--loved').each(function(_, b) {
b.click();
});
location.reload();
// On the Last.FM website go to the page which lists the tracks that you have scrobbled.
// Open Chrome DevTools (or Firefox or any modern browser that has a built in Javacript Console)
// and run the following command.
// This basically clicks on all the delete buttons on the page and reloads the page.
jQuery('.dropdown-menu-clickable-item').each(function(_, b) {
b.click();
});
location.reload();
@kokosowy
Copy link

kokosowy commented Jan 1, 2021

is it still working?

Yes it does! Just used it.

@yigituran332
Copy link

it didnt work out for me

@ericafterdark
Copy link

it didnt work out for me

Last.fm changed their site. To remove loved tracks use:

jQuery('.chartlist-love-button').each(function(_, b) {
  b.click();
});
location.reload();

@mraxilus
Copy link

mraxilus commented Dec 1, 2021

Confirming that @dfbadawi's method worked as of 2021-12-01.

@rgronberg
Copy link

Looks like the JS to use for deleting is now:

jQuery('.more-item--delete').each(function(_, b) {
    b.click()
});
location.reload()

@vitalygashkov
Copy link

Right now, the server has a limit on the number of requests in a certain period of time. So we have to add a delay between the removal of likes.

(async () => {
  const DELAY = 5_000;
  const likes = $$('.chartlist-love-button');
  for (const like of Array.from(likes)) {
    like.click();
    await new Promise((resolve) => setTimeout(resolve, DELAY));
  }
  location.reload();
})();

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