193 lines
13 KiB
Plaintext
Executable File
193 lines
13 KiB
Plaintext
Executable File
# 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` не помог. Блокер оставлен открытым.
|