6.7 KiB
6.7 KiB
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 |
|
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/ |
Ключевые питфоллы (пережитые)
- HDD read-only под нагрузкой — rsync + ffmpeg transcode одновременно → Sense Key 0x4, ext4 remount-ro. Фикс: ребут → fsck →
docker compose up -d(2026-05-18) docker save | sshзависает — через WireGuard tunnel. Фикс:docker save -o /tmp/+scp+docker loadраздельно- curl отсутствует в Hermes-контейнере — скиллы с curl-командами не работают из контейнера. Навигация: хостовый Hermes vs container Hermes
- Pi-hole DNS hijack → Sonarr/Radarr 503. Фикс: whitelist или прямые IP
- Skills path:
~/.hermes/skills/(хост) ≠/opt/data/skills/(контейнер) - KP API domain переехал на
api.poiskkino.dev(былapi.kinopoisk.dev) - 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 --apply → sync-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
- concepts/watchlist-automation — полный flow watchlist → Radarr/Sonarr → Jellyfin
- tech/arr-stack-kraken — *arr stack pitfalls: nginx, DNS, grab limits
- tech/jellyfin-transcode-rpi5 — Jellyfin PGS/ASS subtitle pitfalls on RPi5
- tech/hermes-docker-kraken — Hermes Docker на Кракене