Как я создал своего Telegram бота для скачивания видео по ссылке со всех социальных сетей используя нейросеть. С какими сложностями пришлось столкнуться и сталкиваюсь до сих пор.
Мне 18 лет и я создал своего телеграмм бота для скачивания видео по ссылке. Разработка заняла 3 месяца + проектирование. За программирование не очень понимаю, не могу писать сам код с нуля, но дополнить и понять за что отвечает данный файл, хендлер я в состоянии.
Мой бот почти полностью написан на ЯП Python, окружение Docker, базу данных выбрал я функциональную PostgreSQL, кэширование и быструю отправку уже скачанных видео (для экономии ресурсов еле живого сервера) выполняет Redis. Собственной инфраструктуры пока что нету, пользуюсь сторонними сервисами - cobalt для инстаграма, рутуба, вк и прочих поддерживаемых платформ cobalt'ом, остальное, если не получилось скачать, скачивает библиотека yt-dlp (работает локально на моем сервере и кушает мое железо) с использованием склейки ffmpeg, эта библиотека также скачивает YouTube.
Большой проблемой для меня являлось и является сейчас это обеспечение стабильного скачивание видео ютуба и поддерживание связи с ботом. Попытаюсь объяснить простым языком: ютуб постоянно меняет регламенты безопасности и антибот систему, новые капчи и тому подобное, yt-dlp работает по принципу "Притворись человеком и дай прямую ссылку на видео, чтобы скачать", в кошение под настоящего юзера а не бота входит активная сессия куки, не дата - центровый айпи адрес, браузерные настройки и так далее, и просто представьте каково каждый день подстраиваться под новую систему защиты ютуба, менять куки и ротировать адреса - не камельфо. Вот почему многие боты или сайты просят вас авторизироваться или купить подписку, чтобы скачивать ютуб, я же пошел немного иначе - я автоматизировал все процессы с помощью ротации уже существующего пула ipv6 адресов на сервере подсети 64 (их в этой подсети около 18 квинтиллионов если не ошибаюсь, это больше миллиардов в несколько десятков раз), автоматическую подмену куки - файлов (активной сессии ютуб) и настройку браузера (классная вещь для противостояния с антифрод системой). Все эти проблемы с ютуб локально решились с этими подходами (помогли знания из колледжа), есть еще некоторые проблемы с ютуб - жрет оперативную память и процессор, во время парсинга данных о видео процессор может умирать если библиотека yt-dlp не настроена в коде, но это уже мелочи.
Расскажу про существующую и тревожащую проблему меня и в эту же минуту - сервер и организация сетевого маршрута до дата - центров телеграмма и обратно.Мой бот поддерживает отправку видео до 2 гигабайт благодаря локальному Telegram API который позволяет это делать, есть вариант проще, но он сильно урезает возможности именно такого бота как у меня, он начнет ограничиваться лишь 20 мегабайтами отправленного видео но и правила куда проще. Проблема в том, что Роскомнадзор блокирует запросы на уровне провайдера до серверов телеграмма с России, и это очень проблематично, остается только вшивать VPN в роутер, но этого делать не хотелось, т.к в квартире нахожусь не один. Ставить туннели, прокси в конфигурации я уже пытался, смысла нету - все блокируется на уровне провайдера. Я нашел единственный для меня способ обойти блокировки - арендовать зарубежный виртуальный сервер, как только я это сделал, мой бот ожил и начал отвечать и получать ответы от серверов телеграмма, за это и платить приходится очень дорого - бот сейчас стоит на сервере с хардами 4 озу, 2 ядра и 60 NVMe за 1200 рублей в месяц в нидерландах.Еще одной проблемой является огромные цены для меня лично как для студента на сервера с зарубежными локациями. Цену выше уже видели и платить за минимальное требование по железу 1200 рублей в месяц - дизморалит.
Расскажу про то, как я дошел до стабильной версии бота и какие инструменты использовал.Моим основным инструментом на первый месяц была нейрооеть Gemeni - именно она заложила нерушимый фундамент на котором сейчас стоит написанный курсором каркас с обшивкой. Настоящей головной болью стал вопрос о том, как в дальнейшем поддерживать архитектуру и инфраструктуру бота с Gemeni и GPT, ведь чтобы грамотно исправлять и дополнять уже существующий код - нужно держать код всегда на ладонях и смотреть на весь код всегда, это как раз то, что браузерные нейронки особо не умеют, мой выбор пал на Cursor с подпиской Pro, используя там Claude и Grok я довел свой проект до совершенства и открытого тестирования.
Сейчас бот Snap Save активно тестируется мною, к сожалению только мною, т.к юзеров в нем пока что очень мало, ведь проект запустился совсем недавно - 2 дня назад, я ищу ошибки, исправляю их, внедряю что - то новое для меня и для пользователей, например работа бота абсолютно везде, и в чатах и в каналах, и в inline режиме - вот моя рутина, рутина 18 летнего студента.
Для меня будет огромным счастьем, если вы оставите комментарий с оценкой бота и целевыми советами!