# Media Pipeline — Agentic Flow ## Статус (2026-05-16) ✅ Реализовано и задеплоено на Кракен (`commit 3df97a1`) ## Архитектура ### `ChatGPTAPI.resolveMedia(filename:)` Tool-calling loop, max 8 раундов, модель `openai/gpt-oss-120b:free` через OpenRouter. **Инструменты:** | Tool | Описание | |------|----------| | `search_tmdb(title, year?, language?)` | Поиск в TMDb | | `search_kinopoisk(title, year?)` | Поиск в KP (советские/российские) | | `fetch_page(url)` | Fetch + HTML-strip https URL (IMDb, BBC, Wikipedia) | **Результаты (`MediaResolutionResult`):** - `resolved(tmdbId, kpId, imdbId, title, year)` — найдено в БД → пишем NFO через TMDb - `metadata(title, year, description, genres, posterUrl, sourceUrl)` — web-only → `writeCustomNFO()` - `unresolvable(reason)` — не удалось → hint в unresolved.json ### `writeCustomNFO()` Пишет NFO без DB binding (для BBC docs, Frozen Kingdom и т.д.): - Тег `media-pipeline-agent` — отличает от pipeline-generated - Поддерживает poster_url, description, genres ## Запуск на Кракене ```bash cd /srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/docker/media-pipeline docker run --rm \ -v "$(pwd)/config.json:/config/config.json:ro" \ -v "/srv/dev-disk-by-uuid-49e8f586-3839-4c5d-a1e1-58bfc3579ade/media:/media" \ -v "$(pwd)/cache:/config/cache" \ -v "$(pwd)/unresolved.json:/config/unresolved.json" \ media-pipeline:kraken agent --apply --limit 20 ``` Без `--apply` — только hints в unresolved.json, без записи NFO. ## Pending unresolved (12 items, 2026-05-16) | Путь | Группа | Ожидаемый результат | |------|--------|---------------------| | `bbc. the real jungle book bear 2012` | BBC doc | metadata (BBC page) | | `bbc. секреты собак` | BBC doc | metadata | | `penguin meet the family (2020)` | BBC doc | metadata | | `бегемоты - жизнь в воде` | BBC doc | metadata | | `супер белки (2018)` | doc | metadata/resolved | | `шпион в снегах 2018` | doc | metadata/resolved | | `таинственная жизнь собак (hdtvrip 720p, 2013)` | doc | resolved (KP) | | `Таинственная жизнь собак (HDTVRip 720p, 2013).mkv` | дубль | resolved | | `budil'nik 1984` | советский м/ф | resolved (KP) | | `novogodn'aya_pesenka_deda_moroza` | советский м/ф | resolved (KP) | | `Nehochuha.XVid.DVDRip.avi` | дубль папки | shadow/skip | | `Bezumnyj_Maks_3...mkv` | дубль папки | shadow/skip | ## Следующие шаги - [ ] Запустить `agent --apply` на 12 unresolved - [ ] Проверить Frozen Kingdom (документалка про снежного барса) - [ ] CV/Whisper (Tier 6) — для случаев где даже агент не справляется - [ ] Hermes cron: запускать `agent --apply` после каждого sync