A telegram bot to download the reddit posts.
- Send posts as text in telegram
- Download and send photos in
i.redd.it
- Download and send GIFs
- Download videos on
v.redd.it
and merge the audio with them using FFmpeg - Download galleries
- Choose the quality of photos or videos (except galleries, always the best resolution is used in them)
- Download comments
- Limit the users which can use it
- Send deleted posts
- Send polls
- Send text posts with more than 4096 characters or complex markdown (like tables)
- Upload files that are larger than 50MB
- Download any videos or photos that are not hosted on
x.redd.it
(for example youtube)
- imgur (gifs and pictures)
- gfycat (Note that some of them may not work because they are not hosted on reddit. Also, they are soundless)
- streamable
- redgifs
To start, please at first install FFmpeg in your path. On Ubuntu, apt install ffmpeg
is
enough.
Then download and build this project:
git clone https://github.com/HirbodBehnam/RedditDownloaderBot
cd RedditDownloaderBot
go build ./cmd/RedditDownloaderBot/
To use this bot, you need to have a registered Reddit application. To do so, you can
use this guide by Reddit itself.
Choose Script app
as application type. Doing so, will give you two tokens: A client id and a client secret. (The
client id is the one personal use script
text on top left)
For running, you have to set the environmental variables like this:
export CLIENT_ID=p-jcoLKBynTLew
export CLIENT_SECRET=gko_LXELoV07ZBNUXrvWZfzE3aI
export BOT_TOKEN=1234567:4TT8bAc8GHUspu3ERYn-KGcvsvGB9u_n4ddy
./RedditDownloaderBot
If you want, you can run this bot using docker compose. To do so, edit docker-compose.yml
and change the environment
variables needed for bot. Then use docker compose up
to run the bot.
You can configure the bot to allow only a certain users to access it. This is useful for deploying private bots.
To do so, you need the user ids of the accounts which you want to whitelist. You can get the user id
from @myidbot.
After create an environment variable called ALLOWED_USERS
and set its value to comma seperated user ids. For example:
export ALLOWED_USERS=1,2,3
You can forbid the bot to download NSFW posts. To do so, set this environment variable:
export DENY_NSFW=true