[2026-09-26] eagle: personal/tech/music-tags-final-review.md personal/tech/music-tags-repair-truenas.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-26 20:41:50 +06:00
1 parent 55cc3be924
commit 81ef7865b7
2 files changed
+90 -11

No files matched your search

+13 -10
View File
@@ -18,15 +18,18 @@ related:
_Обновлено: 2026-09-26. Источник: `~/Downloads/music-tags/tag-fix-plan.csv`._
> ## ✅ 31-я волна ЗАКРЫТА — написания артистов сведены, сводки честные
> ## ✅ 32-я волна ЗАКРЫТА — написания артистов сведены, сводки честные
> **Построчное чтение завершено: 1–7906 (100%).**
> 28-я волна: **сквозная нумерация треков по дискам** (9 многодисковых альбомов) — ✅ ГОТОВО.
> 29-я волна: **5 замечаний Alex** + 597 треков без `new_track` — ✅ применено.
> 30-я волна: **`single` переопределён** = артист ровно с 1 треком; Benassi добит из треклистов.
> 31-я волна: **сведены все написания артистов** + срезан номер из `artist` + мусор `.wma`.
> ✅ **Итог: `single` 664 + `multi` 6638 = 7302** (пустой `artist` выброшен из обеих сводок).
> 32-я волна: **срезан префикс диджея-сборника** (`DJ Tiesto - <артист>` ×13),
> инициалы → полные имена (`А. Апина`, `Пугачева`, `Губин`, `А.Маршал`, `К. Орбакайте`…),
> мусор-плейсхолдеры (`Сбрник`, `Классика`), `В. Высоцкий - Песня о друге (Вертикаль OST)`.
> ✅ **Итог: `single` 652 + `multi` 6650 = 7302** (пустой `artist` выброшен из обеих сводок).
> ✅ **0 групп «один артист — разные написания»**, `colliding normalized names` = **0**.
> 👉 Детали — `personal/tech/music-tags-repair-truenas.md` (волна 31).
> 👉 Детали — `personal/tech/music-tags-repair-truenas.md` (волна 32).
> ⚠️ Открытый вопрос: 104 дубля `(album, track)` — копии релизов в разных папках (дедупликация).
> ⏭ Следующий шаг: **бэкап `Music/backup/` → применение тегов → приёмка в UI Jellyfin**.
@@ -35,8 +38,8 @@ _Обновлено: 2026-09-26. Источник: `~/Downloads/music-tags/tag-f
| Файл | Строк | Колонки |
|---|---|---|
| `tag-fix-plan.csv` | 7906 | 11 колонок (главный план) |
| `artists-single-track.csv` | 664 | `artist, album, track, title, path` |
| `artists-multi-track.csv` | 6638 | `artist, album, track, title, path` |
| `artists-single-track.csv` | 652 | `artist, album, track, title, path` |
| `artists-multi-track.csv` | 6650 | `artist, album, track, title, path` |
| | **7302** | = 7906 − 576 (пустой `artist`) − 28 (`skip`) |
> ⚠️ **Оба файла имеют одинаковый формат** (единый `artist, album, track, title, path`).
@@ -97,9 +100,9 @@ Alex трижды указывал на это. Причина была **не
| action | строк | смысл |
|---|---|---|
| `fix` | 6984 | теги будут перезаписаны |
| `no_change` | 907 | теги корректны, файл не трогаем |
| `skip` | 15 | AppleDouble-мусор `._*`, не трогаем |
| `fix` | 7007 | теги будут перезаписаны |
| `no_change` | 871 | теги корректны, файл не трогаем |
| `skip` | 28 | AppleDouble-мусор `._*` (15) + мусорные `.wma` без названия (13) |
## Источник правки (`source`)
@@ -122,8 +125,8 @@ Alex трижды указывал на это. Причина была **не
## Приёмка (глазами)
1. Открой `artists-single-track.csv` — 675 артистов, у каждого ровно 1 трек, отсортировано
2. Открой `artists-multi-track.csv` — 298 артистов, 6640 треков, отсортировано по альбому и номеру
1. Открой `artists-single-track.csv` — 652 артиста, у каждого ровно 1 трек, отсортировано
2. Открой `artists-multi-track.csv` — 301 артист, 6650 треков, отсортировано по альбому и номеру
3. Найди свой артист, проверь названия
4. Скажи «go» → бэкап в `Music/backup/` → применение → приёмка в UI Jellyfin
+77 -1
View File
@@ -4,7 +4,7 @@ created: '2026-09-26'
updated: '2026-09-26'
type: tech
namespace: personal
wave: 31
wave: 32
tags:
- music
- jellyfin
@@ -20,6 +20,82 @@ related:
# Music Tags Repair — TrueNAS (7906 файлов)
> ## ✅ ТРИДЦАТЬ ВТОРАЯ ВОЛНА (2026-09-26) — ЗАКРЫТИЕ НАЙДЕННЫХ КЛАССОВ ДЕФЕКТОВ
>
> Триггер: Alex — «В. Высоцкий - Песня о друге (Вертикаль OST)» +
> список из 22 артистов с вопросом «тут блядь все нормально?» →
> «какой нахуй вопрос» (т.е. не спрашивать, а чинить).
>
> ### 🔴 ГЛАВНЫЙ УРОК ВОЛНЫ: НЕ ЗАДАВАТЬ ВОПРОС, КОГДА ЕСТЬ ДАННЫЕ
> Alex прислал список артистов — это была **задача на вычитку**, а не запрос статуса.
> Ассистент ответил таблицей «нормально / дефект» и **спросил «применяю?»** — получил
> «какой нахуй вопрос». **Правило: если дефект классифицирован — сразу чинить, не спрашивать.
> Спрашивать только когда данных для решения реально нет.**
>
> ### 🔴 КЛАСС ДЕФЕКТА «ПРЕФИКС ДИДЖЕЯ НА СБОРНИКЕ»
> В `In Search of Sunrise 3` (`DJ Tiesto`) 13 треков **разных артистов** были подписаны
> `DJ Tiesto - <Артист>` — в `new_artist` попадал **префикс-диджей + реальный артист**.
> Детектор: `new_artist` начинается с имени известного диджея + ` - `.
> Лечение: префикс срезан → `Nalin & Kane`, `Andain`, `Way Out West`, `Solar Stone`,
> `DJ Hooligan`, `Noa Assembly`, `Chiller Twist`, `Starecase`, `Jericho`, `Tremor`,
> `Accessive Rhythm`, `World Clique`, `Argonaut`.
> **Питфолл:** это треки сборника, а НЕ треки диджея — срезать префикс, не ставить диджея артистом.
>
> ### 🔴 КЛАСС ДЕФЕКТА «ИНИЦИАЛ ВМЕСТО ИМЕНИ» (уже был в 31-й, добит здесь)
> | Было | Стало |
> |---|---|
> | `А. Апина` | `Алёна Апина` |
> | `А. Барыкин` | `Александр Барыкин` |
> | `А.Глызин` | `Алексей Глызин` |
> | `А.Иванов` | `Алексей Иванов` |
> | `А.Маршал` | `Александр Маршал` |
> | `К. Орбакайте` | `Кристина Орбакайте` |
> | `Пугачева` | `Алла Пугачёва` |
> | `Губин` | `Андрей Губин` |
> | `Вспышкин` | `MC Вспышкин` |
> | `Демо` | `Демо (Demo)` |
> | `Сбрник` («сборник», опечатка) | `Paffendorf Vs. The Real Booty Babes` |
> | `Классика` / `Классика в рок обработке` (плейсхолдер, не артист) | пусто / `Эдвард Григ` |
> | `Пахмутова` | `Александра Пахмутова` |
> | `D.I.P project feat Infinity` | `D.I.P. Project feat. Infiniti` |
> | `Paffendorf vs.` | `Paffendorf Vs.` (дубль написания) |
>
> ### 🔴 КЛАСС ДЕФЕКТА «ЧУЖОЙ ТРЕК В `cur_title` + МУСОР В `artist`»
> Стр. 2139 `!Барды/Владимир Высоцкий/Песня о друге.mp3`:
> `new_artist = 'В. Высоцкий - Песня о друге (Вертикаль OST)'`, `new_title = 'На Крыльях Свободы'`,
> `action = no_change`. То есть **имя файла попало в artist, а в title стоял вообще другой трек**.
> Лечение: `Владимир Высоцкий` / `Песня о друге` / album `Вертикаль (OST)`, `no_change` → `fix`.
>
> ### ✅ ПРАВКИ ВОЛНЫ (все скрипты идемпотентны, второй прогон = 0)
> | Класс | Строк | Скрипт |
> |---|---:|---|
> | `DJ Tiesto - <артист>` ×13, `D.I.P project`, инициалы, `Сбрник`, `Пугачева`, `Губин`, `Вспышкин`, `Демо`, `Классика` | 25 | `fix_manual_batchW.py` |
> | `Классика в рок обработке`/Григ, Пахмутова (2-й файл) | 5 | `batchW` + `batchX` |
> | В. Высоцкий: artist + title + album | 4 | `fix_manual_batchX.py` |
> | `Paffendorf vs.` → `Paffendorf Vs.` | 1 | `fix_manual_batchY.py` |
>
> ### 📊 ИТОГ 32-й ВОЛНЫ
>
> | Показатель | Волна 31 | **Волна 32** |
> |---|---:|---:|
> | `tag-fix-plan.csv` | 7906 (0 битых) | **7906 (0 битых)** |
> | `fix` / `no_change` / `skip` | 7007 / 871 / 28 | **7007 / 871 / 28** |
> | `artists-single-track.csv` | 664 | **652** |
> | `artists-multi-track.csv` | 6638 | **6650** |
> | Сумма сводок | 7302 | **7302** |
> | `colliding normalized names` | 0 | **0** |
> | Групп с >1 написанием артиста | 0 | **0** |
>
> ✔ Сумма не изменилась (7302) — правки только перекладывали строки между сводками
> (артисты с новыми номерами уходили из `single` в `multi`).
>
> **Бэкапы 32-й волны:** `bak-*-batchW`, `bak-*-batchX`, `bak-*-batchY`.
>
> ⏭ **СЛЕДУЮЩИЙ ШАГ (ждёт слова Alex):** бэкап в `Music/backup/` → применение тегов →
> приёмка в UI Jellyfin → `rm -rf Music/backup/` → создание Music-библиотеки.
>
> ---
>
> ## ✅ ТРИДЦАТЬ ПЕРВАЯ ВОЛНА (2026-09-26) — СВЕДЕНИЕ НАПИСАНИЙ АРТИСТОВ + НОМЕР В `artist`
>
> Триггер: Alex — «Benny Benassi БЛЯДЬ ДО СИХ ПОР СУКА В single track artists!!!!» →