2026-05-16 media-toolbox: investigation list + CV/Whisper Tier 6 plan

This commit is contained in:
Alexey Martemyanov
2026-05-16 13:07:47 +06:00
parent d2131a427c
commit 305242d07b
+80 -1
View File
@@ -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=<title>&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)