Задача: Создать сервис, который автоматически:
1. забирает фильмы/сериалы из источника (надо найти такой)
2. добавляет управляемый преролл 10 секунд,
3. публикует итоговое видео в RuTube и VK Видео,
4. даёт панель управления для настройки рекламы (редко меняется), расписаний и логов.
Основные требования
• Преролл: единый видео/креатив (MP4) длиной 10 с, настраиваемый через админ-панель. Возможность заменить креатив без перегенерации старых роликов. Опция UTM/водяного знака.
• Транскодинг: автоматический ресайз до платформенных профилей (1080p/720p, H.264 + AAC), нормализация громкости, обложка/титл-карт.
• Дедупликация: хеш по содержимому (MD5 + perceptual hash) и защита от повторной публикации.
• Публикация: официальные API RuTube и VK Видео, обработка очередей, ретраи, ограничение rate-limit.
• Метаданные: заголовок, описание, теги, плейлисты/рубрики, приватность. Шаблоны с плейсхолдерами.
• Статистика: статусы загрузок, ссылки на ролики, базовые метрики (просмотры/ER если доступно по API), алерты при фейле.
• Безопасность и комплаенс: лог аудита, хранение токенов в секрет-хранилище, чек-лист прав на контент.
Архитектура (предложение)
• Ingest & Queue: Python/Node микросервис, подписка на источники + постановка задач в Redis/RabbitMQ.
• Преролл-стичинг: FFmpeg (concat + loudnorm, fade in/out по необходимости).
• Хранилище: S3-совместимое (MinIO/Backblaze), Lifecycle-политики.
• Аплоадеры: отдельные воркеры для RuTube и VK Видео (официальные SDK/REST).
• Админ-панель: React (Next.js) + NestJS/FastAPI, роли, токены, аудит.
• Обсервабилити: Prometheus + Grafana, Sentry.
• Инфра: Docker, оркестрация (K8s/nomad) или простая VM с systemd, бэкапы.
Пользовательские сценарии
1. Добавить новый креатив преролла → сохранить → все новые публикации используют его.
2. Положить видео в “Входящие” → сервис автоматически сшивает + публикует по шаблону/расписанию.
3. Изменить описание/UTM-шаблон → применяется к следующим релизам.
4. Посмотреть лог: статус транскодинга, попытки аплоада, итоговые ссылки.
Панель управления (MVP)
• Блок “Реклама”: загрузка преролла (MP4, 10с), UTM-параметры, водяной знак (текст/PNG).
• Шаблоны метаданных: {SERIES} {S01E05} {DATE} {UTM}.
• Источники: список подключённых источников + правила (куда публиковать, в какие плейлисты).
• Логи/Мониторинг: таблица задач, фильтры по статусам, экспорт CSV.
Нефункциональные
• Пропускная способность: ≥ 50 видео/сутки, параллельные задачи с ограничением по CPU/GPU.
• Надёжность: ретраи экспоненциальные, poison-queue, уведомления в Telegram/Email при сбоях.
• Хранение: оригиналы и готовые файлы с TTL-политикой (например, готовые — 30 дней).
Риски и ограничения
• Платформенные лимиты API: нужно учесть rate-limit и модерацию площадок.
Критерии приёмки (MVP)
• Загруженное в “Входящие” видео автоматически получает 10-сек преролл и успешно публикуется в RuTube и VK Видео с корректными метаданными.
• Смена преролла в панели влияет на все новые публикации.
• В логах отражаются статусы каждого шага и итоговые ссылки на ролики.
• При падении аплоада выполняются ≥3 ретрая и отправляется алерт.
Этапы и оценки (грубо)
1. Инфра + панель (аутентификация, источники, шаблоны) — 1–2 нед.
2. FFmpeg-стичинг + профили кодека/битрейта — 3–5 дн.
3. Интеграция RuTube/VK Видео (аплоад, метаданные, плейлисты) — 1–2 нед.
4. Дедуп/хеши + мониторинг/алерты — 3–5 дн.
5. Полировка/QA/документация — 3–5 дн.
Опубликован 28.09.2025 в 12:48 Поднят: 28.09.2025 в 12:48 Последнее изменение: 03.12.2025 в 15:39