Skip to content

alexandercroft/scout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCOUT.

Локальный анализатор конкурентов: вбей ссылки → выкачай весь контент за период → собери досье.

Python Platform License


Scout interface

Что это

Вставляешь ссылки на конкурента (YouTube-канал, сайт, Telegram-канал), выбираешь период (месяц … 3 года) — Scout выкачивает весь их контент в один корпус markdown-файлов на твоём компьютере. Потом одной кнопкой собирает из этого досье: что продаёт, какими крючками, как позиционируется, чем дышит аудитория и где у него дыры.

Работает в две фазы:

  • HARVEST — скачивание. Без всякого ИИ, локально, у всех.
  • DIGEST — анализ. Подключает твой Claude Code или Codex (см. ниже) и собирает досье.

Это НЕ облако и НЕ сервис с чужим ключом. Всё крутится на твоей машине, свои логины — твои, ничего наружу не уходит.


Установка

git clone <repo-url> ~/Apps/scout
cd ~/Apps/scout
./run.sh

Первый запуск сам поднимет окружение и поставит зависимости. Откроется http://127.0.0.1:8920 — это и есть пульт.

Нужны на машине: python3, ffmpeg (brew install ffmpeg). yt-dlp ставится автоматически в окружение.


Как пользоваться

  1. Впиши SLUG — имя конкурента (например Павел Гительман). Это станет именем папки (русское имя автоматически переводится в латиницу: pavel-gitelman). Можно оставить пустым — Scout сам назовёт scout-1, scout-2, …
  2. Вставь ссылки в нужные слоты — достаточно одного, не обязательно все:
    • YOUTUBE — ссылка на канал, плейлист или отдельное видео → субтитры за период (для отдельного видео период игнорируется — берём именно его).
    • SITE — корневой URL → обойдёт сайт и переведёт страницы в markdown.
    • TELEGRAM@канал или t.me/... → выкачает посты за период (нужен разовый логин, см. ниже).
    • THREADS@профильистория постов за окно (до ~года), плюс копит при повторных запусках (нужен логин в Chrome, см. ниже).
  3. Выбери WINDOW — за какой период тащить (1М … 3Г). Для сайта период не работает — там это глубина обхода.
  4. Жми HARVEST. Всё падает в ~/Downloads/Scout/<slug>/.
  5. Когда сбор закончен — жми DIGEST → DOSSIER: соберётся DOSSIER.md.

Логины — что и зачем (простыми словами)

  • YouTube — логин не нужен. Берём публичные субтитры.

  • Сайт — логин не нужен.

  • Telegram — нужен один раз. Почему: Telegram не отдаёт историю канала анонимно, нужен доступ через твой аккаунт. Это бесплатно и безопасно — ключи и сессия лежат только у тебя на диске, в репозиторий не попадают.

    Как залогиниться в Telegram (2 минуты):

    1. Зайди на https://my.telegram.orgAPI development tools.
    2. Создай приложение (любое название) — получишь api_id (число) и api_hash (строка).
    3. В терминале:
      cd ~/Apps/scout
      ./run.sh auth-tg
      Спросит api_id, api_hash, телефон, потом код из Telegram. Ввёл один раз — дальше Scout помнит (файл scout.session у тебя локально).
  • Threads — отдельный логин не нужен, но залогинься в Threads в Chrome (обычным образом). Scout читает твои же куки из Chrome — так же, как The TET. Почему: профиль анонимно не отдаётся. Ничего не вводишь в Scout, ключей нет.

    • Глубина: Scout гоняет настоящий headless-браузер (Chromium ставится при первом ./run.sh), листает профиль твоими куками и забирает историю постов за выбранное окно — до ~года (а не 5 свежих, как через статичную страницу). Со скроллом, по- человечески, с капом — чтобы не ловить блок.
    • Копит во времени: каждый прогон дописывает новые посты в локальный архив профиля и пересобирает месячные файлы — повторные запуски наращивают ленту.

Безопасность: secrets.json и scout.session — только на твоём компьютере, они в .gitignore. Куки берутся из твоего Chrome и наружу не уходят. Scout — это легальный ресёрч публичного контента твоим же аккаунтом.


DIGEST — приноси свою LLM (BYO-CLI)

Scout не везёт в себе ИИ и не просит API-ключ. На этапе DIGEST он ищет, что у тебя уже установлено, и работает через это:

  • Claude Code — команда claude (инструкция), или
  • Codex CLI — команда codex.

Если ни одного нет — Scout соберёт корпус и положит DOSSIER.PENDING.md с подсказкой: поставь любой CLI и запусти ./run.sh digest <slug>.

Анализ идёт map-reduce (корпус режется на куски, по каждому — выжимка, потом синтез), поэтому переваривает хоть трёхлетний канал, не упираясь в контекст.


Что получаешь — досье из 8 блоков

~/Downloads/Scout/<slug>/DOSSIER.md:

  1. Лестница офферов (что продаёт, цены, шаги воронки)
  2. Инвентарь крючков
  3. Контент-столпы и ритм
  4. Позиционирование и обещания
  5. Язык аудитории (дословно)
  6. Дыры конкурента
  7. Эволюция месседжа во времени
  8. Клин для нас — где слабо и что с этого делать

Командная строка (без UI)

./run.sh harvest --slug agarkov-dmitry --window 1y \
    --youtube "https://youtube.com/@channel" \
    --site "https://example.com" \
    --telegram "@channel"
./run.sh digest --slug agarkov-dmitry

⚠️ Риски и ответственность

Scout автоматизирует доступ к платформам через твою личную залогиненную сессию — это несёт реальные риски, прочитай перед использованием:

  • Threads и Telegram = автоматизация твоего аккаунта. Формально это против правил (ToS) Meta / Telegram. На практике риск — временный action-block, рейт-лимит, а при агрессивном использовании и блокировка аккаунта. Scout риск снижает (человеческие паузы, кап на объём, читает только публичное, работает на твоём Маке и твоём IP), но гарантий нет.
  • Используй аккуратно: не гоняй постоянно/массово; не на основном аккаунте, который жалко потерять. Threads-инкремент копит понемногу — это безопаснее, чем «выкачать всё разом».
  • Только на своей машине (резидентный IP, реальная Chrome-сессия). Не на сервере/VPS — серверные IP палятся быстрее.
  • Это легальный ресёрч ПУБЛИЧНОГО контента твоим же аккаунтом. Ты отвечаешь за соблюдение правил каждой платформы и законов своей юрисдикции. Не распространяй выкачанный закрытый/платный контент.
  • Хрупкость: соцсети меняются и ломают парсинг — иногда движок придётся чинить.

Коротко: инструмент для себя, по-тихому, на свой риск.

Что под капотом

ссылки + окно  →  HARVEST (yt-dlp / Telethon / краулер)  →  ~/Downloads/Scout/<slug>/
                                                                      │
                          твой claude|codex  ←  DIGEST (map-reduce)  ─┘  →  DOSSIER.md
Источник Что берёт Движок
YouTube субтитры роликов за период yt-dlp
Site страницы → markdown requests + bs4 + markdownify
Telegram посты за период Telethon (свой логин)
Threads история постов профиля за окно (текст), копит во времени headless Chromium (Playwright) + куки Chrome; SSR-fallback

Если что-то не так

  • DIGEST падает с 401 / Invalid credentials — твой claude не залогинен для headless-режима. Проверь claude -p "привет" в терминале; если ругается — авторизуйся заново. Либо переключись на Codex: SCOUT_CLI=codex ./run.sh digest <slug>.
  • У тебя стоят и claude, и codex — по умолчанию берётся claude. Заставить выбрать: SCOUT_CLI=codex (или =claude) перед командой.
  • Telegram пишет «нужен логин» — это нормально, выполни разовый ./run.sh auth-tg.
  • YouTube ничего не скачал — у роликов нет субтитров в выбранном языке/окне, либо все видео старше окна. Расширь WINDOW.

Лицензия — MIT. Делай что хочешь.

About

Local competitor-intelligence extractor: harvest YouTube subtitles, a website, Telegram & Threads over a time window → BYO-LLM dossier. macOS, MIT.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors