- Python 3.6 or above
- requests
- praw
Create a developer application on reddit if needed
pip install myredditdl
$ git clone https://github.com/emanuel2718/myredditdl
$ cd myredditdl
$ pip install -r requirements.txt
# you might need to install setuptools (pip install setuptools)
$ python3 setup.py install
$ myredditdl --add-client
$ myredditdl [REQUIRED] [OPTIONS]
-U, --upvote Download upvoted media
-S, --saved Download saved media
-h, --help show this message and exit
-v, --version display the current version of myreddit-dl
--sub [SUBREDDIT ...] only download media that belongs to the given subreddit(s)
--limit [LIMIT] limit the amount of media to download (default: None)
--max-depth [MAX_DEPTH] maximum amount of posts to iterate through
--no-video don't download video files (.mp4, .gif, .gifv, etc.)
--only-video only download video files
--no-nsfw disable NSFW content download
--add-client add a new Reddit account
--change-client change to another valid existing reddit client (account)
--prefix OPT set filename prefix (post author username and/or post subreddit name)
Options:
'--config-prefix username' --> username_id.ext
'--config-prefix username subreddit' --> username_subreddit_id.ext
'--config-prefix subreddit username' --> subreddit_username_id.ext
'--config-prefix subreddit' --> subreddit_id.ext
Default: subreddit_username.ext
--path PATH path to the folder were media will be downloaded to
--get-config prints the configuration file information to the terminal
--no-metadata don't save metadata for the downloaded media
--get-metadata FILE print all the reddit metadata of the given FILE
--get-link FILE print reddit link of given FILE
--get-title FILE print post title of given FILE
--delete-database delete the database of the current active reddit client user
Set the reddit client information to be able to use myredditdl
$ myredditdl --add-client
Set the path to the destination folder for the downloaded media
$ myredditdl --path ~/Path/to/destination
Set the filenames prefix scheme of the downloaded media
# This will save all the files with the scheme: `postAuthorUsername_uniqueId.extension`
$ myredditdl --prefix username
# This will save all the files with the scheme: `subredditName_postAuthorUsername_uniqueId.extension`
$ myredditdl --prefix subreddit username
# This will save all the files with the scheme: `postAuthorName_subredditName_uniqueId.extension`
$ myredditdl --config-prefix username subreddit
Show the current configuration
$ myredditdl --show-config
Download all user upvoted media (limited to 1000 posts: Praw's API hard limit)
$ myredditdl -U
Download all user saved media and don't save metadata of posts
$ myredditdl -S --no-metadata
Download all user upvoted and saved media except NSFW posts
$ myredditdl -U -S --no-nsfw
Download all the user upvoted posts from the r/MechanicalKeyboards subreddit
$ myredditdl -U --sub MechanicalKeyboards
Download all the user upvoted posts from the r/MechanicalKeyboards and r/Battlestations subreddits
# There's no limit to how many subreddits can be chained together
$ myredditdl -U --sub MechanicalKeyboards Battlestations
Download only 10 posts media and only download images (don't download videos)
$ myredditdl -U --limit 10 --no-video
Get the post link of a downloaded media
# This will print the reddit post link of that image
$ myredditdl --get-link random_image.png
Get the post title of a downloaded media
# This will print the reddit post title of that video
$ myredditdl --get-title random_video.mp4
Get the metadata of downloaded media
# This will print the metadata of the image
$ myredditdl --get-metadata random_image.jpg