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
allow windows programs to call dssp/mkdssp command from wsl; rework biopython on windows (PDB -> dssp -> fasta)

dssp-wsl Converting PDB (Protein Data Bank) file format to DSSP file format is required for generating datasets of peptides and their secondary struct

Taine Zhao 1 Feb 23, 2022
Vhook: A Discord webhook spammer / deleter open source coded by vesper

Vhook_Spammer Vhook is a advanced Discord webhook spammer / deleter with embeds,

Vesper 17 Nov 13, 2022
Embed the Duktape JS interpreter in Python

Introduction Pyduktape is a python wrapper around Duktape, an embeddable Javascript interpreter. On top of the interpreter wrapper, pyduktape offers e

Stefano 78 Dec 15, 2022
Select random winners for a Twitter giveaway

twitter_picker Select random winners for a Twitter giveaway Once the Twitter giveaway (or airdrop) is closed, assign a number to each participant. The

Michael Rawner 1 Dec 11, 2021
Free and Open Source Group Voice chat music player for telegram ❤️ with button support youtube playback support

Free and Open Source Group Voice chat music player for telegram ❤️ with button support youtube playback support

Sehath Perera 1 Jan 08, 2022
Binance leverage futures Hook

Simple binance futures Attention Just use leverage. The fee difference between futures and spot is not considered. For example, funding rate, etc. Onl

Adriance 26 Aug 27, 2022
A wrapper for The Movie Database API v3 and v4 that only uses the read access token (not api key).

fulltmdb A wrapper for The Movie Database API v3 and v4 that only uses the read access token (not api key). Installation Use the package manager pip t

Jacob Hale 2 Sep 26, 2021
OSINT tool to get information from a Github and Gitlab profile and find user's email addresses leaked on commits.

gitrecon OSINT tool to get information from a Github or Gitlab profile and find user's email addresses leaked on commits. 📚 How does this work? GitHu

GOΠZO 211 Dec 17, 2022
Telegram hack bot [ For Dev ]

Telegram hack bot [ For Dev ]

Alison Parker 1 Jul 04, 2022
ToqueIO Nuke tools - A collection of tools designed to assist in enhancing your workflows within nuke

ToqueIO Nuke tools - A collection of tools designed to assist in enhancing your workflows within nuke

4 Feb 19, 2022
Multi-Branch CI/CD Pipeline using CDK Pipelines.

Using AWS CDK Pipelines and AWS Lambda for multi-branch pipeline management and infrastructure deployment. This project shows how to use the AWS CDK P

AWS Samples 36 Dec 23, 2022
Simple discord token generator good for memberboosting your server! Uses Hcaptcha bypass

discord-tokens-generator INFO This is a Simple Discord Token Generator which creates unverified discord accounts These accounts are good for member bo

Avenger 41 Dec 20, 2022
This bot will pull a stream of tweets based on rules you set and automatically reply to them.

Twitter reply bot This bot will pull a stream of tweets based on rules you set and automatically reply to them. I built this bot in order to help comb

Brains 1 Feb 13, 2022
Terraform Cloud CLI for Managing Workspace Terraform Versions

Terraform Cloud Version Manager This tiny script makes it easy to update the Terraform Version on all of the Workspaces inside Terraform Cloud. It wil

Robert Hafner 1 Jan 07, 2022
LyricsGenius: a Python client for the Genius.com API

LyricsGenius: a Python client for the Genius.com API lyricsgenius provides a simple interface to the song, artist, and lyrics data stored on Genius.co

KevinChunye 2 Jun 30, 2022
Python Library for Secp256k1 Bitcoin curve to do fast ECC calculation

secp256k1 Python Library for Secp256k1 Bitcoin curve to do fast ECC calculation Example Usage import secp256k1 as ice print('[C]',privatekey_to_addres

iceland 49 Jan 01, 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
Music bot for playing music on telegram voice chat group.

Somali X Music 🎵 Music bot for playing music on telegram voice chat group. Requirements FFmpeg NodeJS nodesource.com Python 3.8+ or Higher PyTgCalls

Abdisamad Omar Mohamed 4 Dec 01, 2021
Shellkg-py - A temporary Repository to rewrite of shellpkg in python

Shellkg-py - A temporary Repository to rewrite of shellpkg in python

2 Jan 26, 2022
unofficial library for discord components(on development)

discord.py-buttons unofficial library for discord buttons(on development) Install pip install --upgrade discord_buttons Example from discord import Cl

kiki7000 129 Dec 31, 2022