Skip to content

Instantly share code, notes, and snippets.

@teknikqa
Created May 7, 2017 06:38
Show Gist options
  • Select an option

  • Save teknikqa/f14fa07cf28228cb2dfe49a0caab8e70 to your computer and use it in GitHub Desktop.

Select an option

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();
@Deadly-Commando
Copy link
Copy Markdown

thank you so much i love you

@n00bhax
Copy link
Copy Markdown

n00bhax commented Jan 10, 2019

thanks

@RollingStar
Copy link
Copy Markdown

@dfbadawi 's worked perfectly.

Copy link
Copy Markdown

ghost commented Apr 6, 2020

is it still working?

@kokosowy
Copy link
Copy Markdown

kokosowy commented Jan 1, 2021

is it still working?

Yes it does! Just used it.

@yigituran332
Copy link
Copy Markdown

it didnt work out for me

@erickochen
Copy link
Copy Markdown

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
Copy Markdown

mraxilus commented Dec 1, 2021

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

@rgronberg
Copy link
Copy Markdown

Looks like the JS to use for deleting is now:

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

@vitalygashkov
Copy link
Copy Markdown

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();
})();

@DemonKingOdio
Copy link
Copy Markdown

Very cool, but to unlove all tracks, Autocorrection needs to be disabled on site settings
(Also, it needs to be manually restarted on Firefox after the refresh [unreachable code after return statement])

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