251 lines
4.9 KiB
Plaintext
251 lines
4.9 KiB
Plaintext
🧠 PROMPT / ТЗ ДЛЯ AI
|
||
MVP приложения генерации аниме-квиз видео
|
||
ROLE
|
||
|
||
Ты — senior full-stack developer, специализирующийся на:
|
||
|
||
Vue 3
|
||
|
||
Python (FastAPI)
|
||
|
||
FFmpeg / MoviePy
|
||
|
||
генерации видео
|
||
|
||
Твоя задача — сгенерировать код MVP, а не архитектурные рассуждения.
|
||
|
||
🎯 Цель проекта
|
||
|
||
Создать MVP веб-приложения, которое автоматически генерирует видео формата
|
||
«Guess the Anime Opening» для:
|
||
|
||
YouTube (полноценные видео)
|
||
|
||
Shorts / TikTok (вертикальные)
|
||
|
||
Без ручного видеомонтажа.
|
||
|
||
🚫 Ограничения MVP
|
||
|
||
НЕ реализовывать:
|
||
|
||
авторизацию
|
||
|
||
оплату
|
||
|
||
аналитику
|
||
|
||
AI-анализ сцен
|
||
|
||
мобильное приложение
|
||
|
||
Фокус — рабочая генерация видео.
|
||
|
||
🧩 Основной функционал
|
||
1. Два режима генерации (ОБЯЗАТЕЛЬНО)
|
||
🔹 Mode 1 — Shorts / TikTok
|
||
|
||
Формат: 9:16
|
||
|
||
Длительность: 30–60 сек
|
||
|
||
Быстрый темп
|
||
|
||
Минимум пауз
|
||
|
||
Крупный текст
|
||
|
||
Подходит для TikTok / YT Shorts
|
||
|
||
🔹 Mode 2 — Full Video (YouTube)
|
||
|
||
Формат: 16:9
|
||
|
||
10–20 вопросов
|
||
|
||
Более медленный тайминг
|
||
|
||
Финальный экран
|
||
|
||
Подходит для обычного YouTube
|
||
|
||
⚠️ Код должен быть расширяемым для будущих форматов.
|
||
|
||
🎞️ Структура видео (строго)
|
||
🔹 Один вопрос = 2 сцены
|
||
🟦 Сцена 1 — ВОПРОС
|
||
|
||
❗ ВАЖНО:
|
||
❌ НЕ использовать чёрный / статичный фон
|
||
|
||
✅ Использовать зацикленный видео-фон:
|
||
|
||
абстрактная анимация
|
||
|
||
motion graphics
|
||
|
||
динамический looping video
|
||
|
||
без авторских персонажей
|
||
|
||
Пример:
|
||
|
||
частицы
|
||
|
||
неоновые линии
|
||
|
||
анимированный градиент
|
||
|
||
glow-эффекты
|
||
|
||
Элементы сцены:
|
||
|
||
Текст:
|
||
“Guess the Anime Opening”
|
||
|
||
Таймер обратного отсчёта (анимация)
|
||
|
||
Аудио фрагмент опенинга (1 / 3 / 5 сек)
|
||
|
||
Длительность:
|
||
длительность аудио + 1 сек
|
||
|
||
🟩 Сцена 2 — ОТВЕТ
|
||
|
||
Текст:
|
||
Anime: <название>
|
||
|
||
Постер аниме (если есть)
|
||
|
||
Звук подтверждения (optional)
|
||
|
||
Длительность: 2 сек
|
||
|
||
🟨 Финальный экран (только Full Video)
|
||
|
||
Текст:
|
||
“How many did you guess?”
|
||
|
||
CTA:
|
||
“Subscribe for more anime quizzes”
|
||
|
||
Длительность: 3 сек
|
||
|
||
🎶 Контент
|
||
Аудио
|
||
|
||
MP3 файлы опенингов
|
||
|
||
Обрезка по таймкоду
|
||
|
||
Нормализация громкости
|
||
|
||
Видео-фоны
|
||
|
||
Набор looping mp4 (5–10 сек)
|
||
|
||
Зацикливание через FFmpeg
|
||
|
||
🗂️ Формат данных
|
||
{
|
||
"anime": "Attack on Titan",
|
||
"opening_file": "aot_op1.mp3",
|
||
"start_time": 32,
|
||
"difficulty": "easy",
|
||
"poster": "aot.jpg"
|
||
}
|
||
|
||
⚙️ Технические требования
|
||
Backend
|
||
|
||
Python
|
||
|
||
FastAPI
|
||
|
||
FFmpeg
|
||
|
||
MoviePy
|
||
|
||
Функции:
|
||
|
||
выбор контента
|
||
|
||
сбор таймингов
|
||
|
||
генерация видео
|
||
|
||
возврат MP4
|
||
|
||
Frontend
|
||
|
||
❗ Использовать Vue 3, НЕ React
|
||
|
||
Почему:
|
||
|
||
не мешает масштабированию
|
||
|
||
допускает SSR / SPA
|
||
|
||
легко расширяется
|
||
|
||
Функции:
|
||
|
||
форма параметров
|
||
|
||
выбор режима (Shorts / Full)
|
||
|
||
кнопка генерации
|
||
|
||
индикатор прогресса
|
||
|
||
кнопка скачивания
|
||
|
||
📐 Разрешения видео
|
||
Режим Разрешение
|
||
Shorts 1080×1920
|
||
Full 1920×1080
|
||
⏱️ Производительность
|
||
|
||
≤ 3 мин генерации (10 вопросов)
|
||
|
||
1 видео за раз
|
||
|
||
FFmpeg обязателен
|
||
|
||
❗ Обработка ошибок
|
||
|
||
нехватка контента
|
||
|
||
падение FFmpeg
|
||
|
||
неверные параметры
|
||
|
||
Возвращать понятные ошибки.
|
||
|
||
📦 Результат
|
||
|
||
AI должен:
|
||
|
||
Сгенерировать backend-код
|
||
|
||
Сгенерировать Vue frontend
|
||
|
||
Показать пример FFmpeg пайплайна
|
||
|
||
Объяснить, как запустить MVP локально
|
||
|
||
🧪 Acceptance Criteria
|
||
|
||
Видео корректно собирается
|
||
|
||
Аудио синхронизировано
|
||
|
||
Видео подходит для YouTube / TikTok
|
||
|
||
Код читаемый и расширяемый
|
||
|
||
⚠️ ВАЖНО
|
||
|
||
Не писать абстрактные советы.
|
||
Не обсуждать «в теории».
|
||
Писать конкретный код и структуру проекта. |