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