GithubHelp home page GithubHelp logo

docker-bdfr's Introduction

docker-bdfr (bulk-downloader-for-reddit)

Docker version of bulk downloader for reddit. Currently tracking the development branch.

Features

  • Configurable: runs python3 -m bdfr download using the --opts option to allow for configuring bdfr via a yaml file or command line args.
  • Only on the development branch as of now. See Options and their example yaml.
  • Optional post-download actions to sanitize filenames, remove or convert duplicates to symlinks.
  • Optional delay (random or specific) before running BDFR. Useful with multiple BDFR containers as prevents all containers downloading at the same time.
  • Configurable period to wait between multiple BDFR runs, incl. no-wait, where container will exit gracefully after a single run.

Environment Variables

VARIABLE DESCRIPTION DEFAULT
BDFR_POSTLIMIT Limit of number of submissions retrieve 10
BDFR_OFFSET Delay before running BDFR. Useful with multiple BDFR containers. -1=No Delay, 0=Random (1-24hrs) -1
BDFR_WAIT Time to wait (in seconds) between BDFR runs. 0 = Don't wait, just exit. Equates to a single-run 300
BDFR_AUTH Run as authenticated or unauthenticated Reddit session [true/false] false
BDFR_USER The user to run-as when running an authenticated session
BDFR_VERBOSE Verbosity of BDFR logging. 0=INFO, 1=DEBUG, 2=FULL 0
BDFR_NODUPES Will not redownload files if they already exist somewhere in the download folder tree [true/false] true
BDFR_SORT Downloads based on Reddit sort type. Options: controversial, hot, new, rising, top new
BDFR_DETOX Whether to run detox to clean-up filenames [true/false] false
BDFR_RDFIND Whether to run rdfind to replace duplicate files [true/false] false
BDFR_RDFIND_OPTS Use these options when running rdfind. Default action if empty: convert duplicates to symlinks
BDFR_SYMLINKS Whether to run symlinks to change absolute/messy links to relative [true/false] false

Setup

  1. rename options.yaml.example -> options.yaml
  2. rename default_config.cfg -> config.cfg
  3. modify and put in a directory (ideally a persistent mounted volume)
  4. choose a download directory (ideally a persistent mounted volume)
  5. run docker container:
docker run -d \  
-v /your/config/location:/config \  
-v /your/download/location/downloads \  
-p 7634:7634 \  
-e BDFR_POSTLIMIT=9999 \
-e BDFR_OFFSET=-1 \
-e BDFR_WAIT=300 \
-e BDFR_AUTH=false \
-e BDFR_VERBOSE=0 \
-e BDFR_NODUPES=true \
-e BDFR_SORT=new \
-e BDFR_DETOX=false \
-e BDFR_RDFIND=false \
-e BDFR_SYMLINKS=false \
--name bdfr \
overbyrn/docker-bdfr

docker-bdfr's People

Contributors

overbyrn avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

docker-bdfr's Issues

How do I specify to just grab one users content?

EDIT, fixed first issue entirely which this post was originally!

I'm running your container, with "-d" to keep it running.
Them I'm injecting this command into it.

docker exec -it bdfr python3 -m bdfr download /downloads/USERNAME --filename-restriction-scheme windows -- --user USERNAME --submitted -L 10

It's worked well so far, until I've added the command

"--filename-restriction-scheme"
Which it spits back with

Error: No such option: --filename-restriction-scheme Did you mean --file-scheme?

Is this broken in the core app (not just your container?) - I don't want it outputting files which my windows PC can't see.

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.