diff --git a/README.md b/README.md index 624be15..2b74f50 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,33 @@ # Outlier Saver -Расширение для Chrome: пока вы смотрите YouTube, оно находит видео с аномально высокими просмотрами относительно размера канала («outliers») и сохраняет их локально. Данные можно выгрузить в JSON или CSV. +Расширение для Chrome (личное): пока вы смотрите YouTube с установленным VidIQ, оно читает карточки видео и сохраняет те, у которых высокий outlier score. Данные можно выгрузить в JSON или CSV. ## Установка 1. Откройте `chrome://extensions` и включите «Режим разработчика». 2. «Загрузить распакованное расширение» → выберите эту папку. -3. Откройте настройки расширения и вставьте API-ключ YouTube Data API v3 (инструкция — в самих настройках). +3. Откройте YouTube (VidIQ должен быть включён) и пролистайте ленту, поиск или страницу канала. ## Как это работает -- Расширение собирает ID видео на главной, странице просмотра, в поиске и на страницах каналов. -- Название, превью, просмотры и подписчиков берёт из YouTube Data API v3 пачками по 50 (1 единица квоты за запрос, лимит — 10 000 в сутки). -- `score = просмотры ÷ подписчики`. Видео сохраняется, если `просмотры ≥ минимума` и `score ≥ порога` (по умолчанию 10 000 и 5), либо если на карточке есть значок VidIQ. +- Расширение ничего не скачивает и не использует API: оно читает то, что уже нарисовано на странице. +- Со страницы берутся название, ссылка, превью, канал и просмотры; у VidIQ — outlier score и число подписчиков. Просмотры и подписчики те же, что на экране (например, «59 млн»), поэтому округлены. +- Видео сохраняется, если `outlier score ≥ порога` и `просмотры ≥ минимума` (по умолчанию 5 и 10 000, меняются в настройках). Уже сохранённое видео обновляется при каждой встрече. - Данные лежат в IndexedDB браузера. Кнопки «Скачать JSON» и «Скачать CSV» в popup выгружают всё сохранённое. +- Поддерживаются русский и английский интерфейс YouTube. Собираются карточки на главной, в поиске, в боковой панели просмотра и на страницах каналов; само открытое видео не собирается. + +## Если ничего не сохраняется + +- Убедитесь, что VidIQ показывает на карточках outlier score и подписчиков. +- Понизьте порог или минимум просмотров в настройках. +- Если YouTube или VidIQ изменили разметку, запустите `npm test`: тест `card.dom` разберёт образцы карточек в Chrome и покажет, что именно не читается. Настоящий образец с главной лежит в `test/fixtures/home-card.html`; чтобы обновить его, скопируйте HTML новой карточки (правый клик → «Просмотреть код» → Copy outerHTML) и поправьте ожидаемые значения в `test/card.dom.test.js`. ## Разработка -Сборки нет. Тесты (Node 22, без зависимостей): +Сборки нет. Тесты (Node 22, без зависимостей; тест разбора карточки запускает headless Chrome и пропускается, если Chrome не найден): ``` npm test ``` После изменения кода нажмите «Обновить» у расширения на `chrome://extensions`. - -## Ручная проверка на живом YouTube - -- Подгрузка карточек при скролле на главной. -- Переход между страницами без перезагрузки. -- Работа на `/results` и `/@канал/videos`. -- Запись появляется в popup; скачиваются JSON и CSV. -- Без ключа и с неверным ключом на иконке бейдж `!`, в popup понятная причина.