From 94e08cbd09973b7b7ed963044a0babcbec249ba8 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sat, 16 May 2026 20:03:01 +0600 Subject: [PATCH] Failed to authenticate. API Error: 401 Invalid authentication credentials [2026-05-16] vault sync --- family/projects/media-pipeline-agent.md | 65 +++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 family/projects/media-pipeline-agent.md diff --git a/family/projects/media-pipeline-agent.md b/family/projects/media-pipeline-agent.md new file mode 100644 index 00000000..87caa735 --- /dev/null +++ b/family/projects/media-pipeline-agent.md @@ -0,0 +1,65 @@ +# 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