Home

Hi, my name is Vitalii Rudnykh 👋
I ❤️ open source, books and cybersecurity.

23 Jul 2021

Скрипт для очистки историй скробблинга на last.fm

Давным-давно у last.fm была возможность вайпнуть всю историю скробблинга в настройках профиля, потом ее выпилили, но, оставили API-метод через который можно было единично удалять прослушивания. Большинство скриптов которые предлагают вам обнулить аккаунт работают именно через метод removeScrobble(), к сожалению, его отключили в 2017 году. Единственный оставшийся вариант - удалять историю через веб-интерфейс.

На данный момент (июль 2021 года) я не смог найти ни одного работающего скрипта для обнуления историй скробблинга, поэтому написал свой код на Python.

Скрипт довольно простой, через Selenium открываем библиотеку прослушиваний и вызываем JQuery-код, который циклично прокликивает по кнопке “Delete scrobble”.

Далее, ждем 5 секунд, обновляем страницу и повторяем действия.

import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

profile_path='/Users/rudnkh/Library/Application'
chrome_options = Options()
chrome_options.add_argument("--user-data-dir=" + profile_path);
driver = webdriver.Chrome(options=chrome_options)

def unscrobble():
    time.sleep(5)
    driver.get('https://www.last.fm/user/detma/library')
    try:
        driver.execute_script("jQuery('button.dropdown-menu-clickable-item[data-ajax-form-sets-state=deleted]').each(function(_, b){b.click();});location.reload();")
    except:
        pass
while True:
    unscrobble()

В коде нужно поменять на свои значения profile_path (путь до User Data Directory) и ссылку в driver.get().

P.S.
Возможно, понадобится увеличить время таймаута в time.sleep() чтобы не получить блокировку со стороны сервера.

scribble