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
|
|||
|
|
|
|||
|
|
Код читаемый и расширяемый
|
|||
|
|
|
|||
|
|
⚠️ ВАЖНО
|
|||
|
|
|
|||
|
|
Не писать абстрактные советы.
|
|||
|
|
Не обсуждать «в теории».
|
|||
|
|
Писать конкретный код и структуру проекта.
|