Fotobot RS is a high-performance Telegram bot focused on lightning-fast EXIF extraction from uploaded photos. ⚡ Instead of downloading entire media files, it only streams the header bytes needed to decode metadata, keeping bandwidth usage low and response times snappy.
- Header-only downloads: Grabs just the crucial portion of each photo to read EXIF data without pulling the whole file.
- 20 MB limit workaround: Uses a native MTProto client to bypass Telegram's standard 20 MB download cap for bots.
- Rust-powered performance: Built with Rust for reliability, safety, and top-notch speed under load.
- The bot listens for photo messages in Telegram chats.
- It opens the file using MTProto, streaming only the initial bytes that carry EXIF information.
- Metadata is parsed and returned to the chat almost instantly.
cargo buildto compile the projectcargo runto launch the bot (ensure your Telegram API credentials and bot token are configured)
- Copy
docker-compose.yaml.exampletodocker-compose.yamland adjust theenvironmentvalues forBOT_TOKEN,TG_ID, andTG_HASH. - Either publish the image (see workflow above) or build locally with
docker compose buildto populateFOTOBOT_IMAGE. - Launch the stack with
docker compose up -dand verify logs viadocker compose logs -f. - Persisted session data lives in the managed
fotobot_sessionsvolume; remove it withdocker volume rm fotobot_sessionsif you need a clean login.
- Copy
fotobot.service.exampleto/etc/systemd/system/fotobot.serviceand adjustUser,Group,WorkingDirectory, andExecStartto match your setup. - Replace the placeholder values in the
Environment=lines with the realBOT_TOKEN,TG_ID, andTG_HASH. - Build a release binary with
cargo build --releaseand place the resulting executable somewhere on your host, e.g./usr/local/bin/fotobot_rs. - Reload systemd and start the service with:
sudo systemctl daemon-reloadsudo systemctl enable --now fotobot
- Check the status and logs via
sudo systemctl status fotobotandjournalctl -u fotobot -f.
This project is inspired by M0gician/fotobot, bringing similar ideas to Rust with extra performance tuning.
This project is primarily built by an AI agent. Review the code and configuration to ensure it meets your production requirements before deploying.
Issues and pull requests are welcome! Share ideas, report bugs, or tune performance further—every contribution helps this bot shine.