[2026-09-29] eagle: family/index.md family/plans/lidarr-artist-watchlist.md family/plans/lidarr-taiga-deploy.md family/projects/media-toolbox-taiga.md personal/index.md personal/tech/flaresolverr-taiga.md personal/tech/music-library-gap-analysis.md
This commit is contained in:
1 parent
f10d3db319
commit
6fd6bba470
7 files changed
+283
-11
No files matched your search
@@ -1,13 +1,41 @@
|
||||
# FlareSolverr на Тайге + обход блокировок индексеров
|
||||
|
||||
> ✅ **АКТУАЛЬНОЕ СОСТОЯНИЕ 2026-09-29:** arr-стек проверен после полного force-recreate.
|
||||
> FlareSolverr автоматически создаёт авторизованную сессию `prowlarr` через
|
||||
> `socks5://vless-proxy:1080`; Prowlarr → RuTracker test возвращает HTTP 200.
|
||||
> Lidarr → SkyHook возвращает 10 результатов через `vless-proxy:1081`.
|
||||
> Lidarr → Transmission test проходит; локальный Transmission исключён из внешнего proxy.
|
||||
> Все контейнеры arr и Jellyfin после рестарта `running`, `docker compose config -q` проходит.
|
||||
> В Lidarr остаётся только исторический health-warning по Kinozal/RuTracker; текущий
|
||||
> Prowlarr `indexerstatus` пуст. Не использовать старые блоки ниже как инструкцию.
|
||||
|
||||
> ⚠️ **СОСТОЯНИЕ 2026-09-28 (конец сессии): FS жив, но RuTracker/Kinozal снова в таймауте.**
|
||||
> Проверено: `docker exec flaresolverr curl -s http://localhost:8191/health` → `{"status": "ok"}`,
|
||||
> версия **3.5.2**, `sessions.list` → `["prowlarr"]` (сессия существует).
|
||||
> Prowlarr: `health: []`, `indexerstatus` → `[]` (карантина НЕТ), теги `[1,2]` на id 1/5/6 расставлены
|
||||
> **верно**. НО `POST /api/v1/indexer/test` полным объектом для **id 1 (RuTracker), 5 (Kinozal),
|
||||
> 6 (Kinozal M)** → **пустой ответ даже при таймауте 90 с**; работают **NoNaMe(4), RuTor(2), Byrutor(3)**.
|
||||
> ⇒ Сессия существует, но, **вероятно, создана без proxy** (контейнеры пересоздавались — все `Up 3 minutes`).
|
||||
> 🔴 **ПЕРВЫЙ шаг диагностики (не сессии, не карантин):**
|
||||
> ```bash
|
||||
> ssh truenas_admin@mallexxx.duckdns.org "docker exec flaresolverr ps aux | grep chromium | head -3"
|
||||
> ```
|
||||
> Ищем `--proxy-server=socks5://vless-proxy:1080`. **Нет флага** → `sessions.destroy` +
|
||||
> `sessions.create` с proxy (см. §«ПРОКСИ-СЛОЙ ИСПРАВЛЕН» ниже).
|
||||
> Полный аудит стека — [[family/plans/lidarr-taiga-deploy]] §«АУДИТ ВСЕГО СТЕКА».
|
||||
|
||||
> 🔴 **НОВОЕ 2026-09-28 (вечер): ТОТ ЖЕ КЛАСС ДЕФЕКТА У LIDARR — свой `ProxyCheck` не проходит.**
|
||||
> SkyHook (`api.lidarr.audio`) отдаёт **403 Cloudflare**; в теле ответа — `Your IP: 90.189.160.148`
|
||||
> (домашний). Встроенный прокси Lidarr `proxyEnabled=true, proxyType=http, vless-proxy:1081`
|
||||
> **записан, но не применяется** — `docker logs lidarr | grep -i proxy` даёт
|
||||
> **`[Error] ProxyCheck: Proxy Health Check failed`**.
|
||||
> 🔴 **`GET /api/v1/health` при этом отдаёт `[]` — health-кэш врёт.** Ориентироваться на логи.
|
||||
> 🔴 **Внешний IP дома = `90.189.160.148` И у хоста Тайги тоже** (`curl api.ipify.org` с хоста) —
|
||||
> вся сеть NAS идёт через домашний аплинк; VPS-выход даёт **только** `vless-proxy`
|
||||
> ⚠️ **УСТАРЕЛО, оставлено как история:** SkyHook (`api.lidarr.audio`) отдавал **403 Cloudflare**;
|
||||
> в теле ответа — `Your IP: 90.189.160.148` (домашний). Встроенный прокси Lidarr
|
||||
> `proxyEnabled=true, proxyType=http, vless-proxy:1081` **записан, но не применялся** —
|
||||
> `docker logs lidarr | grep -i proxy` давал **`[Error] ProxyCheck: Proxy Health Check failed`**.
|
||||
> ✅ **К концу сессии 2026-09-28 SkyHook ЗАРАБОТАЛ** (Alex починил): `lookup Astrix` → **10 результатов**.
|
||||
> ⇒ **Правило остаётся валидным для ЛЮБОГО сервиса на Тайге, который ходит в интернет сам**
|
||||
> (Lidarr → SkyHook, FS → Chrome): по умолчанию он выходит с **домашнего IP**. Проверять не
|
||||
> «настроен ли прокси», а **«какой внешний IP у самого сервиса»**.
|
||||
> 🔴 **`GET /api/v1/health` у Lidarr отдаёт `[]`, даже когда `ProxyCheck` падает** — health-кэш врёт,
|
||||
> ориентироваться на логи. 🔴 **Внешний IP дома = `90.189.160.148` И у хоста Тайги тоже** — вся сеть
|
||||
> NAS идёт через домашний аплинк; VPS-выход даёт **только** `vless-proxy`
|
||||
> (`104.28.211.192` через 1080 и 1081 — обе рабочие).
|
||||
> ⇒ Практическое правило: **любой сервис на Тайге, который ходит в интернет сам** (Lidarr → SkyHook,
|
||||
> FS → Chrome), по умолчанию выходит с домашнего IP. Проверять не «настроен ли прокси», а
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
# Skill: music-library-gap-analysis — дельта стриминг ↔ NAS
|
||||
|
||||
**Дата:** 2026-09-28
|
||||
**Namespace:** personal
|
||||
**Скилл:** `~/.hermes/hermes-whale/skills/media/music-library-gap-analysis/SKILL.md`
|
||||
**Триггеры:** «каких артистов добавить в lidarr», «что слушаю но нет на nas»,
|
||||
«дельта библиотеки», «подбери дискографию артиста которого мало»
|
||||
|
||||
---
|
||||
|
||||
## Зачем
|
||||
|
||||
Alex просит списки артистов для отслеживания/автозакачки в Lidarr. Задача повторяемая —
|
||||
оформлена как скилл. Проверено на реальном прогоне 2026-09-28: 960 стриминговых артистов ↔
|
||||
1207 в Navidrome → 195 «слушаю много, на NAS мало/нет».
|
||||
|
||||
---
|
||||
|
||||
## Правило номер один: владение = БД, НЕ файловая система
|
||||
|
||||
`Music/` на Тайге **плоская** (`!Rock&Folk`, `!Рэп`, `!A Not sorted` …) — по папкам владение
|
||||
не определяется. Источник истины — **`navidrome.db`** (читает теги, папки игнорирует):
|
||||
|
||||
```bash
|
||||
ssh truenas_admin@mallexxx.duckdns.org \
|
||||
"docker exec navidrome sqlite3 'file:/data/navidrome.db?mode=ro' 'SELECT name FROM artist;'"
|
||||
```
|
||||
|
||||
В контейнере navidrome `sqlite3` **есть** (`/usr/bin/sqlite3`). Режим `?mode=ro` обязателен —
|
||||
БД живая (`-wal`/`-shm`), `cp` делать нельзя.
|
||||
|
||||
Факт 2026-09-28: **1207 артистов · 551 альбом · 7791 `media_file`**.
|
||||
|
||||
---
|
||||
|
||||
## Источники стриминга
|
||||
|
||||
| Файл | Что |
|
||||
|---|---|
|
||||
| `personal/spotify-library.md` | 259 строк: лайки + 6 плейлистов + сохранённые альбомы |
|
||||
| `personal/yandex-music-library.md` | 1056 строк: 956 лайков + 8 плейлистов |
|
||||
|
||||
Перевыгрузка — скиллы [[personal/tech/yandex-music-api]] / `spotify-library-export`.
|
||||
|
||||
---
|
||||
|
||||
## Вес и категории
|
||||
|
||||
```python
|
||||
weight = 3 if "Лайкнутые треки" in section else 2 # секцию отслеживать по "## "
|
||||
```
|
||||
|
||||
| Категория | Условие | Смысл |
|
||||
|---|---|---|
|
||||
| **Отсутствует** | `lib_score ≥ 6`, `nas_tracks == 0` | слушаешь — дома ничего |
|
||||
| **Огрызок** 🔴 | `lib_score ≥ 6`, `0 < nas_tracks ≤ 5` | **худший случай**: папка есть, играть нечего |
|
||||
| Норма | `nas_tracks > 5` | не трогать |
|
||||
|
||||
Порог `≥ 6` = минимум 2 лайка — отсекает случайные попадания.
|
||||
|
||||
---
|
||||
|
||||
## 🔴 ЕДИНИЦА СЧЁТА
|
||||
|
||||
Alex требует называть её явно. Их **четыре**, различаются на порядки:
|
||||
|
||||
```
|
||||
артисты ≠ треки ≠ альбомы ≠ файлы
|
||||
960 — — —
|
||||
1207 7791 551 (media_file)
|
||||
```
|
||||
|
||||
`nas_tracks` = число **`media_file`**, НЕ папок. В отчёте указывать явно, иначе Alex спросит
|
||||
«какое число ждёшь и откуда».
|
||||
|
||||
---
|
||||
|
||||
## Питфоллы
|
||||
|
||||
1. 🔴 **Сплит коллабораций.** Ячейка = `Polo & Pan`, `Агата Кристи, Пионерлагерь…`.
|
||||
Сплитить по `, & ; / feat. ft. vs.`; **` x ` — только для латиницы**. После сплита в списке
|
||||
мусор (`Polo`, `Pan`, `BOBI`, `Коба`, `Bits`, `Hits`) → **NOISE-блоклист обязателен**.
|
||||
2. 🔴 **`|` внутри названий треков** → сдвиг колонок. Брать фиксированные индексы после
|
||||
`strip("|")` + проверять `^\d+$` в `cells[0]`, отбрасывать заголовок и разделитель.
|
||||
3. 🔴 **`ё` → `е` в нормализации обязательна**, иначе `Артём` ≠ `Артем` и артист попадает в мусор.
|
||||
4. ⚠️ **Артист может быть в двух написаниях.** `Пионерлагерь Пыльная Радуга` (группа) и
|
||||
`Алексей Пыльная Радуга Румянцев` (сольники) — **один человек**. Группировать по ключевому
|
||||
слову, в отчёте помечать, на какое имя ставить теги.
|
||||
5. ⚠️ **Дискографию брать шире лайков** — тянуть список альбомов целиком, иначе «подбери всё»
|
||||
превращается в «те же 19 треков».
|
||||
6. ⚠️ Неверный `X-Api-Key` (обрезок) → **пустое тело**, не 401.
|
||||
|
||||
---
|
||||
|
||||
## Правила поведения (от Alex, за эту сессию)
|
||||
|
||||
1. 🔴 **Не лезть в систему без команды.** «ты нахуя блядь полез систему ковырять».
|
||||
Задача «составь список» ≠ «почини Lidarr». Диагностику — **описать в доке**, изменений не вносить.
|
||||
2. 🔴 **В док — только запрошенное.** «убери своё говнище из дока, я списки просил».
|
||||
3. 🔴 **Статус сервиса — живым запросом, не по заголовку дока.** За сессию статус SkyHook
|
||||
менялся трижды. Header дока врёт.
|
||||
4. ⚠️ **Валидация через `artist/lookup` — только при живом SkyHook.** Иначе отдавать список
|
||||
**без валидации** и сказать прямо, не выдумывая результаты.
|
||||
5. ⚠️ **«Похожих» искать параллельно** через `delegate_task` (3 ветки вкуса), а не последовательно.
|
||||
Ветвление по жанрам из **фактических** топов библиотеки. Исключать тех, кого уже слушает.
|
||||
|
||||
---
|
||||
|
||||
## Структура списка для Lidarr
|
||||
|
||||
Три тира, порядок постановки A → B → C:
|
||||
- **A** — из своих библиотек: «слушаю много, дома нет/пусто» (самый точный сигнал), ~30
|
||||
- **B** — зарубежное «похожее» по жанровым веткам, ~60
|
||||
- **C** — русскоязычное «похожее», ~60
|
||||
|
||||
**Минимум 50 позиций** — просит явно; фактически вышло ~150.
|
||||
|
||||
---
|
||||
|
||||
## Артефакты прогона 2026-09-28
|
||||
|
||||
Скрипты (самодостаточны, `/tmp` не переживает перезагрузку):
|
||||
|
||||
| Файл | Что |
|
||||
|---|---|
|
||||
| `/tmp/mus/analyze.py` | парсинг таблиц, частоты артистов |
|
||||
| `/tmp/mus/crosscheck.py` | стриминг ↔ `navidrome.db` |
|
||||
| `/tmp/mus/gaps.py` | дельта-анализ (195 «слушаю много, мало/нет») |
|
||||
| `/tmp/mus/artist_tracks.py` | все треки артиста из библиотек |
|
||||
| `/tmp/mus/build_final.py` | сведение в 3 тира |
|
||||
|
||||
Результат: [[family/plans/lidarr-artist-watchlist]] — 150 позиций + разбор Пыльной Радуги.
|
||||
|
||||
---
|
||||
|
||||
## Связанное
|
||||
|
||||
- [[family/plans/lidarr-artist-watchlist]] — результат
|
||||
- [[family/plans/lidarr-taiga-deploy]] — деплой Lidarr, §АУДИТ СТЕКА
|
||||
- [[personal/music-download-practices]] — как качать (hitmotop/mp3party)
|
||||
- `music-batch-download-nas` — скилл загрузки на NAS
|
||||
|
||||
---
|
||||
*Создано: 2026-09-28*
|
||||
Reference in new issue
Block a user