2026-05-18 router script plan: Sonarr/Radarr → Jellyfin library routing

This commit is contained in:
Alexey Martemyanov
2026-05-18 23:11:31 +06:00
parent e4838c88a7
commit 6397a6c07c
+69
View File
@@ -300,6 +300,75 @@ docker run --rm ... media-pipeline:kraken \
`Karnavalnaya.noch.1956.BDRip.AVC.mkv` — есть в uTorrent и в Transmission на Кракене (`downloaded=0`). Файла нет нигде — **никогда не скачивался**.
## Router script: Sonarr/Radarr → правильная библиотека Jellyfin
**Задача:** после импорта Sonarr/Radarr создать symlink в нужную папку Jellyfin на основе жанра/рейтинга. Sonarr/Radarr кладут файлы в `movies-radarr/` и `series-sonarr/` — Jellyfin видит только эти папки. Роутер создаёт symlinks в тематические библиотеки чтобы Jellyfin показывал правильную структуру.
### Логика маршрутизации
```
Входные папки:
/media/movies-radarr/ → фильмы
/media/series-sonarr/ → сериалы
Для каждого тайтла читаем NFO (или TMDb API):
- genres[]
- content_rating (R / 18+ / TV-MA / PG / etc.)
- type (movie / series)
Алгоритм (приоритет сверху вниз):
IF documentary IN genres:
movie → /media/documentaries/
series → /media/documentaries-series/
ELIF animation IN genres AND rating NOT IN [R, 18+, TV-MA]:
movie → /media/cartoons/
series → /media/cartoons-series/
ELSE (default):
movie → /media/movies/
series → /media/series/
```
Movies и Series — финальный fallback, если не попало в другие категории.
### Что делает скрипт
1. Сканирует `movies-radarr/` и `series-sonarr/`
2. Для каждого тайтла читает `movie.nfo` / `tvshow.nfo` → жанры + рейтинг
3. Если NFO нет → запрос TMDb API по имени папки
4. Определяет целевую папку по алгоритму выше
5. Создаёт symlink: `ln -s /media/movies-radarr/X /media/movies/X`
6. Копирует NFO + постер рядом с symlink (Jellyfin не видит метадату через symlink)
7. Тригерит Jellyfin rescan нужной библиотеки
### Запуск
- **При добавлении**: вызывается из Sonarr/Radarr → Settings → Connect → Custom Script
- **Полный пересчёт**: `router.py --rescan-all`
### Что НЕ делает
- Не трогает файлы в `movies-radarr/` и `series-sonarr/`
- Не удаляет старые symlinks без `--cleanup`
- Не переименовывает торренты
### Jellyfin библиотеки (целевые)
| Библиотека | Тип | Пути |
|---|---|---|
| Movies | movies | `/media/movies` + `/media/movies-radarr` |
| Series | tvshows | `/media/series` + `/media/series-sonarr` |
| Cartoons | movies | `/media/cartoons` |
| Cartoon Series | tvshows | `/media/cartoons-series` |
| Documentaries | movies | `/media/documentaries` |
| Documentary Series | tvshows | `/media/documentaries-series` |
Порядок в Jellyfin UI: Movies → Series → Cartoons → Cartoon Series → Documentaries → Documentary Series → Music
---
## *arr стек (Prowlarr / Radarr / Sonarr) — настройка 2026-05-17
### Архитектура