jw_social_downloader
Бот · Продукт
Задача
Это собственный продукт, а не клиентский проект: публичный бот, которым пользуются незнакомые люди и жмут на все кнопки подряд. Значит, он должен выдерживать нагрузку, капризы пяти платформ сразу и лимиты Telegram — и при этом объяснять человеку, что пошло не так, без сырого traceback.
Что сделал
Написал асинхронный бот на aiogram 3 с фримиум-моделью: три бесплатные загрузки, дальше подписка на 30 дней, оплата в USDT, донгах или батах. Под капотом — подбор форматов под каждую платформу отдельно, `gallery-dl` как запасной путь там, где `yt-dlp` принципиально не справляется, семафор на три одновременные загрузки и анти-флуд мидлварь.
Результат
Бот живой: открываете ссылку и присылаете адрес поста — он вернёт медиа. Есть админка с выдачей подписки вручную, понятные сообщения об ошибках вместо трейсбеков и запуск одной командой через docker-compose.