How do I get shreddit working on Linux ? ( kbin.social )

https://github.com/andrewbanchich/shreddit

I opened terminal with my comment.csv put in the desktop

  1. I did cargo install shreddit
  2. Then made the reddit app credentials
  3. Then did shreddit --username YouRedditUsername --password YourSuperSecretPassword123 --client-id clientidreplace --client-secret clientsecretreplace --gdpr-export-dir ~/Desktop/comments.csv

With the relevant information replaced with my own. But after I click enter nothing more happens like a message saying deleting or anything like that. Just cursor blinking. So do I just leave it alone or did something go wrong?

Update : Using the shreddit-linux file ended up working for me. On Linux to run it I had to right click it then go to properties and then allow executable. Then to run it in terminal I had to go to the directory shreddit-linux was in and type ./shreddit-linux.

Also, you have to make sure you extract all the GDPR files together. If it is missing one it needs you get an error, so after some error messages extracting everything fixed it for me and got it to start deleting.

explodingkitchen ,

Works for me on Ubuntu. Instead of using command-line arguments, I put a shreddit.env file in the same directory where my GDPR files were extracted, then did a cd to that directory before running shreddit. I've got single quotes around the passwords, etc. in the shreddit.env file.

ImaginaryFox OP ,

Could you do a step by step guide on set up? I'm clueless so don't even know where the shreddit.env file is after installing through cargo. Had tried the manual method too of downloading the Linux file on github.

explodingkitchen , (edited )

Okay, so it sounds like you've created the Reddit credentials. You also have shreddit installed and your $PATH variable changed, since 'shreddit --version' is giving you 0.9.1 instead of an error message.

TBH, I don't think installing shreddit via cargo creates a shreddit.env file. I just opened a new file in a text editor (I use Pluma), did a copy/paste of the body of the shreddit.env.example file, and then changed the fields to match my account info, client ID, etc.
Then I created a new directory called cargo_shreddit to keep all the mess in one place. I extracted my GDPR files into cargo_shreddit, put my shreddit.env file in there too, changed to that directory, and used the command "shreddit".

My ISP connection can be flaky, so occasionally it would crap out on me with a panic error--sometimes after deleting 50 entries, sometimes after doing thousands. To deal with that, I made a backup copy of my original comments.csv file, then simply edited my comments.csv file as I went along, keeping the first line of the file (the one that says 'id,permalink,date,ip,subreddit,gildings,link,parent,body,media') but deleting the entries for any comments I'd already successfully done. It took several hours to do it all, but you should see a steady stream of messages while it's happening to let you know which comments it's working on.

ETA: This is what my shreddit.env file looks like, with all the passwords, etc., changed to random values.

SHREDDIT_USERNAME='explodingkitchen'
SHREDDIT_PASSWORD='!hKL1ltVc7FbpOa4'
SHREDDIT_CLIENT_ID='uj$6LWzilcGPD*3&'
SHREDDIT_CLIENT_SECRET='z5&L%cC1Wj#Gid^3QUYMuqv2d#EH#'
SHREDDIT_DRY_RUN=false
SHREDDIT_USER_AGENT='ShredditRustClient'
SHREDDIT_EDIT_ONLY=false
SHREDDIT_GDPR_EXPORT_DIR='/home/explodingkitchen/cargo_shreddit'

second ETA: And in case you're wondering whether the problem is with your Reddit credentials, I very much doubt it. I just tried screwing up mine and it gives a distinct error message instead of the blinking cursor of WTF. When I restored them, shreddit worked again, so it's also not that Reddit's shut something down.

ImaginaryFox OP ,

I think I'm understanding it. So I should use txt to make the env file and put it in a folder with my extracted csv file. What command should I use to run the env file? That's something I haven't encountered before on Linux.

explodingkitchen ,

You don't run it. When shreddit executes, it will check the current directory for a shreddit.env file.

ImaginaryFox OP ,

So just run like the usual command? like

shreddit --username YouRedditUsername --password YourSuperSecretPassword123 --client-id clientidreplace --client-secret clientsecretreplace

explodingkitchen ,

You don't have to specify any arguments you've put in the shreddit.env file. Or anything with defaults you're okay with. So you can just type "shreddit" and hit enter. Anything you put on the command line will probably override what's in the shreddit.env file.

ImaginaryFox OP ,

Thanks for the help. I'll give this method a try. Hope it works.

explodingkitchen ,

Good luck. If that doesn't do it, the suggestion another commenter made to try strace sounds worthwhile.

SamsonSeinfelder ,

I Found shreddit had the best name but was way too clunky to use. Just went with Power Delete Suite for Reddit: just drag the JavaScript code into a bookmark and trigger it from your reddit profile view. Offers backups and overwrites.

github.com/j0be/PowerDeleteSuite

ImaginaryFox OP ,

I used that one to delete my comments and submissions, but when I did a search of my username there were some that it wasn't able to delete. Turns that for those the GDPR data reddit sends you needs to be used to go through and delete those comments individually. Haven't had luck setting up shreddit so been going through the permalink provided in the data request and deleting it one by one.

It's mixed in with data that was successfully deleted, so in 30 days I'll request another one for a more cleaned up list that only contains the undeleted material.

abff08f4813c ,

I tried this back when it had the bug of not exporting your data but overwritting it, so I lost some content this way.

PDS really does need to be upgraded to support using the GDPR archive, but that's probably a fairly big task to handle.

megane_kun ,
@megane_kun@lemm.ee avatar

It might take a while before anything gets outputted. I think it might also be good if you try the –dry-run option first just so that you’d know what to expect.

Here’s a sample output from one of my runs. It’s already been scoured clean, so there’s nothing to do.

sample shreddit output for an account with no posts and comments

I usually just run it through a bash script with the relevant line being:

<pre style="background-color:#ffffff;">
<span style="color:#323232;">./shreddit-linux -u ${uname} -p ${pword} $dryrun > "logs/${uname}_${tsstr}.log"
</span>

Where ${uname} and ${pword} are my username and password respectively, and $dryrun is either –dryrun or the empty string.

The output is then saved to a log file with the name pattern username_timestamp.

Also, I noticed that you’re using the gpdr-export option. I think there’s some wonkiness regarding that? I am not sure though. I still recommend using the –dryrun option first just to see what’s up (without actually doing any changes to your account.


EDIT:

I forgot to clarify, shreddit-linux is what I named the executable file I got from the repository.

ImaginaryFox OP ,

I tried the dry run but didn't get anything back after running command. I must just have to go the tedious route of deleting comments manually over the year from time to time.

megane_kun ,
@megane_kun@lemm.ee avatar

Before you give up on it, you might want to check on your shreddit.env file. The command line parameters override the stuff in there, but it might be a good idea to check anyways.

Best of luck!

e_t_ Admin ,

When I used shreddit, I pointed --gdpr-export-dir to the directory where I unpacked the archive from Reddit, not directly to comment.csv.

When the command is working, it's pretty verbose.

ImaginaryFox OP ,

Still not getting anything, so tried it with the --gdpr-export-dir part removed for just

shreddit --username YouRedditUsername --password YourSuperSecretPassword123 --client-id clientidreplace --client-secret clientsecretreplace

Same blinking cursor. When I do just put in the command like shreddit --version I do get back shreddit 0.9.1 so seems to be properly installed.

I guess I might try again later.

e_t_ Admin ,

You could run it under strace, e.g. strace -f -o shreddit.log shreddit...

That'll show you the system calls it's making. You might be able to tell if it's waiting on a network request or local I/O. You can find guides online how to read strace output.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • [email protected]
  • All magazines