Reddit upvoted and saved media downloader
Project description
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 400901613434a7a8a3187538384874c306456d81f1ef3fd90b3bd62cb03076a8 |
|
MD5 | 2a2ddd447fd0a9abc9d8e917d0075f25 |
|
BLAKE2b-256 | fa8e0031020a4815fbe0a2dcb27776313bfdcf8b056b5eefd826674a463d775a |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c8c278a03685819d622590697040425c2f0934f69056f86b49209d88f784d23 |
|
MD5 | 0e7980d88a4b9c056a8b5c52a8879c77 |
|
BLAKE2b-256 | f7e33bd52b0edad54992d15d26b8cdaa27cc164d098b7524cf904e9c9a52cde8 |