Jelly-Pudding / ereddicator

A Python script to delete all comments and posts of a Reddit user
MIT License
20 stars 2 forks source link

Ereddicator

This Python script allows you to delete all your Reddit comments, posts, saved items, upvotes, downvotes, and hidden posts. However, upvotes and downvotes on archived posts will remain. There is no way to undo them. You can disable "make my votes public" in your preferences: https://www.reddit.com/prefs/

Features

Note: As an added measure against the original content being read, the content replacement process (with either random text or an advertisement) occurs three times immediately before the final edit or deletion.

Reddit Data Export Request

Reddit's API is limited and sometimes does not retrieve all comments and posts. If you want to ensure you get everything, you will need to make a Reddit data export request:

  1. Go to https://www.reddit.com/settings/data-request
  2. Fill in the form:
    • Select the appropriate request type based on your location:
      • If you're in the EU/UK: Select "General Data Protection Regulation (GDPR)"
      • If you're in California: Select "California Consumer Privacy Act (CCPA)"
      • For all other locations: Select "Other"
    • For date range, select "I want data from my full time at Reddit"
  3. Submit the request.

Reddit will process your request and send a message to your Reddit inbox (it is very fast usually and takes minutes, but it can take 1-2 days). The message will contain a download link. Extract the contents of the .zip file to a folder. You will then be able to select this folder when using Ereddicator (look for the Reddit Export Directory option).

Instructions (for Windows Users)

If you don't want to install Python, you can use the .exe version of the script:

  1. Optional First Step - Make a Reddit data request (see here for instructions). While Ereddicator works without this, using Reddit's data export ensures all of your content is processed.
  2. Obtain a client_id and client_secret and save these in a notepad file:
    • Go to https://www.reddit.com/prefs/apps
    • Click "Create App" or "Create Another App".
    • You can name it anything. It does not matter.
    • Choose "script" for personal use.
    • For the "redirect uri", put http://localhost:8080
    • After creation, the client_id is the string under "personal use script". For example, it may look like this: "AE9-zURLEvI1pze_rqH4Iw".
    • The client_secret is what appears next to "secret". It will look like this: "ZeqnEO_F21BrzzgOpb_es4kOfbhTww"
  3. Download the latest .zip file from the Releases page.
  4. Extract the contents of the .zip file to a folder.
  5. Run the ereddicator.exe file by double-clicking it. You may see Windows protected your PC. Just click on More Info and then click Run anyway.
  6. A terminal will open. Do not close it and make sure it stays open when you use Ereddicator.
  7. A GUI window will also open. Enter your Reddit API credentials into it.
    • If you use Two-Factor Authentication, enter your 2FA code in the "Two Factor Code" field. If you don't use 2FA, leave this field as is.
  8. After you successfully authenticate, a new window opens. In this window, you can configure your preferences.
  9. Click "Start Content Removal" to begin the process.

Instructions (for Python Users)

Installation

  1. Git clone this repository: git clone https://github.com/Jelly-Pudding/ereddicator.git
  2. Navigate to the project directory:
    cd ereddicator
  3. Install the required dependencies:
    pip install -r requirements.txt

Instructions

  1. Optional First Step - Make a Reddit data request (see here for instructions). While Ereddicator works without this, using Reddit's data export ensures all of your content is processed.
  2. Obtain a client_id and client_secret and save these in a notepad file:
    • Go to https://www.reddit.com/prefs/apps
    • Click "Create App" or "Create Another App".
    • You can name it anything. It does not matter.
    • Choose "script" for personal use.
    • For the "redirect uri", put http://localhost:8080
    • After creation, the client_id is the string under "personal use script". For example, it may look like this: "AE9-zURLEvI1pze_rqH4Iw".
    • The client_secret is what appears next to "secret". It will look like this: "ZeqnEO_F21BrzzgOpb_es4kOfbhTww"
  3. Create a file named reddit_credentials.ini in the same directory as the script.
  4. Add your Reddit API credentials to the file in the following format:
    [reddit]
    client_id = YOUR_CLIENT_ID
    client_secret = YOUR_CLIENT_SECRET
    username = YOUR_USERNAME
    password = YOUR_PASSWORD
    # Leave as None if you don't use two-factor authentication
    two_factor_code = None

    If you use 2FA, replace None with your 2FA code.

  5. Navigate to the src directory.
  6. Run the script using Python: python main.py.
  7. Follow the on-screen instructions in the GUI to configure your preferences and start the content removal process.

Support Me

Donations will help me with the development of this project.

One-off donation: https://ko-fi.com/lolwhatyesme

Patreon: https://www.patreon.com/lolwhatyesme