[2026-09-27] eagle: personal/plans/tagwriter-container.md personal/tech/music-tags-repair-truenas.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-27 00:50:00 +06:00
1 parent 304119a6d5
commit 586d9e8ffd
2 files changed
+146 -36

No files matched your search

+39 -9
View File
@@ -23,7 +23,34 @@ related:
# Music Tags Repair — TrueNAS (7906 → 7905 файлов)
> ## ✅ ТРИДЦАТЬ ВОСЬМАЯ ВОЛНА (2026-09-26) — ФИНАЛЬНЫЙ АУДИТ + 4 ПРАВКИ ВЫПОЛНЕНЫ
> ## ✅ ТРИДЦАТЬ ВОСЬМАЯ ВОЛНА (2026-09-26) — ФИНАЛЬНЫЙ АУДИТ + 4 ПРАВКИ + ПРИМЕНЕНИЕ НА NAS
>
> ### 🆕 ИТОГ ПРИМЕНЕНИЯ (вечер 2026-09-26) — дельта закрыта, конвертация упёрлась в DRM
>
> | Шаг | Результат |
> |---|---|
> | Решение Alex по 75 правкам «удалить TRCK» | ✅ **B** — «это косяк плана, не надо удалять номер трека» |
> | Решение Alex по `._*` | ✅ **удалять** |
> | `rebuild_final.py` → `final-update.csv` | ✅ **165 строк** (TRCK 53 · TPE1 98 · TALB 29 · TIT2 25) |
> | Бэкап 165 → `/music/backup_fix/` | ✅ 165 файлов |
> | **APPLY 165 + READBACK** | ✅ **165/165, ошибок 0, расхождений 0** |
> | Чистка `._*` (`del_junk.py --apply`) | ✅ **29 удалено, 0 осталось** |
> | Образ с ffmpeg | ✅ пересобран, ffmpeg **8.1.2** + mutagen 1.47.0 |
> | **DRY-RUN конвертации не-MP3** | ⛔ **28 ошибок — WMA с Windows Media DRM** (`License_URL … sbp=DRM`, `Decode error rate 0.99`) |
> | Диагностика `probe_convert.py` | ⏳ классифицирует 70 файлов: `ok`/`drm`/`corrupt`/`other` |
> | APPLY конвертации | ⛔ **НЕ ЗАПУСКАТЬ** — конвертировать только класс `ok` |
> | Приёмка в Jellyfin | ⏳ ждёт Alex |
>
> **🔴 НОВЫЙ КЛАСС ПРОБЛЕМЫ: зашифрованный контент.** Часть `.wma` (НТЛ `wma/Track 1–13.wma`)
> защищена **Windows Media DRM** — ffmpeg не может их декодировать (99.5 % ошибок). Это не сбой
> скрипта и не потеря файлов (оригиналы в `backup_raw/`). Обходного пути без снятия DRM нет.
> **Правило: перед конвертацией формата — probe каждого файла, конвертировать только валидные.**
>
> **Итог по MP3: план закрыт.** 7041 (основной apply) + **165 (дельта)** = все MP3 приведены к плану.
> Остались только не-MP3 (70 файлов), из которых часть конвертируема, часть — DRM.
>
> **Новое правило Alex:** если список несовпавших файлов **уже есть** — не пересчитывать весь план,
> взять список сразу («У тебя же уже есть этот список зачем пересчет»).
>
> Триггер: Alex — «проводи финальный полный аудит списка на переименование»
> → «Csv блядь который ты делал» → «Чини».
@@ -123,11 +150,12 @@ related:
> `Shop`/`Candy` → `Candy Shop`/`50 Cent`; Наутилус `Nautilus Pompilius` → `Наутилус Помпилиус`;
> НТЛ `NTL` → `НТЛ`; `Wolfgang Gartner - Fire Power` пустые теги → заполнить.
>
> 🔴 **ОТКРЫТЫЙ ВОПРОС: 75 правок вида `TRCK: 'N'->''`** (удалить номер трека; почти все —
> Наутилус Помпилиус). Похоже на дефект плана (`new_track` пустой = «не задано»).
> Варианты: **A** удалить как в плане · **B** не трогать пустой `new_track` (рекомендация) ·
> **C** показать полный список 75. **Ждёт ответа Alex. До ответа `apply` дельта-правок не запускать.**
> Отдельно: 2 файла `._Infected Mushroom - Tiwanacu.MP3`, `._МИМИКРИЯ.MP3` — удалять?
> ✅ **РЕШЕНО Alex: вариант B** — «это косяк плана, не надо удалять номер трека».
> 75 правок `TRCK: 'N'->''` (почти все — Наутилус Помпилиус) **отброшены**: при пустом `new_track`
> ключ `TRCK` исключается из сравнения, номер на диске остаётся.
> `._*` мусор — Alex сказал **удалять**; выполнено: **29 файлов, 0 осталось**.
> Пересчёт `rebuild_final.py` → **165 правок** (было 212, минус 45 ложных и «только удаление TRCK»).
> **APPLY 165 + READBACK: 165/165, ошибок 0.**
>
> **Скрипты этой сессии:** `build_update_plan.py` (локально) + `fact_check_212.py` (NAS).
>
@@ -199,9 +227,11 @@ related:
>
> ⏭ **Осталось:** (1) ✅ полный разбор 83 MISSING + 212 MISMATCH — **сделан, вскрыл ДЕФЕКТ ПЛАНА
> (353 строки ложного `no_change`) + факт-чек (165 реальных правок)**;
> (2) 🔴 **ответ Alex по TRCK (A/B/C) — 75 правок «удалить»** → затем **apply дельта-правок (165)**
> (бэкап уже есть); (3) конвертация не-MP3 → MP3 (**ждёт `go`**);
> (4) приёмка в UI Jellyfin (глазами Alex); (5) после приёмки — удалить бэкап.
> (2) ✅ **ответ Alex по TRCK = B** → **apply дельта-правок (165): 165/165, 0 расхождений**;
> (3) ⛔ конвертация не-MP3 → MP3 — **заблокирована Windows Media DRM** (28 WMA); идёт `probe_convert.py`,
> конвертировать только класс `ok`;
> (4) приёмка в UI Jellyfin (глазами Alex); (5) после приёмки — удалить бэкапы
> (`backup/`, `backup_raw/`, `backup_fix/`).
>
> ### 🔴 ПИТФОЛЛ: sentinel-группа собирается по КОРНЮ сборника, НЕ по ближайшей папке
>