[2026-09-26] eagle: personal/plans/music-tags-review/music-tags-review.md personal/plans/music-tags-wave38-fixes.md personal/tech/music-tags-final-review.md personal/tech/music-tags-rename-audit.md personal/tech/music-tags-repair-truenas.md
This commit is contained in:
1 parent
faa0176287
commit
b1bab81be2
5 files changed
+270
-2
No files matched your search
@@ -4,7 +4,7 @@ created: '2026-09-26'
|
||||
updated: '2026-09-26'
|
||||
type: tech
|
||||
namespace: personal
|
||||
wave: 37
|
||||
wave: 38
|
||||
tags:
|
||||
- music
|
||||
- jellyfin
|
||||
@@ -13,12 +13,36 @@ tags:
|
||||
related:
|
||||
- '[[personal/tech/music-tags-repair-truenas]]'
|
||||
- '[[family/how-to/jellyfin-config]]'
|
||||
- '[[personal/tech/music-tags-rename-audit]]'
|
||||
---
|
||||
|
||||
# Чистка тегов Music: сводки для финального аппрува
|
||||
|
||||
_Обновлено: 2026-09-26. Источник: `~/Downloads/music-tags/tag-fix-plan.csv`._
|
||||
|
||||
> ## 🔍 38-я волна — ФИНАЛЬНЫЙ АУДИТ CSV («список на переименование»)
|
||||
>
|
||||
> Триггер: Alex — «проводи финальный полный аудит списка на переименование» → «Csv блядь который ты делал».
|
||||
> Полный отчёт: **[[personal/tech/music-tags-rename-audit]]** (создан, волна 38).
|
||||
>
|
||||
> **CSV структурно цел: 7906 строк / 0 битых / 11 колонок** — к применению технически готов.
|
||||
> Актуальные `action`: `fix` **7041** / `no_change` **837** / `skip` **28** (цифры ниже в доке 37-й волны устарели).
|
||||
>
|
||||
> **4 недоделки (требуют решения Alex, ничего не правилось):**
|
||||
> 1. 🔴 **335 строк не в сводках** (`single 646 + multi 6897 + skip 28 = 7571` ≠ 7906) — все с пустым
|
||||
> `artist`: `Сборка Песни для детей` 165, `Детский хит` 156, `!Radio` 8, `Df1` 4, прочее 2.
|
||||
> Тот же баг волны 33 (`rebuild_summaries.py` выбрасывает пустой `artist`) — не долечен.
|
||||
> 2. 🔴 **5 confusable-строк** (латиница внутри кириллицы) в `new_title`: `Айбoлит`, `Авто-мaт`,
|
||||
> `ХХХиРНР`, `Голуби ft.Сацура`, `Два корабля(Sick…` + 2 в `artist`. Остальной mixed-script легитимен.
|
||||
> 3. 🔴 `new_album='New'` — 1 стр (`!Rock&Folk/Король и Шут/Танец гения.mp3`), техпапка в теге.
|
||||
> 4. ⚠️ `new_title='Часть N'` — 33 строки (`!Детские/Новые Бременские`, `NN - TrackNN.mp3`).
|
||||
>
|
||||
> **Ждёт решения (не трогалось):** 77 строк `часть` в `album` (`Избранное II - часть 1`);
|
||||
> дубли `(album,track)` **уточнено: 136 пар / 286 строк** (в доке ниже было 104);
|
||||
> кого писать в `artist` у 335 сборников.
|
||||
>
|
||||
> 👉 Детали и таблицы — `personal/tech/music-tags-rename-audit.md`.
|
||||
|
||||
> ## ✅ 37-я волна — 7 АЛЬБОМОВ СКАЗОК ЗАКРЫТЫ, 🔴 ВЫДУМАННЫЙ `(3)` ОТКАЧЕН
|
||||
>
|
||||
> **Построчное чтение завершено: 1–7906 (100%).** Все замечания Alex из списка сказок закрыты.
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
title: Music Tags — финальный аудит CSV (переименование)
|
||||
created: '2026-09-26'
|
||||
updated: '2026-09-26'
|
||||
type: tech
|
||||
namespace: personal
|
||||
wave: 38
|
||||
tags:
|
||||
- music
|
||||
- jellyfin
|
||||
- truenas
|
||||
- metadata
|
||||
- audit
|
||||
- approval
|
||||
related:
|
||||
- '[[personal/tech/music-tags-final-review]]'
|
||||
- '[[personal/tech/music-tags-repair-truenas]]'
|
||||
---
|
||||
# Music Tags — финальный аудит CSV (перед переименованием/применением)
|
||||
|
||||
_Обновлено: 2026-09-26. Источник: `~/Downloads/music-tags/tag-fix-plan.csv`._
|
||||
_Триггер: Alex — «проводи финальный полный аудит списка на переименование» → «Csv блядь который ты делал»._
|
||||
|
||||
**Аудит проведён по `tag-fix-plan.csv`** (11 колонок, главный план переименования/правки тегов).
|
||||
Скрипт-аудитор запущен на локальной копии; диск на NAS в этой итерации НЕ трогался.
|
||||
|
||||
## ✅ ПРОЙДЕНО (чисто)
|
||||
|
||||
| # | Проверка | Результат |
|
||||
|---|---|---|
|
||||
| 1 | Строк в CSV | **7906** |
|
||||
| 2 | Битых строк (число колонок ≠ 11) | **0** |
|
||||
| 3 | `fix` с пустым `new_title` | **0** |
|
||||
| 4 | Нечисловой `new_track` | **0** |
|
||||
| 5 | `artist` продублирован в начале `new_title` (класс 5) | **0** — класс закрыт |
|
||||
| 6 | Артист в разных написаниях (нормализованно: регистр, `ё`,`группа `,`the `) | **0** |
|
||||
| 7 | Двойные/хвостовые пробелы в `new_*` | **0** |
|
||||
| 8 | Соответствие `tag-fix-plan.csv` ↔ `tag-inventory.csv` (NFC) | **0 / 0** — полное совпадение множеств путей |
|
||||
| 9 | `fix`, где `new_title/artist/album` == `cur_*` | 1532 — **НЕ дефект**: изменение идёт в `new_track` (номер из имени файла) |
|
||||
|
||||
## 🔴 НАЙДЕНО (требует решения/правки)
|
||||
|
||||
### 1. 🔴 Сводки неполные — 335 строк не попадают ни в сводки, ни в `skip`
|
||||
`single(646) + multi(6897) + skip(28) = 7571`, а строк **7906** → **недостача 335**.
|
||||
|
||||
| Папка | Строк | `artist` |
|
||||
|---|---:|---|
|
||||
| `!Детские/Сборка Песни для детей` | 165 | пусто |
|
||||
| `!Детские/Детский хит` | 156 | пусто |
|
||||
| `!Pop, Club, Любэ/!Radio` | 8 | пусто |
|
||||
| `!Pop, Club, Любэ/Df1` | 4 | пусто |
|
||||
| `!Pop, Club, Любэ/Infected Mushroom` | 1 | пусто |
|
||||
| `!A Not sorted/НАШЕСТВИЕ 2009 - ДЕНЬ ВТОРОЙ.mp3` | 1 | пусто |
|
||||
|
||||
Это **тот же баг из волны 33** (`rebuild_summaries.py` выбрасывает строки с пустым `artist`),
|
||||
но не долечен: 562 сказки вернули, а эти **335 строк (сборники без исполнителя) — остались выброшены**.
|
||||
⚠️ Alex сказки решил как «имя папки → artist»; для этих 335 решения **нет**.
|
||||
|
||||
### 2. 🔴 Confusable-скрипт (латиница внутри кириллического слова) — 5 строк в `new_title`
|
||||
Правило tirith HIGH: визуально идентичные символы. Проверено вручную 5 реальных:
|
||||
|
||||
| Значение | Битый символ |
|
||||
|---|---|
|
||||
| `Айбoлит` | латинская `o` вместо `о` |
|
||||
| `Авто-мaт` | латинская `a` вместо `а` |
|
||||
| `ХХХиРНР(Radio Edit)` | латинские `a`,`o` |
|
||||
| `Голуби ft.Сацура` | латинская `t` в `ft` (граница слова) |
|
||||
| `Два корабля(Sick navigbator…)` | латинские `c`,`k` на границе |
|
||||
|
||||
Плюс 2 в `new_artist`: `Кабарe-Дуэт Академия` (лат. `e`), `Роза Ветров/The Arrow` (`The` — легитимно).
|
||||
Остальные смешанные строки (`Глюк'oZa`, `Dancefloor`, `RMX`) — **легитимны**, не чинить.
|
||||
|
||||
### 3. 🔴 Техпапка в `new_album` — 1 строка
|
||||
`/storage/Music/!Rock&Folk/Король и Шут/Танец гения.mp3` → `new_album = 'New'` (имя подпапки-техпапки, не альбом). По паттерну волны 19 должно быть пусто.
|
||||
|
||||
### 4. ⚠️ `new_album` содержит `(часть N)` / `- часть N` — 77 строк
|
||||
`Избранное II - часть 1` (12), `Весь Булат Окуджава. Часть 6…` (1) и др.
|
||||
Прямого запрета Alex на `часть` в этом контексте не давал (стоп-слово касалось `Али-Баба`),
|
||||
но в 36-й волне формулировка была «`(часть N)` в album — выдумка ассистента». **Проверить с Alex.**
|
||||
|
||||
### 5. ⚠️ `new_title = 'Часть N'` — 33 строки
|
||||
Папка `!Детские/Новые Бременские`, файлы `NN - TrackNN.mp3`. Похоже на остаток класса «номер серии в title»
|
||||
(уже правили аналогичный `Трое из Простоквашино 8` → `Серия 8`). **Не доделано.**
|
||||
|
||||
### 6. ⚠️ Дубли `(album, track)` — 136 пар, 286 строк (было указано 104 — уточнено)
|
||||
Топ папок: `!Pop,!Radio` 68, `!Rock&Folk/ЗАХАР МАЙ` 42, `Ленинград` (sum 50), `Пилот` 16, `Guf` 30, `Агата Кристи` 15, `Король и Шут` 13, `Ногу Свело!` 13, `The Used` 11, `Трофим` 10.
|
||||
Решаются **дедупликацией файлов**, не нумерацией. Решение Alex — разобрать самому (правило: папки не удалять/не переименовывать).
|
||||
|
||||
## Итог
|
||||
|
||||
- **CSV структурно цел:** 7906 / 0 битых / 11 колонок — к применению технически готов.
|
||||
- **Блокер №1:** 335 строк не в сводках (артист-пустые сборники) — сводки **неполные**, тот же класс, что «пропавшие сказки».
|
||||
- **Мелкие правки (5 + 2 + 1 + 33):** confusable-скрипт, техпапка `New`, `Часть N` в title.
|
||||
- **Ждёт решения Alex (3):** 77 строк `часть` в album; 136 пар дублей; назначение `artist` для 335 сборников.
|
||||
|
||||
_Cвязано: [[personal/tech/music-tags-final-review]], [[personal/tech/music-tags-repair-truenas]]._
|
||||
@@ -4,7 +4,7 @@ created: '2026-09-26'
|
||||
updated: '2026-09-26'
|
||||
type: tech
|
||||
namespace: personal
|
||||
wave: 37
|
||||
wave: 38
|
||||
tags:
|
||||
- music
|
||||
- jellyfin
|
||||
@@ -16,10 +16,50 @@ tags:
|
||||
related:
|
||||
- '[[family/how-to/jellyfin-config]]'
|
||||
- '[[family/projects/media-toolbox-taiga]]'
|
||||
- '[[personal/tech/music-tags-rename-audit]]'
|
||||
---
|
||||
|
||||
# Music Tags Repair — TrueNAS (7906 файлов)
|
||||
|
||||
> ## 🔍 ТРИДЦАТЬ ВОСЬМАЯ ВОЛНА (2026-09-26) — ФИНАЛЬНЫЙ АУДИТ CSV, 4 НЕДОДЕЛКИ
|
||||
>
|
||||
> Триггер: Alex — «проводи финальный полный аудит списка на переименование» → «Csv блядь который ты делал».
|
||||
> Полный отчёт: **[[personal/tech/music-tags-rename-audit]]**. Диск на NAS **НЕ трогался** —
|
||||
> аудит по локальной копии `~/Downloads/music-tags/tag-fix-plan.csv`.
|
||||
>
|
||||
> ### ✅ CSV структурно цел
|
||||
> 7906 строк / **0 битых** / 11 колонок. `fix` **7041** / `no_change` **837** / `skip` **28**.
|
||||
> Полное совпадение множеств путей с `tag-inventory.csv` (NFC) — 0/0.
|
||||
> 0 пустых `new_title`, 0 нечисловых `new_track`, 0 artist-префиксов в title (класс 5 закрыт),
|
||||
> 0 групп «артист в разных написаниях», 0 двойных пробелов в `new_*`.
|
||||
>
|
||||
> ### 🔴 НАЙДЕНО (4 недоделки, ничего не правилось)
|
||||
> 1. **335 строк не в сводках** — `single 646 + multi 6897 + skip 28 = 7571` ≠ 7906.
|
||||
> Все с пустым `artist`: `!Детские/Сборка Песни для детей` 165, `!Детские/Детский хит` 156,
|
||||
> `!Pop, Club, Любэ/!Radio` 8, `Df1` 4, `Infected Mushroom` 1, `НАШЕСТВИЕ 2009` 1.
|
||||
> **Тот же баг волны 33** (`rebuild_summaries.py` выбрасывает пустой `artist`) — сказки вернули,
|
||||
> а эти сборники без исполнителя остались выброшены. Решения Alex по ним **нет**.
|
||||
> 2. **confusable-скрипт (латиница внутри кириллицы) — 5 строк** `new_title`: `Айбoлит` (лат.`o`),
|
||||
> `Авто-мaт` (лат.`a`), `ХХХиРНР(Radio Edit)`, `Голуби ft.Сацура` (лат.`t`), `Два корабля(Sick…`;
|
||||
> + 2 в `new_artist`: `Кабарe-Дуэт Академия`, `Роза Ветров/The Arrow`. Остальной mixed-script
|
||||
> (`Глюк'oZa`, `Dancefloor`, `RMX`) — **легитимен**, не чинить.
|
||||
> 3. **`new_album='New'`** — 1 строка: `!Rock&Folk/Король и Шут/Танец гения.mp3` (техпапка в теге).
|
||||
> 4. **`new_title='Часть N'` — 33 строки** в `!Детские/Новые Бременские` (файлы `NN - TrackNN.mp3`) —
|
||||
> остаток класса «номер серии в title» (ср. `Трое из Простоквашино 8` → `Серия 8`).
|
||||
>
|
||||
> ### ⚠️ Ждёт решения Alex (не трогалось)
|
||||
> - **77 строк** `часть` в `new_album` (`Избранное II - часть 1` ×12 и др.) — править ли.
|
||||
> - **дубли `(album, track)` уточнено: 136 пар / 286 строк** (в доке 35-й волны было «104»).
|
||||
> Топ: `!Radio` 68, `ЗАХАР МАЙ` 42, `Ленинград` 50, `Guf` 30, `Пилот` 16.
|
||||
> - кого писать в `artist` у **335 сборников** без исполнителя.
|
||||
>
|
||||
> ### 🔴 ПРАВИЛО (подтверждено): пустой `artist` выкидывать из сводок нельзя молча
|
||||
> Инвариант полноты `single + multi + skip == 7906` **обязан** падать. Сейчас он не проходит
|
||||
> на 335 строках — это не «норма», а незакрытый баг волны 33.
|
||||
>
|
||||
> Скрипты: аудит выполнен ad-hoc (локальный CSV, read-only). Новых файлов в `~/Downloads/music-tags`
|
||||
> не создавалось; бэкапы не требовались.
|
||||
|
||||
> ## ✅ ТРИДЦАТЬ СЕДЬМАЯ ВОЛНА (2026-09-26) — 7 АЛЬБОМОВ СКАЗОК ЗАКРЫТЫ + 🔴 ВЫДУМАННЫЙ `(3)` ОТКАЧЕН
|
||||
>
|
||||
> Триггер: Alex — «Алиса в стране чудес, Алиса в Стране Чудес — давай ка `Сказки/Alisa v strane chudes`
|
||||
|
||||
Reference in new issue
Block a user