From 305242d07ba9151a7b602979454f97571cc12da5 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sat, 16 May 2026 13:07:47 +0600 Subject: [PATCH] 2026-05-16 media-toolbox: investigation list + CV/Whisper Tier 6 plan --- family/projects/media-toolbox-kraken.md | 81 ++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/family/projects/media-toolbox-kraken.md b/family/projects/media-toolbox-kraken.md index d5e3226b..12bd6b13 100644 --- a/family/projects/media-toolbox-kraken.md +++ b/family/projects/media-toolbox-kraken.md @@ -408,9 +408,88 @@ docker run --rm \ 3. **Группа B:** rename папок на правильные названия (BBC docs не индексированы) 4. **Группа D/E:** relaxed year matching или override через resolve-manual +## Unresolved: Investigation List + +> Эти 15 позиций прошли все автоматические тиры (TMDb→KP→IMDb→WebSearch) и остались нераспознанными. +> Статус на 2026-05-16. Для каждого — план ручного расследования. + +### Группа: Дубли (удалить с диска или дедуплицировать scanner) + +| Путь | Действие | +|------|----------| +| `/media/cartoons/Nehochuha.XVid.DVDRip.avi` | Папка `nehochuha.xvid.dvdrip` уже resolved. Удалить standalone файл. | +| `/media/movies/Bezumnyj_Maks_3_Pod_Kupolom_Groma_1985_[torrents.ru].mkv` | Resolved в прогоне 2026-05-16 (слинкован). Удалить из unresolved.json вручную. | +| `/media/movies/Dolina.Ekho.2025.ATVP.WEB-DLRip.AVC.mkv` | Папка `dolina.ekho.2025...` уже resolved. Это standalone дубль. | +| `/media/movies/dolina.ekho.2025.atvp.web-dlrip.avc` | Та же папка что выше — в scanner попадает дважды. | +| `/media/documentaries/Таинственная жизнь собак (HDTVRip 720p, 2013).mkv` | Дубль строки ниже (разный регистр). | +| `/media/documentaries/таинственная жизнь собак (hdtvrip 720p, 2013)` | Основная версия — нужно искать. | + +### Группа: Советские мультфильмы (нет под транслитом в TMDb/KP) + +| Путь | Query для ручного поиска | Примечание | +|------|--------------------------|------------| +| `/media/cartoons/budil'nik 1984` | КП: «Будильник», год 1978 или 1984 | Советский м/ф Союзмультфильм | +| `/media/cartoons/novogodn'aya_pesenka_deda_moroza` | КП: «Новогодняя песенка Деда Мороза», год 1983 | | + +**Расследование:** `curl "https://api.poiskkino.dev/v1.4/movie/search?query=Будильник&year=1984&type=cartoon"` + +### Группа: Документальные (BBC/Discovery, нет в TMDb) + +| Путь | Варианты поиска | Примечание | +|------|-----------------|------------| +| `/media/documentaries/bbc. the real jungle book bear 2012` | IMDb: «The Real Jungle Book» (2012, BBC) | Возможно серия BBC Natural World | +| `/media/documentaries/bbc. секреты собак` | IMDb/КП: «Secrets of Your Dog», «BBC Секреты собак» | | +| `/media/documentaries/penguin meet the family (2020)` | IMDb: «Penguin: Meet the Family» (2020) | BBC Studios | +| `/media/documentaries/бегемоты - жизнь в воде` | КП/IMDb: «Hippos: Life in the Water», «BBC Бегемоты» | | +| `/media/documentaries/супер белки (2018)` | КП: «Супер белки», IMDb: «Super Squirrels» (2018) | | +| `/media/documentaries/шпион в снегах 2018` | КП: «Шпион в снегах», IMDb: «Snow Spy», «Spy in the Snow» | | +| `/media/documentaries/таинственная жизнь собак (hdtvrip 720p, 2013)` | КП: «Тайная жизнь собак», IMDb: «Secret Life of Dogs» (2013, BBC) | | + +**Расследование:** +1. Поиск на IMDb: `https://www.imdb.com/find?q=&s=tt` +2. Если нашли — взять TMDb ID через: `https://api.themoviedb.org/3/find/<imdb_id>?external_source=imdb_id` + +### Группа: Транслит-mismatch + +| Путь | Реальное название | KP ID | Действие | +|------|-------------------|-------|---------| +| `/media/movies/Stiratel.1996.x264.BDRip.(AVC).0ptimus.mkv` | «Стёртый» (1996) | KP 9268 | `resolve-manual --tmdb <id>` или добавить alias в транслит-словарь | + +**Расследование:** KP ID 9268 уже в кеше. Проблема — `Stiratel` → `Стирател` не совпадает с `Стёртый`. +Нужно проверить есть ли у KP 9268 TMDb external ID: `curl "https://api.poiskkino.dev/v1.4/movie/9268"`. + --- -## Журнал +## План: CV/Whisper для Tier 6 (для оценки) + +> Идея: когда все тиры исчерпаны — использовать сам медиафайл как источник сигнала для идентификации. + +### Подход A: Whisper — транскрипция аудиодорожки начала фильма +- `ffmpeg -i film.mkv -ss 0 -t 120 -vn -acodec pcm_s16le -ar 16000 /tmp/opening.wav` +- `whisper /tmp/opening.wav --language ru --model small` → текст +- Из текста: название, студия, год, авторы → уточнённый TMDb/KP запрос +- **Применимо:** советские мультфильмы, документалки с русским закадровым голосом + +### Подход B: CV — захват кадров с титрами +- `ffmpeg -i film.mkv -ss 5 -vframes 10 /tmp/frames/frame%03d.jpg` (начало) +- `ffmpeg -i film.mkv -sseof -120 -vframes 10 /tmp/frames/end%03d.jpg` (конец — credits) +- OCR через `tesseract` или Vision API → текст с кадров +- Из текста: оригинальное название, год, студия +- **Применимо:** советские мультфильмы всегда имеют title card в первые секунды + +### Подход C: Chromaprint/AcoustID — audio fingerprint +- `fpcalc film.mkv` → fingerprint → `https://api.acoustid.org/v2/lookup` +- **Применимо:** редко + +### Реализация (если решим делать) +1. Новый `Tier6VideoAnalysisStrategy` в `MediaDomain` +2. Запускается только для `attempt_count >= 10` +3. На Linux: `ffmpeg`, `whisper-cpp` или OpenAI Whisper API, `tesseract` +4. Вывод: дополнительные `NameVariant` для QueryBuilder +5. **Стоимость Whisper API:** ~$0.006/мин, 120 сек = $0.01 за фильм. 13 items = $0.13 +6. **Вердикт:** Хорошая идея для stuck документалок. Реализовать после agentic flow. + +--- - **2026-05-15 сессия 10:** rsync с HTPC завершён (2.2TB). Фиксы: Code=516 idempotent symlink, TitleParser `\b` episode regex, BBC prefix strip, Yoficator (е→ё). Результат: **260 applied, 0 errors, 23 unresolved**. Movie 43 ✅, Котёнок ✅, Тигрёнок ✅, Нехочуха (папка) ✅. - **2026-05-13 сессия 1:** HTPC разбужен, rsync запущен (~1.3TB), торрент-база импортирована (128 торрентов из Windows Transmission-daemon)