---
name: process
description: Автоматический pipeline обработки видео. Транскрибация, перевод, заголовки, описание, обложки — всё до публикации.
---

# Автоматический Pipeline обработки видео

Оркестратор: проводит видео через все этапы от импорта до готовности к публикации.
**Запускает независимые этапы параллельно** через Agent tool для ускорения.

## Использование

```
/process путь/к/видео.mp4
/process  # проверит inbox/ на новые видео
```

## Граф зависимостей

```
import → enhance → transcribe → transcript-critic
                                       │
                    ┌──────────────────┼──────────────────┐
                    ▼                  ▼                  ▼
              ⚡ translate      ⚡ titles             ⚡ teaser
                    │                  │                  │
                    ▼                  ▼                  ▼
             transcript_en.srt   title-critic        teaser.mp4
                                       │
                              ┌────────┴────────┐
                              ▼                 ▼
                        ⚡ describe         ⚡ thumbnail
                              │                 │
                              ▼                 ▼
                       description.md    thumbnail-critic
                              │                 │
                              └────────┬────────┘
                                       ▼
                                   announce → ⏸️ CHECKPOINT

⚡ = параллельный запуск через Agent tool
```

## Выходные файлы субтитров

**ТОЛЬКО 2 файла:** `transcript.srt` и `transcript_en.srt`
**НЕ создавать:** transcript.md, transcript_original.srt, transcript_corrections.md и прочие

## Процесс работы

### 1. Определи видео

Если указан путь — используй его. Иначе проверь `inbox/`. Определи название из имени файла.

### 2. Создай проект (import)

```bash
mkdir -p "projects/{project_id}/thumbnails" "projects/{project_id}/video"
cp "{видео}" "projects/{project_id}/video/"
```

Создай `meta.json` со статусом "processing", `pipeline.current_stage`, `stages_completed: []`.

### 3. Enhance

```bash
source .venv/bin/activate && python scripts/audio_enhance.py "projects/{id}/video/{file}"
```

После этого все этапы используют `{stem}_enhanced.mp4`.

### 4. Transcribe

```bash
source .venv/bin/activate && python scripts/transcribe.py "projects/{id}/video/{stem}_enhanced.mp4" \
    --output "projects/{id}/" --model large-v3-turbo --language ru
```

### 5. Transcript Critic

Прочитай `transcript.srt` + `meta.json`. Исправь ошибки распознавания прямо в файле (названия продуктов, термины). НЕ трогай разговорный стиль. Выведи список исправлений в консоль.

---

### 6. ⚡ ПАРАЛЛЕЛЬНАЯ ФАЗА A

После transcript-critic запусти **3 агента одновременно** через Agent tool в одном сообщении:

#### Агент 1: Translate (youtube-translation)
Переведи `transcript.srt` → `transcript_en.srt`. Естественный перевод, таймкоды без изменений.

#### Агент 2: Titles + Title Critic (youtube-title → youtube-title-critic)
1. Прочитай `channel.md` и `templates/title-prompt.md`. Создай 10 вариантов → `titles.md`
2. Раскритикуй каждый → создай 3-5 улучшенных → выбери лучший → `titles_final.md`
3. Обнови `meta.json`: `title` = выбранный заголовок

#### Агент 3: Teaser (youtube-teaser)
Выбери 8-12 панчевых фраз из `transcript.srt` (2-8 сек каждая). Создай `teaser_segments.json`, нарежь:
```bash
source .venv/bin/activate && python scripts/teaser_cutter.py \
    "projects/{id}/video/{stem}_enhanced.mp4" \
    --segments "projects/{id}/teaser_segments.json" \
    --output "projects/{id}/teaser.mp4" --max-duration 60
```

**Дождись завершения всех 3 агентов перед следующей фазой.**

---

### 7. ⚡ ПАРАЛЛЕЛЬНАЯ ФАЗА B

После получения `titles_final.md` запусти **2 агента одновременно**:

#### Агент 4: Describe (youtube-description)
Прочитай `channel.md` (ссылки!) и `templates/description-prompt.md`. Создай `description.md` с главами, хэштегами, блоком ссылок из channel.md.

#### Агент 5: Thumbnail + Thumbnail Critic (youtube-thumbnail → youtube-thumbnail-critic)
1. Прочитай `titles_final.md`, `transcript.srt`. Определи метафору, напиши промпт 150+ слов, сгенерируй 3 варианта:
   ```bash
   source .venv/bin/activate && python scripts/gemini_thumbnail.py \
       --prompt "{промпт}" --emotion {emotion} --variant {N} \
       --title "{заголовок}" --output "projects/{id}/thumbnails/"
   ```
2. Просмотри обложки, раскритикуй, при необходимости перегенерируй. Создай `thumbnail_review.md`.

**Дождись завершения обоих агентов перед следующей фазой.**

---

### 8. Announce

Прочитай `channel.md`. Создай пост и отправь с тизером:
```bash
source .venv/bin/activate && python scripts/telegram_send.py \
    --video projects/{id}/teaser.mp4 --caption "текст поста" --parse-mode Markdown
```

### 9. CHECKPOINT

Обнови `meta.json`: `status: "ready_for_review"`, `pipeline.awaiting_review: true`.

## После каждого этапа / фазы

Обнови `meta.json`: `pipeline.current_stage` и `pipeline.stages_completed`.
Для параллельных фаз — обнови после завершения всех агентов фазы.

## Финальный отчёт

Выведи: все этапы, выбранный заголовок, лучшую обложку, пути к файлам, следующий шаг (`/publish`).

## Возобновление

Если pipeline прерван — проверь `meta.json` (`pipeline.current_stage`, `stages_completed`), продолжи с текущего этапа. Если прерван внутри параллельной фазы — проверь, какие подзадачи завершены, запусти оставшиеся.

## Ошибки

Сохрани в `meta.json`: `pipeline.error`, `status: "error"`. Предложи решение или ручной запуск этапа. Ошибка одного агента в параллельной фазе НЕ останавливает другие агенты — дождись всех, потом сообщи об ошибках.
