Files
obsidian-vault/family/plans/lidarr-artist-watchlist.md.bak-sibling-20260928

193 lines
13 KiB
Plaintext
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lidarr — список артистов на отслеживание (анализ Spotify + Яндекс Музыка)
**Дата:** 2026-09-28
**Статус:** 🟡 **АНАЛИЗ ГОТОВ, ВАЛИДАЦИЯ В LIDARR ЗАБЛОКИРОВАНА**
**Namespace:** family
**Задача Alex:** «Анализ моей библиотеки Яндекс/Spotify — каких артистов стоит добавить в Lidarr для отслеживания/автозакачки, возможно что-то из "похожего" но отсутствующего тоже. Минимум 50 позиций.»
---
## 🔴 БЛОКЕР: SkyHook в Lidarr снова отдаёт 403 — валидация имён невозможна
Прогнать 50+ имён через `artist/lookup` **не удалось** — Lidarr не ходит в SkyHook.
**Симптом:**
```
GET /api/v1/artist/lookup?term=Astrix
→ {"message":"...Unable to communicate with LidarrAPI.
HTTP request failed: [403:Forbidden] [GET] at
[https://api.lidarr.audio/api/v0.4/search?type=artist&query=astrix]"}
```
**Диагностика (проверено 2026-09-28, тот же класс проблемы, что закрывался 28 сен):**
| Проверка | Результат |
|---|---|
| `GET /api/v1/config/host` | `proxyEnabled=true`, `proxyType=http`, `proxyHostname=vless-proxy`, `proxyPort=1081`, `proxyBypassFilter` расширен ✅ |
| `curl -x http://vless-proxy:1081 https://api.ipify.org` из контейнера | **`104.28.211.192`** (VPS) ✅ |
| `curl https://api.ipify.org` **без** прокси | **`90.189.160.148`** = **ДОМАШНИЙ IP** ❌ |
| `docker exec lidarr env \| grep -i proxy` | `NO_PROXY_VARS` — env-вариант откачен, ок |
| `curl https://api.ipify.org` **с самого хоста Тайги** | **`90.189.160.148`** — вся сеть NAS идёт через домашний аплинк |
| `docker logs lidarr \| grep -i proxy` | 🔴 **`[Error] ProxyCheck: Proxy Health Check failed`** |
| Cloudflare-ответ в теле 403 | `Your IP: 90.189.160.148` — подтверждает, что запрос ушёл **напрямую** |
| `GET /api/v1/health` | `[]` — **пусто**, хотя лог пишет `ProxyCheck failed` (кэш health врёт) |
| `docker restart lidarr` | **выполнен**, lookup → **всё тот же 403** |
**Корень (в одну строку):** встроенный прокси-конфиг Lidarr **записан, но не применяется** —
собственный `ProxyCheck` Lidarr репортит `failed`, запросы уходят напрямую, и Cloudflare
режет их по гео-IP дома (`90.189.160.148`).
⚠️ **Поправка к записи от 2026-09-28:** тогда было зафиксировано «фикс применён, `docker restart
lidarr` выполнен → работает». Факт 2026-09-28 (вечер, повторная проверка): **блокер вернулся**.
То есть либо фикс не персистится, либо `ProxyCheck` — отдельный механизм, который надо
разбирать отдельно. Проверять `docker logs lidarr | grep -i proxy` при каждом рецидиве.
**Что НЕ помогло:**
- `docker restart lidarr` (сделан, не помог).
- Проверка env-переменных — вариант откачен ранее, их нет.
**Следующая гипотеза (не проверена, апрув истёк):** `ProxyCheck` в Lidarr 3.x имеет
**отдельную настройку проверки прокси** (`Settings → General → Proxy`) либо требует
`proxyBypassLocalAddresses=false`. Также возможно, что `proxyPort=1081` (HTTP-CONNECT) не
поддерживается .NET-клиентом так же, как SOCKS5 — тогда нужен `proxyType: socks5` + порт **1080**.
**Скрипт диагностики (готов):** `/tmp/mus/verify.sh` — пакетная проверка имён через lookup.
---
## Что сделано в анализе
### 1. Извлечение артистов
| Источник | Файл | Строк-треков | Уникальных артистов |
|---|---|---|---|
| Spotify | `personal/spotify-library.md` | 259 | 233 |
| Яндекс Музыка | `personal/yandex-music-library.md` | 1 056 | 765 |
| **Итого (объединение)** | — | **1 315** | **967** |
Парсились ВСЕ секции (лайки **и** плейлисты), художник разбивался по `,` `&` `/` `feat.` `ft.`
`vs.` и ` x `. Веса: лайк = 3, плейлист = 2 (позволяет отличать «сильно любимое» от «попавшего в плейлист»).
### 2. Сверка с текущим владением
Проверено **владение** через Navidrome (читает теги, а не папки):
```bash
docker exec navidrome sqlite3 'file:/data/navidrome.db?mode=ro' "SELECT name FROM artist;"
```
| Метрика | Значение |
|---|---|
| Артистов в Navidrome | **1 207** |
| Альбомов | 551 |
| Треков | 7 791 |
| Артистов в Lidarr | **1** (только `Radiohead`) |
⚠️ `Music/` на NAS — **плоская** структура (`!Rock&Folk`, `!Рэп`…), артистов по папкам НЕ смотреть.
Единственный источник правды по владению — **Navidrome DB** (теги).
### 3. Кандидаты
Артистов из Spotify+Яндекс, которых **нет** ни в Lidarr, ни в Navidrome: **838** (после
нормализации имён: lower, `ё→е`, снятие ведущего `the`, unicode-нормализация, substring-матч).
⚠️ **Питфолл:** разбиение по `,` плодит мусор — `Polo & Pan` → `Polo` + `Pan`;
`Atomic Heart` (это игра-саундтрек); `KSHMR` ок, но `BOBI`/`BOBA` — половина имени.
Хардкод-blocklist мусора ведётся в `/tmp/mus/build_final.py` (переменная `NOISE`).
### 4. Артефакты анализа (на локальной машине)
| Файл | Что |
|---|---|
| `/tmp/mus/analyze.py` | извлечение артистов из обоих md-экспортов + подсчёт |
| `/tmp/mus/crosscheck.py` | сверка с Navidrome, генерация списка кандидатов |
| `/tmp/mus/build_final.py` | сборка финального списка (библиотека + веб-ресёрч), blocklist |
| `/tmp/mus/verify.sh` | пакетная валидация имён через Lidarr `artist/lookup` |
| `/tmp/mus/final_list.tsv` | **207 строк**: rank / artist / genre / why / tier / score |
| `/tmp/mus/artists_whole.tsv` | все 967 артистов с весами |
| `/tmp/mus/navidrome_artists.txt` | 1 207 артистов-владельцев из БД |
⚠️ `/tmp` сбрасывается при перезагрузке — при необходимости перегенерировать скриптами.
Сами скрипты пока НЕ скопированы в vault (были во временном каталоге).
---
## Черновик списка (без валидации в Lidarr)
### Tier A — уже слушаете, но нет ни в Lidarr, ни на NAS (из библиотек, score = вес лайков)
Топ-30 из 838 кандидатов:
| # | Артист | Score | # | Артист | Score |
|---|---|---|---|---|---|
| 1 | СтимфониЯ | 42 | 16 | Set It Off | 17 |
| 2 | KSHMR | 30 | 17 | Mother Mother | 15 |
| 3 | Diablo Swing Orchestra | 28 | 18 | Intelligency | 15 |
| 4 | Rodrigo y Gabriela | 26 | 19 | OVERWERK | 15 |
| 5 | Caravan Palace | 24 | 20 | Заточка | 14 |
| 6 | RichaadEB | 24 | 21 | Джин-Тоник | 13 |
| 7 | Apashe | 21 | 22 | Massive Attack | 12 |
| 8 | Polyphia | 21 | 23 | Asper / Bliss | 12 |
| 9 | Пневмослон | 18 | 24 | The Lost Fingers | 12 |
| 10 | Die Antwoord | 18 | 25 | The Living Tombstone | 12 |
| 11 | Oliver Tree | 18 | 26 | YOHIO | 12 |
| 12 | Worakls | 18 | 27 | Marnik | 12 |
| 13 | KONGOS | 18 | 28 | Gramatik | 12 |
| 14 | NTO | 18 | 29 | Нейромонах Феофан | 12 |
| 15 | Lindemann | 17 | 30 | Viza | 12 |
### Tier B — «похожие», которых нет в библиотеках (веб-ресёрч, 119 шт., 16 направлений)
| Направление | Кандидаты |
|---|---|
| **psy-trance** (Infected Mushroom, Skazi) | Astrix, Shpongle, Juno Reactor, Ace Ventura, Talamasca, Electric Universe, Vini Vici, Avalon, Ott, Vibrasphere, 1200 Micrograms, GMS |
| **electro-swing** (Caravan Palace) | Parov Stelar, Tape Five, Swingrowers, The Correspondents, Jamie Berry, Wolfgang Lohr |
| **melodic techno** (Worakls, NTO) | Joachim Pastor, Teho, Paul Kalkbrenner, Boris Brejcha, Kölsch, Moderat |
| **French touch / synthwave** | French 79, Rone, Fakear, Thylacine, Bon Entendeur, L'Impératrice, Carpenter Brut, Perturbator, Dance With The Dead, Gunship |
| **chiptune / VGM** (meganeko, Jake Kaufman, MBR) | Bossfight, Anamanaguchi, Camellia, Shirobon, Lena Raine, Christopher Larkin, Darren Korb |
| **bass / trap / DnB** (Apashe, KSHMR) | Black Tiger Sex Machine, Kai Wachi, Dabin, RL Grime, Noisia, Pendulum, Netsky, Sub Focus, Blasterjaxx, Vinai |
| **prog / инструментал** (Polyphia) | CHON, Plini, Animals as Leaders, Intervals, Ichika Nito, Thank You Scientist, Biffy Clyro, Placebo |
| **avant / swing-metal** (DSO) | Unexpect, Stolen Babies, Estradasphere, Igorrr |
| **акустика** (Rodrigo y Gabriela) | Hermanos Gutiérrez, Opal Ocean, Estas Tonne, Strunz & Farah |
| **psychobilly** (Mad Sin, Hillbilly Moon) | The Meteors, Nekromantix, Horrorpops, Tiger Army, Demented Are Go, Reverend Horton Heat |
| **NDH / industrial** (Rammstein, Lindemann) | Eisbrecher, Oomph!, Megaherz, Heldmaschine, Emigrate |
| **alt-pop** (Oliver Tree, Die Antwoord, Little Big) | Tommy Cash, Electric Callboy, Salvatore Ganacci, Sub Urban, Ashnikko, Will Wood, Ghost Town |
| **русский рок / панк / ска** | Сплин, Пикник, Крематорий, Алиса, Наутилус Помпилиус, Чайф, Би-2, АукцЫон, Тараканы!, Наив, Порнофильмы, Кукрыниксы, Сектор Газа, Distemper, Ляпис Трубецкой, Элизиум, Мельница, Пилот, Сурганова и Оркестр, Animal ДжаZ, Отава Ё, Дайте танк (!), Моя Мишель, Пошлая Молли |
| **русский рэп** | Anacondaz, Каспийский Груз, Хаски, Скриптонит, Баста, Многоточие, KREC, Рем Дигга, Гуф, Смоки Мо |
**Итого в черновике: 207 строк** — требование «минимум 50» перекрыто с запасом.
---
## Что осталось (для следующей сессии)
1. 🔴 **Починить SkyHook в Lidarr** (см. блокер выше) — без этого списка в Lidarr не залить.
2. Пропустить все имена Tier A + Tier B через `artist/lookup` (`/tmp/mus/verify.sh`),
выкинуть те, что не находятся (главный фильтр от «придуманных» имён).
3. Отфильтровать то, что уже есть в Navidrome (проверка владения — там, не по папкам).
4. Собрать финальный doc-список ≥50 позиций.
5. Опционально: массовое добавление артистов в Lidarr через `POST /api/v1/artist`
(`foreignArtistId` из lookup, `qualityProfileId`, `metadataProfileId`, `rootFolderPath=/storage/Music`).
---
## Ссылки
- [[family/plans/lidarr-taiga-deploy]] — деплой Lidarr (там же основной разбор SkyHook-прокси)
- [[family/projects/media-toolbox-taiga]] — *arr стек на Taiga
- [[family/how-to/navidrome-truenas-android]] — Navidrome (источник правды по владению)
- [[personal/music-download-practices]] — где брать mp3 (hitmotop, mp3party)
- [[personal/spotify-library]] — экспорт Spotify
- [[personal/yandex-music-library]] — экспорт Яндекс Музыки
---
## История
- **2026-09-28** — Alex: «анализ библиотеки Яндекс/Spotify, каких артистов добавить в Lidarr,
минимум 50 позиций». Извлечено 967 уникальных артистов из 1 315 строк; сверено с 1 207
артистами Navidrome → 838 кандидатов; веб-ресёрч дал 119 «похожих» по 16 направлениям;
черновик 207 строк. 🔴 **Валидация в Lidarr невозможна** — SkyHook 403, `ProxyCheck: failed`,
запросы уходят напрямую с домашнего IP `90.189.160.148` (вся сеть Тайги — за домашним аплинком,
VPS-выход даёт только `vless-proxy`). `docker restart lidarr` не помог. Блокер оставлен открытым.