[2026-09-22] eagle: personal/tech/kraken-media-inventory-facts.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-22 21:01:59 +06:00
1 parent 190f56b40a
commit 061f6c6961
1 file changed
+126
@@ -0,0 +1,126 @@
# Кра́кен — медиа-инвентаризация: сводка фактов
> Рабочий конспект к `personal/plans/kraken-media-inventory-cleanup.md`.
> Создан 2026-09-22, потому что persistent memory переполнена (2977/3000 chars).
## Цифры
| Показатель | Значение |
|---|---|
| Диск | `6194539b-03e0-4f33-986b-4da09834e82f` = 1,8 ТБ, занято 1,3 ТБ, свободно **477 ГБ** |
| `49e8f586-3839-4c5d-a1e1-58bfc3579ade` | **symlink** на `6194539b`, не отдельный диск |
| Файлов | 802 видеофайла |
| Позиций (тайтлов) | 233 |
| Всего | 1 236 ГБ |
| Индексирует Radarr/Sonarr | **252 ГБ (21%)** |
| В watchlist (до фикса матчинга) | 29 позиций / 456 ГБ |
| В watchlist (после фикса) | ≥ 33 позиции / ~483 ГБ |
| Не в watchlist | 204 позиции / 780 ГБ |
| Точных дублей файлов | 46 групп / **89,2 ГБ** |
| `downloads/complete` дубли | 64,8 ГБ |
### По папкам
| Папка | Файлов | ГБ | В arr |
|---|---|---|---|
| `movies` | 51 | 309.7 | ❌ |
| `movies-radarr` | 11 | 176.2 | ✅ |
| `series-sonarr` | 57 | 116.1 | ✅ |
| `documentaries-series` | 72 | 235.6 | ❌ |
| `cartoons` | 102 | 139.8 | ❌ |
| `cartoons-series` | 433 | 104.6 | ❌ |
| `downloads` | 45 | 78.6 | ❌ |
| `documentaries` | 25 | 71.9 | ❌ |
| `series` | 6 | 3.6 | ❌ |
## Копии на TrueNAS — проверено
| Папка TrueNAS (`/mnt/RED_2TB/storage/`) | Содержимое |
|---|---|
| `documentaries` | **1 файл** — `Храброе сердце.avi` (2,18 ГБ) |
| `documentaries-series` | **ПУСТО** |
| `cartoons-series` | **1 сборник** — `Kazaki` (2,62 ГБ) |
| `Cartoons` | **966 файлов / 191 ГБ** |
| `Movies` | 804 файла / 2 032 ГБ |
| `series` | 71 файл / 55,8 ГБ |
🔴 **307 ГБ доксериалов/документалок на Кра́кене — единственная копия.** Копий на TrueNAS нет.
🔴 **Мультфильмы — частично.** TrueNAS `Cartoons` покрывает ~40 названий:
Смешарики (DVDRemux 207 файлов/61,6 ГБ), Tom and Jerry (163/15,3), Pinky and the Brain (114/24,9),
Малышарики (256/5,6), Мимимишки (120/5,2), Ну погоди (22/2,8), Леопольд (11/1,0),
38 Попугаев (10/0,6), Простоквашино (3), Винни Пух (3), Чебурашка (4), Котенок по имени Гав (4),
Неуловимый Фунтик (4), Принцесса Мононоке, Ходячий замок, Мой сосед Тоторо, Книга Джунглей,
Полярный экспресс, Король Лев, Аладдин ×3, Бэмби I–II, Ледниковый период, Золушка, Русалочка,
Кунг-фу Панда, Мадагаскар 2, Белка и Стрелка, Труп невесты, Балерина, Аисты, Рапунцель, Тачки,
Фердинанд, Роджер Рэббит, Аленький цветочек, Пиф-паф, Вовка, Жил-был пёс, Как львёнок и черепаха,
Бобик в гостях у Барбоса.
~90 названий только на Кра́кене: ёжик в тумане, мойдодыр, снежная королева 1957, двенадцать месяцев,
чиполлино, сказка сказок, золотая антилопа, дюймовочка, маугли 1973, остров сокровищ 1988,
волшебник изумрудного города, Доктор Айболит, капитан Врунгель, кот в сапогах 2011, lightyear,
inside out, luca, миграция, encanto, elemental, turning red, Super Mario, despicable me 4,
король лев 1994 + ~80 короткометражек советской анимации.
## 🔴 Грабля матчинга
`watchlist.json` item: `{name (рус), original, year, rating, image, href}`.
**tmdb_id отдельным полем ОТСУТСТВУЕТ** — брать из `href` = `https://www.themoviedb.org/movie/NNN`.
🔴 Файлы названы по-английски (`Bram.Stoker's Dracula.1992.mkv`, `The.Crow.1994...`,
`despicable.me.4.2024...`, `Вивариум_2019_BDRip`) → матчить **с `original`**, не только с русским
`name`. Иначе «не в watchlist» ложно.
Пропущено мной до фикса (в watchlist, а я их не нашёл):
| Файл | ГБ | В watchlist |
|---|---|---|
| `Bram.Stoker's Dracula.1992` | 18.04 | Дракула / Bram Stoker's Dracula, TMDB 6114 |
| `The.Crow.1994` | 17.45 | Ворон / The Crow, TMDB 9495 |
| `despicable.me.4.2024` | 2.18 | Гадкий я 4, TMDB 519182 |
| `Вивариум_2019_BDRip` | 1.46 | Вивариум / Vivarium, TMDB 458305 |
🔴 **Подстрочный/токенный матч даёт мусор:**
- одиночный `Вивариум_2019_BDRip.avi` (1,46 ГБ) раздувался в группу 135 ГБ / 36 файлов;
- `пингвины. шпион в толпе` → `Шпион` / Spy (2015);
- `the secret life of elephants` → `Список заветных желаний` / The Life List.
🔴 **Год проверять ±1:** `inside out (2015)` vs watchlist `Головоломка 2` (2024) — РАЗНЫЕ фильмы.
Oldboy (2003) и Project Hail Mary (2026) — **в watchlist отсутствуют**, хотя есть в Radarr.
## Артефакты (Mac)
| Файл | Что |
|---|---|
| `/tmp/kraken_files.tsv` | сырьё: `size\tpath`, 802 строки |
| `/Users/admin/kraken-inventory.json` | полные данные (top/title/files/size_gb/in_watchlist/wl_names/tmdb_ids/cands/path) |
| `/Users/admin/kraken-inventory.csv` | то же таблицей |
| `/Users/admin/kraken-not-in-watchlist.md` | список 204 позиций |
| `/Users/admin/kraken-dupes.json` | 46 групп дублей |
| `/Users/admin/kraken-vs-truenas.json` | сверка с TrueNAS |
| `/Users/admin/kraken-table-AB.md` | таблица A/B |
## Скрипты
| Скрипт | Назначение |
|---|---|
| `/tmp/kraken_inventory3.py` | группировка файлов в позиции + матч с watchlist |
| `/tmp/kraken_fix2.py` | точный матч по `original` (латинская фраза из имени файла) |
| `/tmp/kraken_final.py` | дубли по (имя файла, размер) |
| `/tmp/tn_inv.sh` | инвентаризация TrueNAS `storage/*` |
| `/tmp/tn_load.py load` | загрузка листинга TrueNAS |
| `/tmp/tn_compare.py` | сверка Кра́кен ↔ TrueNAS (⚠️ медленный, только `cartoons*`/`documentaries*`) |
## Уроки
1. 🔴 **Токенный матч названий — не работает.** Только строгое равенство нормализованных строк
либо сравнение с полем `original` + проверка года.
2. 🔴 **Одиночный файл в корне папки — отдельная позиция**, не часть группы. Иначе 1 файл 1,46 ГБ
раздувается в 135 ГБ.
3. 🔴 **`downloads/complete` — staging, а не дубли «вообще».** Совпадение проверять по
(имя файла + размер), не по названию тайтла.
4. 🔴 **Не подтверждать «копия есть» по папке с похожим именем.** TrueNAS `documentaries`
(1 файл) ≠ Кра́кен `documentaries` (25 позиций).
5. 🔴 **Watchlist на Кра́кене проверять по хэшу**, не по дате. `watchlist.json` остался
`f3ad677a0fdbf36104b708ec5b8dd114` после «обновил» → правка не залилась.
Боевой `.md` = `$H/obsidian/family/documents/movies-watchlist.md` (НЕ внутри `$H/lampac/`).