2026-05-18 router script plan: Sonarr/Radarr → Jellyfin library routing
This commit is contained in:
@@ -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
|
||||
|
||||
### Архитектура
|
||||
|
||||
Reference in New Issue
Block a user