Недавно писал про Качалку — бесплатную программу, которая скачивает видео с YouTube, TikTok, Instagram и VK. Друзья спросили: «а можно без установки, прямо в телеге?» Теперь можно: @kachalka_videobot. Без рекламы, без «подпишитесь на 5 каналов спонсоров». Расскажу, на какие грабли наступил.
Стена № 1: 50 МБ
Обычный бот через api.telegram.org может отправить файл максимум 50 МБ. Для минутного TikTok хватает, для 10-минутного ролика с YouTube в 1080 p — нет.
Первое решение — подбирать качество: сервер перебирает 1080 → 720 → 480 → 360 и берёт самое чёткое, что влезает в 47 МБ. Не влезает ничего — бот присылает ссылку на скачивание.
Работает, но хотелось честных 1080 p.
Решение: свой сервер Bot API
У Telegram есть открытый telegram‑bot‑api. Если запустить его у себя с флагом --local, лимит на отправку становится 2000 МБ, а файл можно отдать прямо с диска, без загрузки по сети.
Собирается из исходников за 10–15 минут. Дальше:
Нужны
api_idиapi_hashс my.telegram.org.Бот делает
logOutу облачного API (вернуться назад можно только через 10 минут).Бот теперь стучится на
http://127.0.0.1:8081вместо api.telegram.org.
Грабли с ключами. my.telegram.org у меня не открывался: с VPN — «Sorry, too many tries», без VPN — сайт заблокирован у провайдера. Помогла вот эта статья на Хабре: прописать в hosts рабочий адрес my.telegram.org и зайти без VPN. Спасибо автору — без неё бот так и сидел бы на 50 МБ.
Грабли с путями. После переключения ни одно видео не ушло: «Telegram не принял файл». Оказалось, локальный сервер принимает файл с диска только как file:///путь/к/файлу. Голый /путь он считает ссылкой и молча ломается. Мой поддельный Telegram для тестов принимал что угодно, поэтому баг всплыл только в бою. В Python лечится одной строкой: Path(...).as_uri().
Итог: в личке видео до ~1,9 ГБ в оригинальном качестве. В группах по‑прежнему держу до 47 МБ, чтобы не заваливать чат.
Бонус: повторы мгновенно
Telegram выдаёт каждому отправленному файлу file_id. Я храню пары «ссылка → file_id», и если ту же ссылку кидает второй человек, бот ничего не качает, а пересылает уже готовое за долю секунды. Популярные TikTok'и улетают мгновенно.
Стена № 2: спамеры
Бесплатный бот и один сервер — идеальная мишень. Защита в несколько слоёв:
в боте: 3 ссылки разом, потом не чаще одной в 20 секунд; 25 в час, 100 и 3 ГБ в сутки на человека; очередь чата — 3, всего — 15;
флуд: больше 20 сообщений в минуту — бот перестаёт отвечать на 10 минут, потом на час, потом на сутки. Таким людям он пишет, что они отправлены в Азкабан;
на сервере: с одного адреса не больше 3 загрузок разом, общая очередь 25, дальше честное «сервер занят»; прямые эфиры и ссылки на внутренние адреса не качаем, одна загрузка не дольше 30 минут;
снаружи: бесплатное правило Rate limiting в Cloudflare: 40 запросов за 10 секунд с IP — блок;
изоляция: бот и качалка работают под разными пользователями systemd в «клетке»: качалка не видит токен бота, бот не видит чужие файлы.
Ещё приятная мелочь — очередь, которую видно: «Ты в очереди: впереди 2, это примерно полминуты». Люди спокойно ждут, когда понимают, сколько.
Как вообще качается YouTube осенью 2026
Частый вопрос в комментариях к прошлой статье. Коротко: yt‑dlp + deno, yt‑dlp обновляется сам несколько раз в день с проверкой и откатом, а YouTube идёт через сервер с «чистым» IPv4 — с адресов датацентров он требует войти в аккаунт. Без кук. IPv6 нашего второго сервера YouTube забанил целой подсетью, так что yt‑dlp ходит только по IPv4 через SOCKS4. Иногда «not a bot» всё равно прилетает — это гонка вооружений.
Что ещё умеет бот
кнопка «Только звук — MP3» под каждым видео;
работает в группах: Shorts и TikTok качает сам, остальное — по просьбе;
встроенный режим: пишешь в любом чате
@kachalka_videobot ссылка— и видео отправляется прямо туда;фото и карусели из Instagram и TikTok — альбомом.
Попробовать: @kachalka_videobot. Программа для компьютера и исходники — github.com/kozliq/kachalka, сайт — kachalka.flownote.cc.
Если поделитесь, как боретесь со спамом в своих ботах, — буду рад почитать в комментариях.
solus_factor
А разрешение видео вручную нельзя выбирать? Без этого очень неудобно.
Dreams_and_magic
Посмотрите, Вы вот так хотите? @save4boxbot
kozliq Автор
Нет бро) Он хочет скачать больше 100мб, в вашем боте так нельзя, но вы уже можете добавить это, использовав мою статью, в таких ситуациях лучше сказать: спасибо, нежели в тупую пиарить, я только За продвижение бесплатных ресурсов, но как по мне не этично.
Dreams_and_magic
У меня бот работал и до вашей статьи:) И он более сложный, там не просто обёртка над yt-dlp . Там у юзера есть выбор размеров и формата, и много неочевидных штук "под капотом".
Ограничение в 100Мб поставлено специально, так как смысла скачивать в телеграм видео в 2Гб не вижу.
Это бот без рекламы, пиарить там нечего:)
kozliq Автор
Нет проблем, все когда то было, появляется новое, вопрос намного глубже чем вы думаете, мой бот работает в чатах удобно через ссылку, с командой в чате, конфах, много видео скидывают, обсуждают, да что говорить, тик токи банально 50мб весят, такие времена, мое мнение субъективно, но полезнее было бы просто сделать как описано в статье). Кстати, чем обусловлена более "сложный" бот, на что это влияет, расскажите как устроена ваша защита и сколько слоев. Вы правда заинтересовали меня.
Truespb
Ак оикуда появился предел в 2 гига на файл?
Вроде как х86 уже позволяли 4 гига.
Ну и как делить на собираемые куски всякие ютубовские ролики на 12-18-60 часов в разрешении 1080р с потоком в пару мегабайт/секунду?
kozliq Автор
Приложение скачать.
kozliq Автор
Поясню: 2 ГБ — это предел Telegram для ботов. 4 ГБ можно отправлять только людям с Premium, ботам нельзя. Поэтому длинные ролики лучше качать через приложение на компьютер, там ограничений нет. 12 часов в 1080p — это примерно 15–25 ГБ, приходит одним файлом, резать ничего не надо, лишь бы хватило места на диске. Ссылка: kachalka.flownote.cc
solus_factor
Что-то вроде этого, только у него запутанный выбор, не очень понятно. Например почему две кнопки 480p, одна зеленая, другая синяя, одна 20 Мб, другая 21...
Я до этого пользовался @SaveYoutubeBot - там можно выбрать разрешение. Довольно удобно вроде сделано. Но он не все видео умеет скачивать.
kozliq Автор
Бот работает, за сегодня скачал кучу видео. Кинь ссылку, которую не смог скачать, — гляну, в чём дело. Разрешение бот выбирает сам: максимальное, которое влезает в Telegram.