The Jerusalem PostStarlink slowed, Ukraine’s drones stalled: The private power behind a modern warPunchKaduna debunks N2.3tn APC rally spending claim, says letter fakeInquirerPDEA seizes P6.8M ‘shabu’ in Zamboanga City buy-bustESPNNHL Power Rankings: Fantasy hockey pickups for all 32 teamsInquirer EntertainmentMeghan Markle ‘distressed’ over father’s alleged child abuse images found in PH한겨레김정은, 단둥서 중국 권력서열 4위 만나…“신압록강대교까지 배웅 받아”Screen RantAvengers: Doomsday & Secret Wars Get Major Update From Legendary Marvel Comics WriterZDF heuteEntdecken Sie das ZDF-NachrichtenstudioCollider'MobLand' Star Reacts To That Intense Season 2 Pierce Brosnan Dinner SceneSCMP ChinaUkraine’s Starlink woes should be a wake-up call for Taiwan, analysts sayPopular ScienceHow to turn your smartphone into a mobile video editing suiteRai NewsTG1 Motori del 24/10/2026
The Daily Newsstand · Free, Always
Saturday, October 24, 2026

Как я засунул Качалку в Telegram-бота: файлы до 2 ГБ вместо 50 МБ и защита от спамеров

Translate

Недавно писал про Качалку — бесплатную программу, которая скачивает видео с YouTube, TikTok, Instagram и VK. Друзья спросили: «а можно без установки, прямо в телеге?» Теперь можно: @kachalka_videobot. Без рекламы, без «подпишитесь на 5 каналов спонсоров». Расскажу, на какие грабли наступил.

Стена №1: 50 МБ

Обычный бот через api.telegram.org может отправить файл максимум 50 МБ. Для минутного TikTok хватает, для 10-минутного ролика с YouTube в 1080p — нет.

Первое решение — подбирать качество: сервер перебирает 1080 → 720 → 480 → 360 и берёт самое чёткое, что влезает в 47 МБ. Не влезает ничего — бот присылает ссылку на скачивание.

Работает, но хотелось честных 1080p.

Решение: свой сервер Bot API

У Telegram есть открытый telegram-bot-api. Если запустить его у себя с флагом --local, лимит на отправку становится 2000 МБ, а файл можно отдать прямо с диска, без загрузки по сети.

Собирается из исходников за 10–15 минут. Дальше:

  1. Нужны api_id и api_hash с my.telegram.org.

  2. Бот делает logOut у облачного API (вернуться назад можно только через 10 минут).

  3. Бот теперь стучится на 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.

Если поделитесь, как боретесь со спамом в своих ботах, — буду рад почитать в комментариях.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.