You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,18 +17,18 @@
17
17
18
18
</div>
19
19
20
-
**TelegramMediaRelayBot** is a self-hosted Telegram bot that automates downloading media from 1000+ platforms (via [yt-dlp](https://github.com/yt-dlp/yt-dlp/tree/master) and gallery-dl) and forwards it to your contacts. It eliminates manual downloads, simplifies media sharing across platforms users don't have, and gives full control over privacy by running entirely on your infrastructure.
20
+
**TelegramMediaRelayBot** is a self-hosted Telegram bot that downloads media from 1000+ platforms (via [yt-dlp](https://github.com/yt-dlp/yt-dlp/tree/master) and gallery-dl) and forwards it to your contacts. You send a link, it fetches the media and passes it to the people you pick. Because it runs on your own machine, the files and your contact list stay off third-party servers, which also lets you share from platforms your contacts don't use.
21
21
22
22
---
23
23
24
24
## Key Features
25
25
26
-
-**Multi-platform downloads**: yt-dlp for video, gallery-dl for galleries — tried as a fallback chain. Full list of [supported sites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md).
27
-
-**Contact forwarding**: managed contact list inside the bot — downloaded media is forwarded automatically, with per-contact and per-link privacy rules.
28
-
-**Large files up to 2 GB**: optional local Telegram Bot API server; media is streamed from disk instead of buffered in memory.
26
+
-**Multi-platform downloads**: yt-dlp for video, gallery-dl for galleries, run as a fallback chain. Full list of [supported sites](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md).
27
+
-**Contact forwarding**: a contact list lives inside the bot, and downloaded media is forwarded automatically, with per-contact and per-link privacy rules.
28
+
-**Large files up to 2 GB**: with an optional local Telegram Bot API server, media is streamed from disk instead of buffered in memory.
29
29
-**Resumable queue**: pending downloads are persisted, so a crash or reboot never loses a request.
30
-
-**Flexible proxying**: HTTP / SOCKS5 / Tor, with per-site rules — route some domains through a proxy and others directly.
31
-
-**Self-hosted**: full control over your data and privacy. No third-party services.
30
+
-**Proxy support**: HTTP, SOCKS5, or Tor, with per-site rules that send some domains through a proxy and others directly.
31
+
-**Self-hosted**: the bot runs entirely on your own infrastructure, with no third-party services in the loop.
32
32
33
33
## Tech Stack
34
34
@@ -45,9 +45,9 @@
45
45
## Architecture Highlights
46
46
47
47
-**Self-healing long polling**: the update loop runs as a hosted service that logs and skips a failing update and restarts on error, so the bot can't silently stop responding.
48
-
-**Modular download backends**: yt-dlp and gallery-dl sit behind one `IMediaDownloader` interface and run as an ordered fallback chain — adding a backend is one class.
48
+
-**Modular download backends**: yt-dlp and gallery-dl sit behind one `IMediaDownloader` interface and run as an ordered fallback chain, so adding a backend means adding one class.
49
49
-**Per-host proxy routing**: named proxies resolved per download host from typed, startup-validated configuration.
50
-
-**2 GB delivery path**: with a local Bot API server the bot sends media by file path off a shared volume — no HTTP upload, no memory blow-up.
50
+
-**2 GB delivery path**: with a local Bot API server the bot sends media by file path off a shared volume, so it never uploads the file over HTTP or holds it in memory.
51
51
-**Persistent download queue** with bounded concurrency; jobs are resumed after a restart.
52
52
-**Repository-pattern data layer** over SQLite with schema migrations.
53
53
@@ -67,23 +67,23 @@ Active development plans are tracked on the latest [release page](https://github
67
67
-*(Under consideration)* Text formatting support, in-bot administrative functions.
68
68
- General improvements and fixes.
69
69
70
-
[CHANGELOG.md](CHANGELOG.md) — full history of changes.
70
+
[CHANGELOG.md](CHANGELOG.md): full history of changes.
71
71
72
72
## Logging
73
73
74
74
The bot logs all actions to console; file logging is on the roadmap. Logging level is configurable via the settings file.
75
75
76
76
## Origin
77
77
78
-
The project started from my girlfriend's complaints about manually downloading TikTok videos for me — I don't use the platform myself. What began as a one-off automation evolved into a full media-relay ecosystem: multi-user, multi-platform, plugin-extensible. The mission stayed simple — give people a self-hosted way to share content across platforms without surrendering their data to any single service.
78
+
The project started from my girlfriend's complaints about manually downloading TikTok videos for me, since I don't use the platform myself. What began as a one-off automation grew into a full media-relay ecosystem: multi-user, multi-platform, plugin-extensible. The mission stayed simple: give people a self-hosted way to share content across platforms without surrendering their data to any single service.
79
79
80
80
## License
81
81
82
82
This project is licensed under **AGPL-3.0**. See [LICENSE](LICENSE) for details.
83
83
84
84
## Feedback
85
85
86
-
If you have questions, suggestions, or found a bug — please open an [issue](https://github.com/ZenonEl/TelegramMediaRelayBot/issues).
86
+
If you have questions, suggestions, or found a bug, please open an [issue](https://github.com/ZenonEl/TelegramMediaRelayBot/issues).
0 commit comments