
Telegram OSINT, скрейпинг и архивирование в виде локального веб-приложения. Сбор данных с нескольких аккаунтов, поиск профилей с историческими фотографиями и диффами изменений, десять форматов экспорта.
Telegram OSINT, парсинг и архивирование.
Локальное веб-приложение, которое полностью работает на вашей машине и общается только с Telegram.
npm install
npm start
Затем откройте http://127.0.0.1:5173. При первом запуске вас проведут через учётные данные API, QR-вход и загрузку ваших диалогов. Telegram — единственный сервер, с которым оно взаимодействует. Не нужно создавать аккаунт, нет телеметрии и никаких посредников: всё, что вы собираете, остаётся в SQLite-файле, который принадлежит вам.
Преемник telegram-scraper, telescope и Harrier, построен на Telethon 1.44.
| Сбор | Каналы, группы и темы форумов в нескольких аккаунтах, с медиа, дедупликацией и возобновлением |
| Расследование | Телефон, @username, id или t.me-ссылка на профиль, каждое историческое фото и дифф с прошлого раза |
| Экспорт | Десять форматов: от простого CSV до хешированного набора доказательств |
| Запуск | Node 18+, Python 3.12+, SQLite. Одна база данных, одна папка, никаких служб |
Сбор
-100 рядом с именем и бейджем аккаунта, который его видитРасследование
@username, id пользователя или t.me-ссылкеЭкспорт
npm install создаёт окружение Python в server/.venv и устанавливает обе части.
| Что | Где |
|---|---|
| Конфигурация | ~/.config/tgscope/config.json (режим 600) |
Одна база данных хранит всё, что и делает возможным поиск по всем диалогам, общую таблицу пользователей, дедупликацию медиа и граф репостов.
Файлы раскладываются по типу диалога, затем по диалогу, затем по теме форума, затем по типу медиа:
media/
├── channels/technews_-1002116176890/
│ ├── photos/00004711-8001-conference-slides.jpg
│ └── documents/00004802-8210-quarterly-report.pdf
├── groups/pythondev_-1001597139842/
│ ├── general/photos/…
│ └── help/voice/00000004-9004-voice.ogg
└── profiles/123456789/000-5544332211.jpg
Имена каталогов сочетают хэндл с полным id, не-ASCII заголовки транслитерируются, а имена файлов дополняются нулями, чтобы они сортировались хронологически.
Каждый вызов Telegram проходит через регулятор на аккаунт с token bucket и ожиданием FloodWait,
а каждое постраничное чтение — сообщений, диалогов, участников, фото профиля — пережидает флуд и
возобновляется, а не проваливает запуск. Три профиля:
Более длинные ожидания объявляются в журнале активности и пережидаются; двенадцать подряд при одном чтении — сдаётся и сообщает об этом.
Поддерживается несколько аккаунтов. Пометьте один как burner в настройках, и поиск по телефонам будет автоматически выполняться на нём, потому что это единственная рискованная операция:
Поиск по телефону на мгновение импортирует номер как контакт и снова удаляет его. Если владелец уже сохранил ваш номер, он может увидеть уведомление «joined Telegram». tgscope спрашивает каждый раз и карточка профиля записывает, какой аккаунт использовался.
npm test # 92 бэкенд- и 42 фронтенд-теста, сеть не нужна
npm run build # production-сборка клиента
Бэкенд — FastAPI поверх ядра Telethon, протестированный против фейкового Telethon-клиента: скрапер, экспортёры, структура медиа и каждая миграция схемы. Фронтенд-тесты покрывают чистую логику браузера, арифметику периодов, группировку гистограмм и форматирование чисел и временных меток, а также рендерят каждый экран дважды: один раз пустым и один раз заполненным.
scripts/demo/ воссоздаёт docs/preview.gif из сидированных фейковых данных. Ему нужны chromium и
ffmpeg, он не трогает ваше реальное рабочее пространство и не является частью приложения.
Исходный код не содержит комментариев — смысл несут имена и структура, и тест это обеспечивает.
Для исследований, журналистики и авторизованных расследований. Используется официальный Telegram API через Telethon, и читается только то, что ваш аккаунт уже может видеть — он не обходит ничьи настройки приватности. Не используйте его для преследования или сталкинга, соблюдайте условия использования Telegram и учитывайте применимое к вам законодательство о защите данных.
Лицензия MIT.
| Формат | Что вы получаете |
|---|
csv | По одному файлу на диалог |
json / jsonl | Полные метаданные; JSONL потоково построчно |
xlsx | Листы с сообщениями, медиа, участниками и реакциями |
html | Автономный отчёт: статистика, активность, топ отправителей, источники репостов, таблица с поиском |
markdown | Тот же отчёт в виде текста |
gexf / edges | Граф репостов для Gephi и Maltego |
sqlite | Автономная база данных только выбранных диалогов |
bundle | ZIP с данными, медиа, манифестом SHA-256-хешей и журналом сбора |
| База данных | ~/.local/share/tgscope/tgscope.db (WAL, FTS5) |
| Медиа | ~/.local/share/tgscope/media/ |
| Экспорты | ~/.local/share/tgscope/exports/<timestamp>-<label>/ |
| Профиль | Медиа-воркеры | Интервал между запросами | Ожидания, пережидаемые молча |
|---|
stealth | 1 | 1.6 s | до 180 s |
balanced | 4 | 0.35 s | до 90 s |
fast | 8 | нет | до 45 s |