Mass-unscrobble Last.fm scrobbles based on artist, track title, or time of day of the scrobble.

Overview

License: GPL v3

Unscrobbler

This program is designed to mass-unscrobble Last.fm scrobbles based on artist, track title, or time of day of the scrobble.

For example, if you want to delete all the scrobbles by the artist Howard Shore between 11pm and 7am, that's exactly what this is for.

Operation

Settings

When you run the program, you'll be prompted to enter a few values.

  • Whether or not this is a trial run (if so, nothing will be deleted)
  • Whether or not to delete based on time of day
    • The earliest hour to delete (will delete after this, inclusive)
    • The latest hour to delete (will delete before this, inclusive [if set to 20, will include 20:12])
    • So, everything between these two hours (that matches the rest of the criteria) will be deleted.
  • Whether or not to delete based on the year
    • The year to delete (will delete with this year)
  • Username
  • Password
    • Your username/password are only used locally in this program. They're inputted into the Last.fm login form, and that's the only way they're shared.
  • Last.fm library page number to start at (default 0)

Output

When run, the program will generate an output file detailing each track it deletes. These files are found in ./output/. Trial runs are denoted with (trial).

Stopping

To stop it, spam Ctrl+C in the terminal or close the browser window.

Trial Runs

Instead of blindly trusting this to do what you want it to do properly, you can run it in trial mode and it won't delete anything. When you run it, just enter Y for Trial Mode.

Trial runs will still output results to ./output/, so they're useful to see what it will end up deleting and maybe tweak your settings.

Installation

Unscrobbler.py

  1. Download/install Python 3.

  2. Download Unscrobbler (the Source code (zip)).

  3. Unzip the folder. Inside the main folder (where Unscrobbler.py is located), open a command-line terminal. Run the following command to install dependencies: pip3 install -r requirements.txt.

  4. Edit lines 17-18 of Unscrobbler.py in a text editor for your purposes. Example:

    delete_artists = ["Artist One", "Artist Two", "Also an Artist"]
    delete_songs = []
    
    delete_artists = []
    delete_songs = ["Bangarang"]
    

    Note that capitalization is important—if what you put in isn't perfect, it won't match what shows up on Last.fm.

  5. Now, you can run Unscrobbler with the command python Unscrobbler.py or similar.

Geckodriver

  1. Download the relevant Geckodriver from here: https://github.com/mozilla/geckodriver/releases

  2. Unzip the downloaded file and place the contained .exe file in the same directory as Unscrobbler.py.

You might also like...
Telegram bot that search for the classrooms status of the chosen day and then return all the free classrooms using your preferred time slot
Telegram bot that search for the classrooms status of the chosen day and then return all the free classrooms using your preferred time slot

Aule Libere Polimi Since the PoliMi site no longer allows people to search for free classrooms this bot was necessary! It simply search for the classr

This is Pdisk Upload Bot made using Python with Pyrogram Framework. Its capable of uploading direct download link with thumbnail or without thumbnail & with Title Support.

Pdisk-Upload-Bot Introduction This Is PDisk Upload Bot Used To Upload Direct Link To Pdisk With Thumb Support Deploy Heroku Deploy Local Deploy pip in

Battle.net and PlayStation title watcher that reports updates via Discord.
Battle.net and PlayStation title watcher that reports updates via Discord.

Renovate Renovate is a Battle.net and PlayStation title watcher that reports updates via Discord. Usage Open config_example.json and provide the confi

A simple script that can be used to track real time that user was online in telegram

TG_OnlineTracker A simple script that can be used to track real time that user was online in telegram Join @DaisySupport_Official 🎵 for help 🏃‍♂️ Ea

Official python API for Phish.AI public and private API to detect zero-day phishing websites

phish-ai-api Summary Official python API for Phish.AI public and private API to detect zero-day phishing websites How it Works (TLDR) Essentially we h

Mini Tool to lovers of debe from eksisozluk (one of the most famous website -reffered as collaborative dictionary like reddit- in Turkey) for pushing debe (Most Liked Entries of Yesterday) to kindle every day via Github Actions.

debe to kindle Mini Tool to lovers of debe from eksisozluk (one of the most famous website -refered as collaborative dictionary like reddit- in Turkey

An iCal file to transport you to a new place every day until you die
An iCal file to transport you to a new place every day until you die

everydayvirtualvacation An iCal file to transport you to a new place every day until you die The library is closed 😔 😔 including a video of the plac

Weather_besac is a French twitter bot that tweet the weather of the city of Besançon in Franche-Comté in France every day at 8am and 4pm.

Weather Bot Besac Weather_besac is a French twitter bot that tweet the weather of the city of Besançon in Franche-Comté in France every day at 8am and

Signs the target email up to over 1000 different mailing lists to get spammed each day.

Email Bomber Say goodbye to that email Features Signs up to over 1k different mailing lists Written in python so the program is lightweight Easy to us

Comments
  • selenium exception during last.fm login

    selenium exception during last.fm login

    Unfortunately I get the following error:

    Launching Firefox
    Traceback (most recent call last):
      File "/Users/eric/dev/Unscrobbler/./Unscrobbler.py", line 136, in <module>
        driver.find_element(by = By.CSS_SELECTOR, value = "button[name='submit']").click()
      File "/Users/eric/.venv/unscrobbler/lib/python3.9/site-packages/selenium/webdriver/remote/webelement.py", line 81, in click
        self._execute(Command.CLICK_ELEMENT)
      File "/Users/eric/.venv/unscrobbler/lib/python3.9/site-packages/selenium/webdriver/remote/webelement.py", line 710, in _execute
        return self._parent.execute(command, params)
      File "/Users/eric/.venv/unscrobbler/lib/python3.9/site-packages/selenium/webdriver/remote/webdriver.py", line 424, in execute
        self.error_handler.check_response(response)
      File "/Users/eric/.venv/unscrobbler/lib/python3.9/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.ElementClickInterceptedException: Message: Element <button class="btn-primary" name="submit" type="submit"> is not clickable at point (497,443) because another element <div class="onetrust-pc-dark-filter ot-fade-in"> obscures it
    Stacktrace:
    [email protected]://remote/content/shared/webdriver/Errors.jsm:183:5
    [email protected]://remote/content/shared/webdriver/Errors.jsm:282:5
    [email protected]://remote/content/marionette/interaction.js:166:11
    [email protected]://remote/content/marionette/interaction.js:125:11
    [email protected]://remote/content/marionette/actors/MarionetteCommandsChild.jsm:203:24
    [email protected]://remote/content/marionette/actors/MarionetteCommandsChild.jsm:91:31
    
    opened by eriwst 5
Releases(v1.0.1)
Owner
Nathan
I've got some experience in Java and Python. I don't make anything too impressive, but it sure is fun!
Nathan
PancakeTrade - Limit orders and more for PancakeSwap on Binance Smart Chain

PancakeTrade helps you create limit orders and more for your BEP-20 tokens that swap against BNB on PancakeSwap. The bot is controlled by Telegram so you can interact from anywhere.

Valentin Bersier 187 Dec 20, 2022
A corona statistics and information telegram bot.

A corona statistics and information telegram bot.

Fayas Noushad 15 Oct 21, 2022
RaidBot for WhatsApp

WhatsappRaid Скрипт подготовлен специально для сайта https://pysoc.ru и Ютуб канала PyPro Русский Простой спам бот для WhatsApp на Python3. Работает с

2 May 12, 2022
Yandex OSINT tool

YaSeeker Description YaSeeker - an OSINT tool to get info about any Yandex account using email or login. It can find: Fullname Photo Gender Yandex UID

HowToFind 110 Jan 03, 2023
twtxt is a decentralised, minimalist microblogging service for hackers.

twtxt twtxt is a decentralised, minimalist microblogging service for hackers. So you want to get some thoughts out on the internet in a convenient and

buckket 1.8k Jan 09, 2023
Raid ToolBox (RTB) is a big toolkit of Spamming/Raiding/Token management tools for discord.

This code is very out of date and not very good, feel free to make it into something better. (we check the github page every 5 years to pulls your PRs

2 Oct 03, 2021
Python wrapper for the GitLab API

Python GitLab python-gitlab is a Python package providing access to the GitLab server API. It supports the v4 API of GitLab, and provides a CLI tool (

1.9k Dec 31, 2022
A component of BuzzUtilityBot that allows for inter-server communication

A component of BuzzUtilityBot that allows for inter-server communication! Separated due to privacy and ease of inspection concerns

OHaiiBuzzle 2 Oct 11, 2022
A Telegram Bot with(Forwarder Bot + User Bot + More Features )

A Telegram Bot with(Forwarder Bot + User Bot + More Features )

Kaif 3 Feb 16, 2022
Monitor your Binance portfolio

Binance Report Bot The intent of this bot is to take a snapshot of your binance wallet, e.g. the current balances and store it for further plotting. I

37 Oct 29, 2022
Some examples regarding how to use the Twitter APIs for academic research

Twitter Developer Platform: Using Twitter APIs for Academic Research All the scripts require a config.ini file in which the keys are put. There is a t

Federico Bianchi 6 Feb 13, 2022
Simple Craigslist wrapper

python-craigslist A simple Craigslist wrapper. License: MIT-Zero. Disclaimer I don't work for or have any affiliation with Craigslist. This module was

Julio M. Alegria 370 Dec 22, 2022
A python to scratch API connector. Can fetch data from the API and send it back in cloud variables.

Scratch2py Scratch2py or S2py is a easy to use, versatile tool to communicate with the Scratch API Based of scratchclient by Raihan142857 Installation

20 Jun 18, 2022
A Python Library to interface with Flickr REST API, OAuth & JSON Responses

Python-Flickr Python-Flickr is A Python library to interface with Flickr REST API & OAuth Features Photo Uploading Retrieve user information Common Fl

Mike Helmick 40 Sep 25, 2021
OpenEmu Discord Rich Presence provided with Python!

A simple application that provides your current OpenEmu game as an RPC state in Discord via PyPresence. How to use Unzip and open the latest x86_64 ve

Deltaion Lee 6 May 30, 2022
Um bot simples para seguir as pessoas

Um bot simples para seguir pessoas no instagram, criado apeanas para testes. Utilizando o framework "Selenium", criei um bot para entrar em uma conta

Mobben 1 Nov 05, 2021
This project is a basic login system in terminal for Discord

Welcome to Discord Login System(Terminal) 👋 This project is a basic login system in terminal for Discord Author 👤 arukovic Github: @SONIC-CODEZ Show

SONIC-CODEZ 2 Feb 11, 2022
Listen to the radio station from your favorite broadcast

Latest news Listen to the radio station from your favorite broadcast MyCroft Radio Skill for testing and copy at docker skill About Play regional radi

1 Dec 22, 2021
A Code that can make your Discord Account 24/7 on Voice Channels!

Voicecord Make your Discord Account Online 24/7 on Voice Channels! A Code written in Python that helps you to keep your account 24/7 on Voice Channels

Phantom 229 Jan 07, 2023
Open API to list Viet Nam administrative divisions

Viet Nam province API Homepage: https://provinces.open-api.vn This is online tool to let my VietnamProvinces library reach more users. VietnamProvince

Nguyễn Hồng Quân 52 Dec 05, 2022