My Reddit Downloader
Download upvoted and saved media from Reddit
Index
Requirements
- Python 3.6 or above
- requests
- praw
Pre-Installation
Create a developer application on reddit if needed
Installation
pip install myredditdl
Manual Installation
1. Clone this repository
$ git clone https://github.com/emanuel2718/myredditdl
$ cd myredditdl
2. Install requirements
$ pip install -r requirements.txt
3. Install myredditdl
# you might need to install setuptools (pip install setuptools)
$ python3 setup.py install
4. Fill reddit developer app information
$ myredditdl --add-client
How to use
$ myredditdl [REQUIRED] [OPTIONS]
REQUIRED
-U, --upvote Download upvoted media
-S, --saved Download saved media
OPTIONS
Optional arguments:
-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
Confgiguration:
--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
Metadata:
--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
Configuration
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
Example usage:
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
Metadata
Release files for myredditdl 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| myredditdl-0.0.7.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| myredditdl-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.9 kB
Release files / myredditdl-0.0.7.tar.gz
| Download URL | myredditdl-0.0.7.tar.gz |
|---|---|
| Size | 18.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
400901613434a7a8a3187538384874c306456d81f1ef3fd90b3bd62cb03076a8
|
|
BLAKE2b-256 checksum How to use checksums |
fa8e0031020a4815fbe0a2dcb27776313bfdcf8b056b5eefd826674a463d775a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2
|
Release files / myredditdl-0.0.7-py3-none-any.whl
| Download URL | myredditdl-0.0.7-py3-none-any.whl |
|---|---|
| Size | 22.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c8c278a03685819d622590697040425c2f0934f69056f86b49209d88f784d23
|
|
BLAKE2b-256 checksum How to use checksums |
f7e33bd52b0edad54992d15d26b8cdaa27cc164d098b7524cf904e9c9a52cde8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2
|