Skip to main content

License: MIT

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)

Source distribution for myredditdl 0.0.7
File Size Uploaded
myredditdl-0.0.7.tar.gz 18.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for myredditdl 0.0.7
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.6

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page