bdfr
Display BDF fonts
TLDR
Download videos/images from the specified links to URL or ID's of posts
Download the maximum possible number (roughly 1000) of videos/images from a specified user
Download submission data (text, upvotes, comments, etc.) limited to 10 submissions for each subreddit (30 total)
Download videos/images from the subreddit r/Python sorted by top (default is hot) using time filter all, limited to 10 submissions
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
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
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)


