Задача:
Заказчику требовалось регулярно и без ручной работы публиковать пачки видео сразу на несколько каналов RuTube — с заданным названием, описанием, категорией и обложкой, включая крупные файлы (свыше 1 ГБ), которые студия RuTube не всегда принимает штатно.
Что сделано:
- инструмент командной строки на Python, который ведёт себя как реальный пользователь в браузере (Playwright): вход, загрузка файла, заполнение формы, публикация, замена обложки, удаление;
- автоматическое прохождение капчи и антибот-проверок при входе;
- для больших файлов — отдельный быстрый путь напрямую через API RuTube (протокол TUS), в разы быстрее браузерной загрузки и без ограничений по оперативной памяти;
- параллельная публикация сразу на несколько каналов, у каждого — своя сессия и свой прокси;
- ретраи и логирование на каждом шаге, чтобы сбой сети не «терял» обложку или публикацию.
Результат:
- итоговая приёмка — 30 из 30 видео опубликовано на 2 реальных каналах без единой ручной правки: обложки совпадают побайтово, описания полные, публикация корректная;
- подтверждена сквозная работа с видео без перекодирования (H.264 и AV1, mp4 любого размера);
- заказчик развернул инструмент на своём сервере и использует его в продакшене.
Стек: Python, Playwright, RuTube API (TUS upload), asyncio, systemd / деплой на VPS.