# КАК ЮЗАТЬ GRABBER — за 2 минуты

## Часть 1. Установка (один раз)

1. Открой Chrome → зайди в **Chrome Web Store** → в поиске набери **Tampermonkey**
   (или прямо: `chromewebstore.google.com/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo`)
2. Жми **«Установить»** → подтверди.
3. В правом верхнем углу браузера появится чёрно-серый квадратик Tampermonkey.
   Кликни на него → **«Создать новый скрипт»** (иконка `+`).
4. Откроется редактор: **сотри весь шаблон**, который там есть.
5. Открой файл `RUVSON_Grabber.user.js` (лежит рядом), **выдели всё** (Ctrl+A), **скопируй** (Ctrl+C).
6. **Вставь** в редактор Tampermonkey (Ctrl+V) → нажми **Ctrl+S** (Сохранить).
7. Готово. Вкладку редактора можно закрыть.

> Если Tampermonkey спросит «Разрешить доступ к файлам?» — разрешай, это норма.

## Часть 2. Юзание (каждый раз)

1. Открой **любое видео на YouTube** (или страницу на youtubegrab.com).
2. Справа **внизу** экрана появилась панель **RUVSON GRABBER** (тёмная, оранжевая).
3. Кнопки:
   - **ПРЕВЬЮ JPG** — скачает обложку в Max HD (maxresdefault → sd → hq).
   - **.SRT** — скачает субтитры с реальными таймингами.
   - **.TXT** — скачает чистый текст транскрипта.
   - **ВСЁ СРАЗУ** — JPG + SRT + TXT одной кнопкой.
   - **АУДИО ×2 .WEBM (BEST+WORST)** — одной кнопкой скачает ДВА файла:
     самое высокое и самое низкое качество аудио в .webm (Opus).
     Обычно это itag 251 (~160 кбит/с) и itag 249 (~50 кбит/с).
     Работает на ЛЮБОМ видео YouTube — не только RUVSON. Если webm
     у видео нет — отдаст доступное аудио (.m4a) с пометкой в статусе.
   - **ВСЕ ФОРМАТЫ · АУДИО+ВИДЕО** — меню как в премиуме, 4 вкладки:
     · **СТАНДАРТ** — одна строка = одно качество (2160p60 → 144p), с примерным
       размером «с звуком». Клик = качает ПАРУ: видео mp4 + звук m4a (AAC,
       максимальная совместимость с Android/iOS/ТВ). Два файла с общим префиксом
       PAIR лежат рядом — плеер/монтажка их склеят. На ~720p — пометка РЕКОМЕНДУЮ.
     · **ВИДЕО** — чистая картинка без звука (для монтажа), mp4 приоритетнее.
     · **АУДИО** — все битрейты с человеческими метками (высокое/среднее/низкое).
     · **ВСЁ** — сырой список всех itagов: каждый кодек, каждый битрейт,
       готовые файлы со звуком.
     Прогресс скачивания — прямо в строке. «≈ ?» = YouTube не сообщил размер.
4. **Выпадающий список языков**: выбери, например, `de — German` → жми `.SRT` —
   получишь немецкий автоперевод с таймингами. Список = **157 языков, ровно тот же,
   что стоит в грабере**.
5. **ВСЕ ЯЗЫКИ · SRT+TXT** — одной кнопкой качает ВСЕ 157 языков × 2 формата
   (= 314 файлов). Браузер один раз спросит **«Разрешить скачивание нескольких
   файлов»** — жми **«Разрешить»**. Панель будет показывать прогресс:
   `ВСЕ ЯЗЫКИ: 43/157 · German`.
6. **АУДИО ×2 .WEBM** — прогресс в статусе (`BEST: 43%…` → `WORST: 100%`),
   в конце отчёт: `BEST itag251 · 160 кбит/с · 4.6 МБ | WORST itag249 · 50 кбит/с · 1.4 МБ`.
   Имена файлов: `Название_ID_BEST_160kbps_itag251.webm` / `…_WORST_…webm`.
   Если жмёшь кнопку на **youtubegrab.com** — скрипт просто откроет вкладку
   с этим видео на YouTube: аудио отдаёт только YouTube.

### Аудио без браузера (yt-dlp, для домашнего ПК)

То же самое одной строкой (универсально, любой URL):

```bash
yt-dlp -f "ba[ext=webm]/ba" -o "%(title)s_BEST.%(ext)s" "Ссылка"
yt-dlp -f "wa[ext=webm]/wa" -o "%(title)s_WORST.%(ext)s" "Ссылка"
yt-dlp -F "Ссылка"                # таблица ВСЕХ форматов (аналог кнопки «ВСЕ ФОРМАТЫ»)
yt-dlp -f 137 -o "%(title)s_1080p.%(ext)s" "Ссылка"   # конкретный itag из таблицы
```

> Нет yt-dlp и ffmpeg на компе? Рядом лежит папка **RUVSON_УСТАНОВЩИК** — двойной клик
> по `УСТАНОВИТЬ_ВСЁ.bat` → цифра **1** (ЯДРО) поставит Python + FFmpeg + yt-dlp сам.
> Инструкция — `RUVSON_УСТАНОВЩИК/КАК_ЮЗАТЬ_УСТАНОВЩИК.md`.

## Часть 3. Куда сохраняется

В обычную папку «Загрузки» (`Downloads`). Имена файлов:
`Название_видео_ID_язык.srt` / `.txt` — сортируются по алфавиту, языки идут пачкой.

## Если что-то не работает

| Симптом | Лечение |
|---------|---------|
| Панель не появилась | Обнови страницу (F5). На YouTube она появляется на страницах видео. |
| «ОШИБКА: ytInitialPlayerResponse не найден» | Перезагрузи страницу, дождись прогрузки видео. |
| «ОШИБКА: WAF 403» (на youtubegrab) | Открой сайт в обычной вкладке (не инкогто), залогинься — и жми родные кнопки сайта. |
| Скачался не тот язык | Проверь селект: `язык: авто (оригинал)` = Russian Original. |
| «ОШИБКА: HTTP 403» на аудио | URL протух — перезагрузи страницу видео (F5) и жми кнопку заново. |
| «аудио-дорожек нет» | Дождись полной загрузки видео и попробуй ещё раз. |
| Скачалось .m4a вместо .webm | У этого видео нет webm-аудио — это норма, статус предупредит. |
| В окне форматов у видео «без звука» | Так устроен YouTube: видео и звук — отдельные потоки. Возьми звук кнопкой АУДИО ×2 или строкой из секции «АУДИО». |
| 4K/2160p60 нет в списке | Значит, этого потока у видео нет (или оно требует премиум-подписки) — скрипт показывает только реально доступное. |
| Chrome молчит при «ВСЕ ЯЗЫКИ» | Смотри правый верхний угол — там запрос «Разрешить несколько загрузок». |

## Нюансы

- На **YouTube** тайминги **реальные** (берутся из json3 дорожки), автоперевод делает сам YouTube через `tlang` — это тот же механизм, что у грабера, только без посредника.
- **Аудио**: URL берутся из `streamingData.adaptiveFormats` той же страницы, они подписаны под твой IP и действуют несколько часов — поэтому «протух» = просто обнови страницу. Файл качается blob'ом в память браузера, потом straight to Downloads.
- На **YouTubeGrab** скрипт дёргает API твоей сессией: `captions?format=srt&lang=...` — формат `srt` там родной.
- Скрипт ничего никуда не отправляет: всё крутится в твоём браузере, файлы идут straight to Downloads.
- Хочешь другой список языков или другой порядок — правь строку `LANGS_RAW` в начале скрипта (формат `код:Название,код:Название`).

## v1.5 «КОНВЕЙЕР 61» — объёмная закачка аудио

Одна кнопка вместо 61 ручной операции. Вшит список всех 61 песни канала (лист владельца 30.09.2026).

1. Обнови скрипт до **v1.5.0** (Tampermonkey → заменить содержимое → сохранить).
2. Открой любое видео YouTube (страница `watch`).
3. В панели RUVSON GRABBER жми оранжевую **«КОНВЕЙЕР 61 · АУДИО»**.
4. Скрипт сам: открывает песню №1 → тянет АУДИО ×2 (best+worst .webm) → переходит к №2 → и так все 61.
5. Статус виден в панели; останавливать — кнопка **«СТОП КОНВЕЙЕР»** (прогресс сохраняется, продолжение — снова СТАРТ: докачает с прерванного места).
6. Когда статус скажет «КОНВЕЙЕР ЗАВЕРШЁН: аудио 61/61» — в папке «Загрузки» лежит вся библиотека. Заархивируй и закинь в Google Drive папку RUVSON — я вшью настоящие минусовки (Demucs-разделение) в платформу.

Нюансы:
- Ход конвейера хранится в `localStorage` (ключ `rgConv`) — можно закрывать браузер и продолжать.
- Ошибочное видео не останавливает конвейер: оно пишется в `err` и пропускается; на финале покажет счёт ошибок.
- Пока идёт конвейер, другие кнопки панели работают как обычно (но лучше не мешать).
- YouTube может показать «подтверди, что не бот» после десятков видео — реши капчу, конвейер продолжится сам.
