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.7.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

myredditdl-0.0.7-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: myredditdl-0.0.7.tar.gz
  • Upload date:
  • Size: 18.8 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.7.tar.gz
Algorithm Hash digest
SHA256 400901613434a7a8a3187538384874c306456d81f1ef3fd90b3bd62cb03076a8
MD5 2a2ddd447fd0a9abc9d8e917d0075f25
BLAKE2b-256 fa8e0031020a4815fbe0a2dcb27776313bfdcf8b056b5eefd826674a463d775a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: myredditdl-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 22.1 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 2c8c278a03685819d622590697040425c2f0934f69056f86b49209d88f784d23
MD5 0e7980d88a4b9c056a8b5c52a8879c77
BLAKE2b-256 f7e33bd52b0edad54992d15d26b8cdaa27cc164d098b7524cf904e9c9a52cde8

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