Skip to main content

Reddit upvoted and saved media downloader

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

myredditdl-0.0.4.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

myredditdl-0.0.4-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file myredditdl-0.0.4.tar.gz.

File metadata

  • Download URL: myredditdl-0.0.4.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for myredditdl-0.0.4.tar.gz
Algorithm Hash digest
SHA256 c82cb997a07d08a12b27f2353b48f63b2d1367bf0abb32eda2a3143b2126a291
MD5 4c387736b23dbaf57dc90bb7897c1380
BLAKE2b-256 9259e2312a07eec78bda6583685a4f1a0a696ba8fad76a0dc903c4d4d2e0a378

See more details on using hashes here.

File details

Details for the file myredditdl-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: myredditdl-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for myredditdl-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 b3181ab8d3ece0391cc26971479189bac341951a4b397d60180ba10a63569cb3
MD5 84ae760f21289dbdf553dfb39b5132c4
BLAKE2b-256 6941251031a065b7733349a9892c83c823400fe95e6e4a3b7710ca8989655053

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page