3.7 KiB
Конвенции раскладки Jellyfin
Целевые имена и структура, в которые jellybit раскладывает файлы хардлинками. Источники: Movies, Shows.
Фильмы
movies/
Дюна Часть вторая (2024) [tmdbid-693134]/
Дюна Часть вторая (2024).mkv
Дюна Часть вторая (2024).ru.srt
- Папка и файл —
Название (Год). - provider-id в имени папки (
[tmdbid-...]) добавляется при работе с базой — снимает неоднозначность для русских названий, которые Jellyfin иначе может опознать неверно. - Внешние субтитры —
Имя.<lang>[.flag].srt(флагиforced/sdh/default/hi), напр.…ru.forced.srt; база имени совпадает с именем видеофайла. Пары VobSub —.idx+.sub.
Сериалы
series/
Название (2024) [tvdbid-123456]/
Season 01/
Название (2024) S01E01.mkv
Название (2024) S01E02.mkv
- provider-id — на папке сериала.
- Сезоны —
Season 01, файлы —... SxxEyy.
Сопоставление источник → цель
Источник берём по пути из qBittorrent (save_path/content_path +
относительное имя, после трансляции path_map в хост-путь). Для каждого
распознанного файла (не каталога) создаётся хардлинк в
paths.movies/paths.series; целевые каталоги — mkdir (0755,
1000:1000). Исходный файл остаётся на месте (раздача продолжается),
inode общий — диск не дублируется.
Целевое имя строится из распознанных полей и санитизируется (без
разделителей пути, .., управляющих символов); финальный путь обязан
быть строго под библиотекой. Существующую цель не перезаписываем (тот
же inode → готово; другой файл → коллизия → review). Инварианты и undo —
в architecture.md → «Раскладка файлов».
Требование: целевой и исходный каталоги — на одной ФС (внутри контейнера
jellybit это обеспечивает mount /srv).
Крайние случаи
- Многофайловый фильм (части) — стэкинг по точному токену Jellyfin
(
… - part1/cd1); точный формат уточнить при реализации. - Редакции —
Имя (Год) [edition-Director's Cut]либо отдельные версии в папке фильма. - Двойная серия в одном файле —
… SxxEyy-Eyy. - Спецвыпуски —
Season 00. - Сезон-пак — серии в один
Season xx; смешанный пак — по per-file сезонам. - Несколько аудиодорожек — обычно внутри mkv, не наша забота.
- Аниме с абсолютной нумерацией — пересчёт в S·E, отдельная проработка (drafts/ideas.md).