[2026-09-28] eagle: family/index.md family/plans/lidarr-artist-watchlist.md family/plans/lidarr-artist-watchlist.md.bak-sibling-20260928 personal/tech/skill-arr-media-stack-setup-additions.md

This commit is contained in:
Alexey Martemyanov committed 2026-09-28 23:41:55 +06:00
1 parent d1107a9de1
commit 0f352f3bca
4 files changed
+517 -156

No files matched your search

+1 -1
View File
@@ -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-коды
+279 -155
View File
@@ -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*
@@ -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` не помог. Блокер оставлен открытым.
@@ -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]] — план, из которого выросли эти находки