LinuxCommandLibrary

bdfr

Display BDF fonts

TLDR

Download videos/images from the specified links to URL or ID's of posts

$ bdfr download [path/to/output_directory] [[-l|--link]] [post_url]
copy

Download the maximum possible number (roughly 1000) of videos/images from a specified user
$ bdfr download [path/to/output_directory] [[-u|--user]] [reddit_user] --submitted
copy

Download submission data (text, upvotes, comments, etc.) limited to 10 submissions for each subreddit (30 total)
$ bdfr archive [path/to/output_directory] [[-s|--subreddit]] '[Python, all, mindustry]' [[-L|--limit]] 10
copy

Download videos/images from the subreddit r/Python sorted by top (default is hot) using time filter all, limited to 10 submissions
$ bdfr download [path/to/output_directory] [[-s|--subreddit]] Python [[-S|--sort]] top [[-t|--time]] all [[-L|--limit]] 10
copy

Download the maximum possible number of both submission data and videos/images from subreddit r/Python skipping over submissions with mp4 or gif file extensions and creating hard links for duplicate files
$ bdfr clone [path/to/output_directory] [[-s|--subreddit]] Python --skip mp4 --skip gif --make-hard-links
copy

Download saved posts of the authenticated user, naming each file according to a specified format. Avoid downloading duplicates and posts already present in the output directory
$ bdfr download [path/to/output_directory] [[-u|--user]] me --saved --authenticate --file-scheme '[ {POSTID}_{TITLE}_{UPVOTES} ]' --no-dupes --search-existing
copy

SYNOPSIS

bdfr [OPTIONS] SUBREDDIT|URL [SUBREDDIT|URL ...]

PARAMETERS

-h, --help
    Show help message and exit

--allow-insecure
    Allow insecure download sources (use at own risk)

--allow-unsafe
    Allow unsafe download sources (use at own risk)

-c COOKIES, --cookies COOKIES
    Netscape cookies file for authentication

--delay DELAY
    Seconds between requests (default: 1.0)

-D, --flatten
    Flatten output to single directory

-f FILTER, --filter FILTER
    Path to post/media filter file

--ignore-errors
    Continue despite download errors

-l LIMIT, --limit LIMIT
    Max posts to download per subreddit

--no-bar
    Disable progress bar

--no-duplicates
    Skip already downloaded files

-o OUTPUT, --output OUTPUT
    Output directory (default: ./output)

--parallel PARALLEL
    Parallel downloads (default: 5)

-p PASSWORD, --password PASSWORD
    Reddit account password

--site-config SITE_CONFIG
    Custom site configuration file

--subreddit-cache CACHE
    Subreddit cache file path

-t, --threads THREADS
    Number of fetch threads (default: 1)

-u USERNAME, --username USERNAME
    Reddit account username

--version
    Show version and exit

--write-info-json
    Save post info as JSON files

--write-subs
    Download embedded subtitles

DESCRIPTION

bdfr (Batch Download From Reddit) is a powerful command-line utility for downloading images, videos, GIFs, albums, and other media from Reddit subreddits, user profiles, or specific posts. It fetches posts via Reddit's API, handles pagination automatically, and supports filtering by domain, file type, score, or custom rules. Media is organized into directories by subreddit, post ID, or flattened structure.

Key capabilities include parallel downloads for speed, duplicate skipping, progress bars, rate limiting to avoid bans, and resuming interrupted downloads. It extracts content from supported hosts like Imgur, Gfycat, and Reddit uploads. Authentication via username/password, cookies, or OAuth enables private subreddit access. Ideal for archiving content offline while respecting Reddit's terms.

Developed in Python, it's lightweight, extensible via filter/site config files, and actively maintained on GitHub.

CAVEATS

Heavy usage may require Reddit OAuth app credentials to avoid rate limits or bans. Not all Reddit changes are instantly supported; check GitHub issues. Python 3.7+ required. Respect content creators' copyrights and Reddit ToS.

INSTALLATION

pip install bdfr
Or from source: pip install git+https://github.com/aliparlakci/bdfr.git

EXAMPLE

bdfr -o ~/Downloads -l 50 -t 4 datascience
Downloads top 50 posts from r/datascience with 4 threads.

AUTHENTICATION

Use -u USER -p PASS or --cookies file.txt for private subs. OAuth recommended for high volume.

HISTORY

Originated as reddit_video_downloader by bootlegret in 2017, forked and renamed bdfr by aliparlakci around 2020. Evolved from video-only to full media support, adding API integration, filters, and parallelism amid Reddit API changes.

SEE ALSO

gallery-dl(1), yt-dlp(1), curl(1)

Copied to clipboard