Files
obsidian-vault/wiki/concepts/kraken-media-stack.md
T

6.7 KiB
Raw Blame History

title, namespace, created, updated, last_synced, type, tags, confidence
title namespace created updated last_synced type tags confidence
Kraken Media Server — Full Stack work 2026-05-18 2026-05-20 2026-05-20 concept
kraken
media-pipeline
infra
synthesis
0.9

Kraken Media Server — Full Stack

Синтез: полная карта медиа-стека на Кракене (RPi5). Объединяет tech/kraken-network, tech/media-pipeline-pitfalls, tech/htpc-steam-emulators.

Архитектурный обзор

Два параллельных конвейера для медиа-контента:

Конвейер 1 — media-pipeline (Swift, ручной импорт HTPC→Kraken)

HTPC (rsync) → /media/{movies,cartoons,series,documentaries}/
  → media-pipeline:kraken (Docker) → scan → resolve → apply
  → /media/library/{movies,cartoons,series}/ (canonical + NFO)
  → Jellyfin
  • Resolve: TMDb (Tier 1) → KP (Tier 2) → IMDb scrape (Tier 3) → web search (Tier 4)
  • Классификация по жанрам провайдера (Animation→cartoons, Documentary→documentaries), никогда по пути
  • unresolved.json — очередь нераспознанных (13 items на 2026-05-16, все genuine absences)

Конвейер 2 — *arr stack (новые скачки через Radarr/Sonarr)

Prowlarr (RuTracker) → Radarr (7878) / Sonarr (8989)
  → Transmission (9091) → /media/movies-radarr, /media/series-sonarr
  → Jellyfin
  • Раздельные root folder'ы (movies-radarr, series-sonarr) — не конфликтуют с media-pipeline library
  • Jellyfin читает оба пути для Movies и Series

Сервисы и порты

Сервис Порт Данные
Jellyfin 8096 /media/library/ + /media/movies-radarr + /media/series-sonarr
Transmission 9091 /media/downloads/complete
Radarr 7878 root: /media/movies-radarr
Sonarr 8989 root: /media/series-sonarr
Prowlarr 9696 индексер: RuTracker
media-pipeline Docker run, не compose; config: ~/docker/media-pipeline/
Hermes (Kraken) Docker container, skills: ~/.hermes/skills/

Ключевые питфоллы (пережитые)

  1. HDD read-only под нагрузкой — rsync + ffmpeg transcode одновременно → Sense Key 0x4, ext4 remount-ro. Фикс: ребут → fsck → docker compose up -d (2026-05-18)
  2. docker save | ssh зависает — через WireGuard tunnel. Фикс: docker save -o /tmp/ + scp + docker load раздельно
  3. curl отсутствует в Hermes-контейнере — скиллы с curl-командами не работают из контейнера. Навигация: хостовый Hermes vs container Hermes
  4. Pi-hole DNS hijack → Sonarr/Radarr 503. Фикс: whitelist или прямые IP
  5. Skills path: ~/.hermes/skills/ (хост) ≠ /opt/data/skills/ (контейнер)
  6. KP API domain переехал на api.poiskkino.dev (был api.kinopoisk.dev)
  7. providers block в config.json — если не указан явно, все провайдеры disabled → 213 skipped вместо 278 applied

Статус (2026-05-18)

  • media-pipeline: 402/402 тестов, 13 unresolved (genuine absences в KP/TMDb)
  • *arr stack: Prowlarr+Radarr+Sonarr+Transmission+Jellyfin — работают
  • Hermes на Кракене: docker container, скиллы download-media + arr-media-stack-setup
  • Трекер-парсеры (Steps D-F): audio/non-video scanner, fixture тесты для rutor/nnm-club
  • Transmission torrent-fix: 271/293 файлов без привязки после pipeline apply

Watchlist Automation (обновлено 2026-05-20)

Два cron-job'а на Eagle — автоматическое пополнение очереди просмотра:

Job Расписание Действие
watchlist-resolve (16438138c8c5) ежедн. 09:00 SSH на Кракен → watchlist-sync resolve → commit
watchlist-sync-down (7d12b6d48786) ежедн. 10:00 process-thumbs --applysync-down --apply → добавить в Radarr/Sonarr
watchlist-discover (6aba6979b8c4) вс 09:00 KP API топ новинок → добавить в секцию "Новинки 👍/👎"

Python-сервис ~/Developer/watchlist-sync:

  • parse[ ]/[x]/👍/👎 статусы из .md
  • resolve → TMDB + KP API → ID + тип (movie/tv)
  • discover → KP API топ фильмов 2024-2025 (IMDb≥7.0 или KP≥7.0) → секция "Новинки"
  • sync-down → добавить 👍 в Radarr/Sonarr батчами по 5
  • sync-up → Jellyfin watched history → [x] в .md

Router Script — Жанровая маршрутизация

router.py — запускается из Sonarr/Radarr Custom Script при импорте. Читает жанры из NFO (или TMDb API) и создаёт symlink в нужную тематическую библиотеку Jellyfin:

movies-radarr/ → Animation + !R/18+  → /media/cartoons/
movies-radarr/ → Documentary         → /media/documentaries/
movies-radarr/ → прочее              → /media/movies/
series-sonarr/ → аналогично для series/cartoons-series/documentaries-series/

Запуск: python3 /srv/.../docker/media-pipeline/router.py [--apply]

Jellyfin библиотеки (актуально 2026-05-20)

Библиотека Тип Пути
Movies movies /media/movies
Series tvshows /media/series
Cartoons movies /media/cartoons
Cartoon Series tvshows /media/cartoons-series
Documentaries movies /media/documentaries
Documentary Series tvshows /media/documentaries-series

movies-radarr и series-sonarr НЕ в библиотеках Jellyfin — router script создаёт symlinks.

Kraken-Hermes в контейнере (hermes-kraken) доступен через Zulip. Скачать медиа:

  • Сериал → Sonarr API → Transmission
  • Фильм → Radarr API → Transmission
  • Только через curl (python3 запрещён в скилле)

See Also