Code Monkey home page Code Monkey logo

gert-reddit-downloader's Introduction

Gert

A command line tool to download media from Reddit

  • Supports:
    • Reddit: PNG/JPG images, GIFs, Image galleries, videos
    • Giphy: GIFs
    • Imgur: Direct images, GIFVs and albums
    • Gfycat/Redgifs: GIFs
    • Streamable: videos
  • GIF/GIFV from Imgur/Gfycat/Redgifs are downloaded as mp4

Installation

Prerequisites

There is a soft dependency on ffmpeg, for installation instructions follow this link.

You can skip it but without it:

  • Videos hosted on reddit itself (v.redd.it) won't have sound
  • Gifs won't be automatically converted to .mp4

Using cargo

If you already have Rust installed, you can install using cargo:

cargo install gert

Using homebrew

brew tap mcdallas/gert
brew install gert

Github Release

just grab the latest release for your OS

Running

Simply pass the names of the subreddits you want to download media from with (multiple) -s flags

gert -s wallpapers -s earthporn

gert4

To download media from a single post/collection just pass the url of the post

gert https://old.reddit.com/r/wallpapers/comments/tckky1/some_walls_from_my_collections_vol6/

Command line options

Simple CLI tool to download media from Reddit

USAGE:
    gert [FLAGS] [OPTIONS] --subreddit <SUBREDDIT>...

FLAGS:
        --debug             Show the current config being used
    -r, --dry-run           Dry run and print the URLs of saved media to download
    -h, --help              Prints help information
    -H, --human-readable    Use human readable names for files
    -V, --version           Prints version information

OPTIONS:
    -e, --from-env <ENV_FILE>         Set a custom .env style file with secrets
    -f, --feed <feed>                 Feed to download from [default: hot]  [possible values: hot, new, top, rising]
    -l, --limit <LIMIT>               Limit the number of posts to download [default: 25]
    -m, --match <MATCH>               Pass a regex expresion to filter the title of the post
    -o, --output <DATA_DIR>           Directory to save the media to [default: .]
    -p, --period <PERIOD>             Time period to download from [default: day]  [possible values: now, hour, day, week, month, year, all]
    -s, --subreddit <SUBREDDIT>...    Download media from these subreddit
    -u, --upvotes <NUM>               Minimum number of upvotes to download [default: 0]

Optional Authentication with Reddit

Authentication is not required but if you want a more generous rate limit you can create a new app in reddit and pass your credentials to gert

  1. Create a new script application at https://www.reddit.com/prefs/apps
    • Click on create an app at the bottom of the page
    • Input a name for your application, for example: gert
    • Choose "script" as the type of application
    • Set "http://localhost:8080" or any other URL for the redirect url
    • Click on "create app" - you should now see the application has been created
    • Under your application name, you should see a random string - that is your client ID
    • The random string next to the field "secret" is your client secret
  2. Copy the client ID and client secret information returned
  3. Create a .env file with the following keys, for example gert.env:
CLIENT_ID="<client_id>"
CLIENT_SECRET="<client_secret>"
USERNAME="<username>"
PASSWORD="<password>"

NOTE: If you have 2FA enabled, please make sure you set PASSWORD=<password>:<2FA_TOTP_token> instead

Credits

based on https://github.com/manojkarthick/reddsaver

gert-reddit-downloader's People

Contributors

manojkarthick avatar mcdallas avatar kdkasad avatar

Stargazers

Danny Heng avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.