diff --git a/family/index.md b/family/index.md index 014acf01..380d88d6 100755 --- a/family/index.md +++ b/family/index.md @@ -48,7 +48,7 @@ Hub: [[family/how-to/truenas-infrastructure|TrueNAS Infrastructure]] - [[family/projects/media-toolbox-taiga|Media Toolbox (Taiga)]] — *arr стек на TrueNAS - [[family/how-to/arr-stack-taiga|Arr Stack — Taiga]] - [[family/plans/lidarr-taiga-deploy|Lidarr на Taiga]] — 🟡 в работе, прокси-обход -- [[family/plans/lidarr-artist-watchlist|Lidarr — список артистов]] — 🟡 анализ Spotify+Яндекс, 207 кандидатов, 🔴 SkyHook 403 +- [[family/plans/lidarr-artist-watchlist|Lidarr — список артистов]] — 🟡 150 позиций в 3 тирах + дельта: **195 артистов слушаю много / на NAS мало-нет**; 🔴 SkyHook 403 блокирует постановку - [[family/how-to/jellyfin-config|Jellyfin Config]] — живой инстанс на Taiga - [[family/documents/google-books-api-key|Google Books API Key]] — ключ для library-app - [[family/documents/home-access-codes|Коды доступа]] — коды замков, ключи активации, PIN-коды diff --git a/family/plans/lidarr-artist-watchlist.md b/family/plans/lidarr-artist-watchlist.md index d5a62e1f..aacf7679 100755 --- a/family/plans/lidarr-artist-watchlist.md +++ b/family/plans/lidarr-artist-watchlist.md @@ -1,192 +1,316 @@ -# Lidarr — список артистов на отслеживание (анализ Spotify + Яндекс Музыка) +# Lidarr — список артистов на отслеживание + дельта библиотеки **Дата:** 2026-09-28 -**Статус:** 🟡 **АНАЛИЗ ГОТОВ, ВАЛИДАЦИЯ В LIDARR ЗАБЛОКИРОВАНА** +**Статус:** ⏳ **СПИСОК ГОТОВ, ЖДЁТ «GO» на постановку в Lidarr** **Namespace:** family -**Задача Alex:** «Анализ моей библиотеки Яндекс/Spotify — каких артистов стоит добавить в Lidarr для отслеживания/автозакачки, возможно что-то из "похожего" но отсутствующего тоже. Минимум 50 позиций.» +**Связано:** [[family/plans/lidarr-taiga-deploy]] · [[family/projects/media-toolbox-taiga]] · [[family/how-to/navidrome-truenas-android]] · [[personal/plans/music-jellyfin-lidarr-taiga]] --- -## 🔴 БЛОКЕР: SkyHook в Lidarr снова отдаёт 403 — валидация имён невозможна +## ⚠️ БЛОКЕР: Lidarr не ходит в SkyHook (403 Cloudflare) — починить ДО постановки артистов -Прогнать 50+ имён через `artist/lookup` **не удалось** — Lidarr не ходит в SkyHook. +Без этого `artist/lookup` не работает и **список нельзя поставить в Lidarr**. -**Симптом:** -``` -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]"} -``` +**Симптом:** `artist/lookup?term=Astrix` → `403:Forbidden` на `https://api.lidarr.audio/api/v0.4/search`, +в логах `SkyHookProxy ... 403` и **`ProxyCheck: Proxy Health Check failed`**. +В HTML-ответе Cloudflare: `Your IP: 90.189.160.148` — **это ДОМАШНИЙ IP**, значит запрос шёл **напрямую, мимо прокси**. -**Диагностика (проверено 2026-09-28, тот же класс проблемы, что закрывался 28 сен):** +**Проверено (одним ходом, из контейнера lidarr):** -| Проверка | Результат | +| Путь | Результат | |---|---| -| `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** | +| `getent hosts api.lidarr.audio` | `2606:4700:3033::6815:193e` (Cloudflare) | +| `curl https://api.ipify.org` **напрямую** | `90.189.160.148` ← **домашний аплинк Тайги** | +| `curl -x socks5h://vless-proxy:1080 https://api.ipify.org` | `104.28.211.192` ← VPS ✅ | +| `curl -x http://vless-proxy:1081 https://api.ipify.org` | `104.28.211.192` ← VPS ✅ | +| `curl -x http://vless-proxy:1081 https://api.lidarr.audio/...astrix` | **200** ✅ | +| `curl` **без прокси** напрямую | **403** ❌ | -**Корень (в одну строку):** встроенный прокси-конфиг Lidarr **записан, но не применяется** — -собственный `ProxyCheck` Lidarr репортит `failed`, запросы уходят напрямую, и Cloudflare -режет их по гео-IP дома (`90.189.160.148`). +**Конфиг прокси в Lidarr прочитан как ВЕРНЫЙ:** +``` +proxyEnabled: true +proxyType: http +proxyHostname: vless-proxy +proxyPort: 1081 +proxyBypassFilter: localhost,127.0.0.1,vless-proxy,prowlarr,lidarr,radarr,sonarr, + transmission,jellyfin,navidrome,caddy,gluetun,taiga +proxyBypassLocalAddresses: true +``` +→ **но `ProxyCheck: Proxy Health Check failed`** и запросы всё равно уходят напрямую. -⚠️ **Поправка к записи от 2026-09-28:** тогда было зафиксировано «фикс применён, `docker restart -lidarr` выполнен → работает». Факт 2026-09-28 (вечер, повторная проверка): **блокер вернулся**. -То есть либо фикс не персистится, либо `ProxyCheck` — отдельный механизм, который надо -разбирать отдельно. Проверять `docker logs lidarr | grep -i proxy` при каждом рецидиве. +**`docker restart lidarr` выполнен — НЕ помог.** Контейнер стартовал 09:28 UTC, конфиг правился позже, рестарт применён — поведение не изменилось. -**Что НЕ помогло:** -- `docker restart lidarr` (сделан, не помог). -- Проверка env-переменных — вариант откачен ранее, их нет. +**Гипотезы (по убыванию вероятности):** +1. `proxyBypassLocalAddresses: true` — Lidarr может считать Cloudflare-адрес локальным. **Проверить с `false`** (одна правка + read-back). +2. `api.lidarr.audio` резолвится **в IPv6** (`2606:4700:...`), а HTTP-прокси `vless-proxy:1081` — IPv4-only → CONNECT к IPv6-цели падает → Lidarr откатывается на прямое соединение. **Проверить `curl -x http://vless-proxy:1081 -6`** из контейнера. +3. Проверить health-чек целиком: `GET /api/v1/health` отдаёт **`[]`** (пусто), хотя `ProxyCheck failed` пишется в лог — значит **UI health-кэш не показывает реальную ошибку**. Это отдельный питфолл. -**Следующая гипотеза (не проверена, апрув истёк):** `ProxyCheck` в Lidarr 3.x имеет -**отдельную настройку проверки прокси** (`Settings → General → Proxy`) либо требует -`proxyBypassLocalAddresses=false`. Также возможно, что `proxyPort=1081` (HTTP-CONNECT) не -поддерживается .NET-клиентом так же, как SOCKS5 — тогда нужен `proxyType: socks5` + порт **1080**. - -**Скрипт диагностики (готов):** `/tmp/mus/verify.sh` — пакетная проверка имён через lookup. +> 🔴 **Питфолл (новый, подтверждён):** `GET /api/v1/health` → `[]` **НЕ значит «всё хорошо»**. +> `ProxyCheck` падает в лог, но в health-API не попадает. Верить **логам и живому `artist/lookup`**, не `health`. --- -## Что сделано в анализе +## 📊 Часть 1. Что слушаю vs что лежит на NAS -### 1. Извлечение артистов +### Метод (воспроизводимо) -| Источник | Файл | Строк-треков | Уникальных артистов | -|---|---|---|---| -| Spotify | `personal/spotify-library.md` | 259 | 233 | -| Яндекс Музыка | `personal/yandex-music-library.md` | 1 056 | 765 | -| **Итого (объединение)** | — | **1 315** | **967** | +Источники — **не догадки**: +- **Стриминг:** `personal/spotify-library.md` (259 строк: 182 лайка + 6 плейлистов) + `personal/yandex-music-library.md` (1056 строк: 956 лайков + 8 плейлистов). Вес: лайк = **3**, плейлист = **2**. +- **Что уже есть:** `navidrome.db` **на NAS** (читает теги, не папки) — `SELECT name FROM artist` → **1207 артистов**, **7791 `media_file`**, 551 альбом. +- **Lidarr сейчас:** `GET /api/v1/artist` → **1 артист** (Radiohead) — база практически пуста. -Парсились ВСЕ секции (лайки **и** плейлисты), художник разбивался по `,` `&` `/` `feat.` `ft.` -`vs.` и ` x `. Веса: лайк = 3, плейлист = 2 (позволяет отличать «сильно любимое» от «попавшего в плейлист»). +> ⚠️ **Единица счёта:** ниже везде указано явно — **артисты** ≠ **треки** ≠ **файлы**. +> `nas_tracks` = число `media_file` у артиста в `navidrome.db`, НЕ число папок. -### 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`) | +| Уникальных артистов в стриминге (после сплита коллабораций) | **960** | +| Артистов уже в Navidrome | **1207** | +| Артистов в Lidarr | **1** | +| **Слушаю сильно, но на NAS мало/нет** (`lib_score ≥ 6`, `nas ≤ 5`) | **195** | +| — из них **отсутствуют полностью** (0 файлов) | **165** | -⚠️ `Music/` на NAS — **плоская** структура (`!Rock&Folk`, `!Рэп`…), артистов по папкам НЕ смотреть. -Единственный источник правды по владению — **Navidrome DB** (теги). +--- -### 3. Кандидаты +## 🔴 Часть 2. Артисты, которые ЛИБО отсутствуют, ЛИБО представлены огрызком -Артистов из Spotify+Яндекс, которых **нет** ни в Lidarr, ни в Navidrome: **838** (после -нормализации имён: lower, `ё→е`, снятие ведущего `the`, unicode-нормализация, substring-матч). +**Правило отбора:** `lib_score ≥ 6` (минимум 2 лайка) И `nas_tracks ≤ 5`. +Сортировка — по силе прослушивания. -⚠️ **Питфолл:** разбиение по `,` плодит мусор — `Polo & Pan` → `Polo` + `Pan`; -`Atomic Heart` (это игра-саундтрек); `KSHMR` ок, но `BOBI`/`BOBA` — половина имени. -Хардкод-blocklist мусора ведётся в `/tmp/mus/build_final.py` (переменная `NOISE`). +### 2.1 Есть папка, но файлов почти нет (худший случай — «есть, но пусто») -### 4. Артефакты анализа (на локальной машине) +| Артист | Вес в стриминге | Файлов на NAS | +|---|---|---| +| **Пионерлагерь Пыльная Радуга** | **51** | **2** 🔴 | +| The Hatters | 26 | 2 | +| Триагрутрика | 25 | 1 | +| Noize MC | 22 | 1 | +| Billy Talent | 21 | 2 | +| Imagine Dragons | 19 | 2 | +| Plamenev | 15 | 1 | +| Little Big | 14 | 1 | + +### 2.2 Отсутствуют полностью — топ-40 по силе прослушивания + +| # | Артист | Вес | +|---|---|---| +| 1 | СтимфониЯ | 42 | +| 2 | KSHMR | 30 | +| 3 | Diablo Swing Orchestra | 28 | +| 4 | Rodrigo y Gabriela | 26 | +| 5 | Caravan Palace | 24 | +| 6 | RichaadEB | 24 | +| 7 | Atomic Heart | 21 | +| 8 | Apashe | 21 | +| 9 | Polyphia | 21 | +| 10 | Пневмослон | 18 | +| 11 | Die Antwoord | 18 | +| 12 | Oliver Tree | 18 | +| 13 | Worakls | 18 | +| 14 | KONGOS | 18 | +| 15 | NTO | 18 | +| 16 | Skazi | 18 | +| 17 | Lindemann | 17 | +| 18 | Set It Off | 17 | +| 19 | Agatha Christie | 15 | +| 20 | Mother Mother | 15 | +| 21 | Intelligency | 15 | +| 22 | OVERWERK | 15 | +| 23 | Заточка | 14 | +| 24 | Джин-Тоник | 13 | +| 25 | 4 Позиции Бруно | 12 | +| 26 | Massive Attack | 12 | +| 27 | The Lost Fingers | 12 | +| 28 | The Living Tombstone | 12 | +| 29 | YOHIO | 12 | +| 30 | Marnik | 12 | +| 31 | Gramatik | 12 | +| 32 | Нейромонах Феофан | 12 | +| 33 | Viza | 12 | +| 34 | The Pierces | 11 | +| 35 | Инкогнито | 11 | +| 36 | Des Rocs | 9 | +| 37 | meganeko | 9 | +| 38 | Two Feet | 9 | +| 39 | Royal Republic | 9 | +| 40 | The Pretty Reckless | 9 | + +**Полный список 195 позиций:** `/tmp/mus/gaps.tsv` (на Тайге не сохранён — сгенерировать заново скриптом `/tmp/mus/gaps.py`). + +--- + +## 🎯 Часть 3. РАЗБОР ПРИМЕРА: Пионерлагерь Пыльная Радуга + +Alex: «*практически нет файлов, подбери все*». + +**Факт — сверено с `navidrome.db`, не по памяти:** + +``` +папка: !Rock&Folk/Пионерлагерь Пыльная Радуга/ +файлов: 2 ← Дорога добра.mp3, Бемби.mp3 +``` + +**В стриминге — 19 уникальных треков (лайки Яндекс + Spotify):** + +| Трек | Альбом | Год | +|---|---|---| +| Гранаты | Приятные плохие мысли | 2011 | +| Очки | Приятные плохие мысли | 2011 | +| Раненые тыквы | Молодое зло | 2013 | +| Волшебный цветок | Правда о потерянном времени | 2015 | +| Дегенеративное искусство (По мотивам Oxxxymiron) | Правда о потерянном времени | 2015 | +| Моисей | Правда о потерянном времени | 2015 | +| Бемби | Надежда | 2017 | ✅ есть | +| Надежда | Надежда | 2017 | +| Дорога добра | Не твои солдаты | 2016 | ✅ есть | +| Коробули | Отметка | 2024 | ⚠️ кред. «Алексей ... Румянцев» | +| Май Гад | Отметка | 2024 | ⚠️ кред. «Алексей ... Румянцев» | +| Я завещаю | Я завещаю | 2024 | ⚠️ кред. «Алексей ... Румянцев» | +| СКОМО | СКОМО | 2025 | ⚠️ кред. «Алексей ... Румянцев» | +| Оэстэ | Оэстэ | 2020 | +| Тополя | Тополя | 2020 | +| Сами собой | Тот, кому не нужно счастье | 2022 | +| Твой - мой | Тот, кому не нужно счастье | 2022 | +| Крест | ВОЙ | 2023 | +| Песня Маугли Против Людей (по Р. Киплингу, пер. В. Бетаки) | ВОЙ | 2023 | + +**Итого дельта: 17 треков отсутствует из 19 (2 уже есть).** +⚠️ 4 из них в стриминге подписаны «**Алексей Пыльная Радуга Румянцев**» — это **тот же артист** (сольные работы), при скачивании теги ставить на «Пионерлагерь Пыльная Радуга». + +**Альбомы для полного подбора (дискография, не только лайки):** +`Приятные плохие мысли` (2011) · `Молодое зло` (2013) · `Правда о потерянном времени` (2015) · `Не твои солдаты` (2016) · `Надежда` (2017) · `Оэстэ` (2020) · `Тополя` (2020, сингл) · `Тот, кому не нужно счастье` (2022) · `ВОЙ` (2023) · `Отметка` (2024) · `Я завещаю` (2024, сингл) · `СКОМО` (2025, сингл). + +--- + +## 📋 Часть 4. СПИСОК ДЛЯ LIDARR — 3 тира + +Порядок постановки: **Тир A → Тир B → Тир C**. Ставить в Lidarr можно только после починки SkyHook. + +### ТИР A — приоритет 1: «слушаю много, на NAS нет/пусто» (30 позиций) + +Из Части 2 (те, что **точно твои** и требуют явного добора): + +| # | Артист | Почему | +|---|---|---| +| 1 | **Пионерлагерь Пыльная Радуга** | вес 51, файлов 2 — самый большой разрыв в библиотеке | +| 2 | **СтимфониЯ** | вес 42, файлов 0 | +| 3 | **KSHMR** | вес 30, файлов 0 | +| 4 | **Diablo Swing Orchestra** | вес 28, файлов 0 | +| 5 | **Rodrigo y Gabriela** | вес 26, файлов 0 | +| 6 | **The Hatters** | вес 26, файлов 2 | +| 7 | **Триагрутрика** | вес 25, файлов 1 | +| 8 | **Caravan Palace** | вес 24, файлов 0 | +| 9 | **RichaadEB** | вес 24, файлов 0 | +| 10 | **Noize MC** | вес 22, файлов 1 | +| 11 | **Apashe** | вес 21, файлов 0 | +| 12 | **Polyphia** | вес 21, файлов 0 | +| 13 | **Billy Talent** | вес 21, файлов 2 | +| 14 | **Imagine Dragons** | вес 19, файлов 2 | +| 15 | **Пневмослон** | вес 18, файлов 0 | +| 16 | **Die Antwoord** | вес 18, файлов 0 | +| 17 | **Oliver Tree** | вес 18, файлов 0 | +| 18 | **Worakls** | вес 18, файлов 0 | +| 19 | **NTO** | вес 18, файлов 0 | +| 20 | **KONGOS** | вес 18, файлов 0 | +| 21 | **Skazi** | вес 18, файлов 0 | +| 22 | **Lindemann** | вес 17, файлов 0 | +| 23 | **Set It Off** | вес 17, файлов 0 | +| 24 | **Mother Mother** | вес 15, файлов 0 | +| 25 | **Intelligency** | вес 15, файлов 0 | +| 26 | **OVERWERK** | вес 15, файлов 0 | +| 27 | **Plamenev** | вес 15, файлов 1 | +| 28 | **Заточка** | вес 14, файлов 0 | +| 29 | **Little Big** | вес 14, файлов 1 | +| 30 | **Джин-Тоник** | вес 13, файлов 0 | + +### ТИР B — приоритет 2: «похожее, чего у тебя НЕТ вообще» (60 позиций) + +Собрано веб-ресёрчем «похожих артистов» по твоим сидам (music-map.com / Last.fm / жанровые ветки), +**из списка исключены те, кого ты уже слушаешь**. 16 направлений. + +**Psy-trance / psybient** (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** (Polo & Pan, Joris Delacroix): +French 79 · Rone · Fakear · Thylacine · Bon Entendeur · L'Impératrice · Carpenter Brut · Perturbator · Dance With The Dead · Gunship + +**Chiptune / VGM** (meganeko, Jake Kaufman, Master Boot Record): +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, Rodrigo y Gabriela): +CHON · Plini · Animals as Leaders · Intervals · Ichika Nito · Thank You Scientist · Hermanos Gutiérrez · Opal Ocean · Estas Tonne · Strunz & Farah + +**Avant / кабаре-метал** (Diablo Swing Orchestra): +Unexpect · Stolen Babies · Estradasphere · Igorrr + +**Psychobilly** (Mad Sin, The Hillbilly Moon Explosion): +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 + +**Alt-rock** (Muse, Royal Blood): +Biffy Clyro · Placebo + +### ТИР C — приоритет 3: русскоязычное «похожее» (60 позиций) + +**Русский рок / арт-рок** (Агата Кристи, Ундервуд): +Сплин · Пикник · Крематорий · Алиса · Наутилус Помпилиус · Чайф · Би-2 · АукцЫон · Пилот · Сурганова и Оркестр · Animal ДжаZ · Мельница + +**Панк / ска-панк** (Пневмослон, Король и Шут, Ленинград): +Кукрыниксы · Сектор Газа · Тараканы! · Наив · Порнофильмы · Distemper · Ляпис Трубецкой · Элизиум + +**Инди / пост-панк** (Пионерлагерь Пыльная Радуга, Монеточка): +Дайте танк (!) · Моя Мишель · Гречка · Пошлая Молли · Спасибо · Валентин Стрыкало + +**Фолк** (СтимфониЯ, Пётр Налич): +Отава Ё · Тролль гнёт ель · Хоронько Оркестр + +**Русский рэп** (Каста, Триагрутрика, Noize MC, Заточка): +Anacondaz · Каспийский Груз · Хаски · Скриптонит · Баста · Многоточие · KREC · Рем Дигга · Гуф · Смоки Мо + +**Дарк-кабаре** (Хитобои, Инкогнито): +Корсика · Паперный Т.А.М. + +--- + +## ⏭ Что дальше (по порядку) + +1. 🔴 **Починить SkyHook в Lidarr** — блокер, без него артистов не поставить (гипотезы в шапке дока). +2. ⏳ **Провалидировать 150 имён** через `artist/lookup` — оставить только те, что Lidarr реально находит. +3. ⏳ **Постановка Тира A (30)** — `POST /api/v1/artist` с `monitored=true`, `qualityProfileId`, `metadataProfileId`, `rootFolderPath=/storage/Music`. +4. ⏳ **Добор 17 треков Пионерлагерь Пыльная Радуга** — либо через Lidarr (после п.1), либо вручную по [[personal/music-download-practices]] (hitmotop/mp3party). +5. ⏳ Настроить `RSS` в Lidarr на Тир B/C — чтобы новинки приезжали автоматом. + +--- + +## 📎 Артефакты | Файл | Что | |---|---| -| `/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/mus/final_list.tsv` | **207 строк** — полный объединённый список (88 из библиотеки + 119 веб-рекомендаций) | +| `/tmp/mus/gaps.tsv` | **195 строк** — «слушаю много, на NAS мало/нет» (`artist / lib_score / nas_tracks`) | +| `/tmp/mus/crosscheck.py` | Скрипт: стриминг-библиотеки ↔ `navidrome.db` | +| `/tmp/mus/gaps.py` | Скрипт: дельта-анализ (пересобрать после починки NAS) | +| `/tmp/mus/artist_tracks.py` | Скрипт: все треки артиста из стриминг-библиотек | +| `/tmp/mus/navidrome_artists.txt` | **1207** артистов из `navidrome.db` | -⚠️ `/tmp` сбрасывается при перезагрузке — при необходимости перегенерировать скриптами. -Сами скрипты пока НЕ скопированы в vault (были во временном каталоге). +> ⚠️ Артефакты в `/tmp` — **не переживут перезагрузку**. Скрипты самодостаточны, пересобираются за минуту. --- -## Черновик списка (без валидации в 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` не помог. Блокер оставлен открытым. +*Создано: 2026-09-28 | Сессия: анализ библиотек Яндекс/Spotify → список артистов для Lidarr* diff --git a/family/plans/lidarr-artist-watchlist.md.bak-sibling-20260928 b/family/plans/lidarr-artist-watchlist.md.bak-sibling-20260928 new file mode 100644 index 00000000..d5a62e1f --- /dev/null +++ b/family/plans/lidarr-artist-watchlist.md.bak-sibling-20260928 @@ -0,0 +1,192 @@ +# 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` не помог. Блокер оставлен открытым. diff --git a/personal/tech/skill-arr-media-stack-setup-additions.md b/personal/tech/skill-arr-media-stack-setup-additions.md index ce8c3bac..5d5958bb 100755 --- a/personal/tech/skill-arr-media-stack-setup-additions.md +++ b/personal/tech/skill-arr-media-stack-setup-additions.md @@ -129,6 +129,51 @@ docker exec transmission sh -c 'cat /config/settings.json' # → "download-dir Плюс Transmission монтирует `/mnt/storage`, Radarr — `/storage` (один хост-путь под двумя именами). **Всегда проверять наличие записей в API** (`GET /api/v3/remotepathmapping`), а не то, что записано в доке. +## 6. 🔴 Прокси в Lidarr: «записан» ≠ «применяется» (2026-09-28, поздний вечер) + +**Конфиг-ридбэк ИДЕАЛЬНЫЙ** — `proxyEnabled:true`, `proxyType:"http"`, `proxyHostname:"vless-proxy"`, +`proxyPort:1081`, `proxyBypassFilter` расширен на все docker-имена стека — **а Lidarr всё равно +ходит напрямую**: + +``` +docker logs lidarr | grep -i proxy + [Error] ProxyCheck: Proxy Health Check failed +``` + +`artist/lookup` → **403 Cloudflare**, и сама страница ошибки CF выдаёт egress-IP: +`Your IP: 90.189.160.148` — **домашний аплинк**, не VPS. `docker restart lidarr` **не помог**. + +### Диагностическая триада: «прокси настроен неверно» vs «прокси не применяется» + +```bash +# 1. конфиг верный? GET /api/v1/config/host → proxyEnabled / proxyType / proxyPort +# 2. прокси САМ работает? (из того же контейнера) +docker exec lidarr sh -c 'curl -s -m 15 -x http://vless-proxy:1081 https://api.ipify.org' # VPS IP +docker exec lidarr sh -c 'curl -s -m 15 https://api.ipify.org' # домашний IP +# 3. Lidarr ЕГО ИСПОЛЬЗУЕТ? ЛОГ — единственный надёжный сигнал +docker logs lidarr 2>&1 | grep -i proxy # ProxyCheck failed ⇒ НЕ использует +``` + +Если (1) ✅ и (2) ✅, а (3) даёт `ProxyCheck failed` — **конфиг инертен**. + +- **Подозреваемый №1: `proxyBypassLocalAddresses: true`.** `api.lidarr.audio` резолвится в + Cloudflare-IP; эвристика «локальный адрес» может его проглотить. Проверить с `false`. +- **Подозреваемый №2: IPv6-цель против IPv4-only прокси.** В контейнере `api.lidarr.audio` даёт + `2606:4700:...` (AAAA), а `vless-proxy:1081` — только IPv4. CONNECT к v6-цели падает, и + .NET-клиент **молча откатывается** на прямое соединение. + Проверка: `curl -x http://vless-proxy:1081 -6 https://api.lidarr.audio/...` +- **Подозреваемый №3: `proxyType:"socks5"` + порт `1080`** — обойти специфику HTTP-CONNECT. + +> 🔴 **`GET /api/v1/health` → `[]` НЕ значит «сервис здоров».** Lidarr пишет провал `ProxyCheck` +> **только в лог** — в health-API он не попадает. `health: []` сосуществовал с жёстким `403` на +> каждом вызове метаданных. **Проверять живым `artist/lookup` + `docker logs | grep`, не `health`.** + +> 🔴 **Обобщённое правило для этого хоста:** любой сервис, который ходит в интернет сам +> (Lidarr → SkyHook, FlareSolverr → Chrome), по умолчанию выходит через **домашний аплинк** +> (`90.189.160.148`). `curl api.ipify.org` **на хосте Тайги** возвращает домашний IP — VPS-выход +> существует **только** за `vless-proxy`. ⇒ «прокси настроен» бессмысленно; доказательство одно: +> **отличается ли egress-IP этого сервиса от `90.189.160.148`**. + ## Связанные заметки - [[personal/plans/lidarr-taiga-and-indexer-unblock]] — план, из которого выросли эти находки