Telegram Story Scraper 📱
Скрипт на Python, который позволяет автоматически собирать и скачивать истории из Telegram ваших друзей с помощью библиотеки Telethon. Скрипт непрерывно отслеживает и сохраняет как фотографии, так и видео из историй, а также их метаданные.

TGSS — Основной интерфейс
Важное замечание о доступе к историям ⚠️
Из-за ограничений API Telegram этот скрипт может получать доступ только к историям:
- Пользователей, которых вы добавили в друзья
- Пользователей, у которых в настройках конфиденциальности разрешён просмотр историй
Это ограничение API Telegram, которое невозможно обойти.
Возможности 🚀
- Автоматически собирает все доступные истории от ваших друзей в Telegram
- Скачивает как фотографии, так и видео из историй
- Сохраняет метаданные в базе данных SQLite
- Экспортирует данные в электронную таблицу Excel
- Мониторинг в реальном времени с настраиваемыми интервалами
- Метка времени установлена (UTC+2)
- Ведёт учёт ранее загруженных историй
- Возможность возобновления работы
- Автоматический механизм повтора
Необходимые компоненты 📋
Перед запуском скрипта вам понадобятся:
- Python 3.7 или выше
- Аккаунт Telegram
- Учётные данные API от Telegram
- Друзья в Telegram, чьи истории вы хотите отслеживать
Необходимые пакеты Python
pip install -r requirements.txt
Содержимое requirements.txt:
telethon
openpyxl
schedule
Получение учётных данных Telegram API 🔑
- Перейдите на https://my.telegram.org/auth
- Войдите с помощью номера телефона
- Нажмите "API development tools"
- Заполните форму:
- App title: Название вашего приложения
- Short name: Краткое название вашего приложения
- Platform: Можно оставить "Desktop"
- Description: Краткое описание вашего приложения
- Нажмите "Create application"
- Вы получите:
api_id: Число
api_hash: Строка из букв и цифр
Храните эти данные в безопасности, они понадобятся для запуска скрипта!
Настройка и запуск 🔧
- Клонируйте репозиторий:
git clone https://github.com/unnohwn/telegram-story-scraper.git
cd telegram-story-scraper
- Установите зависимости:
pip install -r requirements.txt
- Запустите скрипт:
- При первом запуске вам будет предложено ввести:
- Ваш API ID
- Ваш API Hash
- Номер телефона (с кодом страны)
- Код подтверждения (отправленный в Telegram)
- Интервал проверки в секундах (по умолчанию 60)
Как это работает 🔄
Скрипт:
- Подключается к вашему аккаунту Telegram
- Периодически проверяет новые истории от ваших друзей
- Скачивает любые новые истории (фото/видео)
- Сохраняет метаданные в базу данных SQLite
- Экспортирует информацию в файл Excel
- Работает непрерывно до прерывания (Ctrl + C)
Хранение данных 💾
Структура базы данных (stories.db)
База данных SQLite содержит:
user_id: ID пользователя Telegram, создавшего историю
story_id: Уникальный идентификатор истории
timestamp: Время публикации истории (UTC+2)
filename: Локальное имя файла загруженного медиа
Экспорт в CSV и Excel (stories_export.csv/xlsx)
Файл экспорта содержит ту же информацию, что и база данных, что удобно для:
- Просмотра метаданных историй
- Фильтрации и сортировки
- Анализа данных
- Обмена данными с другими людьми
Хранение медиа 📁
- Фотографии сохраняются как:
{user_id}_{story_id}.jpg
- Видео сохраняются с исходным расширением:
{user_id}_{story_id}.{расширение}
- Все медиафайлы сохраняются в директории скрипта
Подробное описание возможностей 🔍
Непрерывный мониторинг
- Настраиваемый интервал проверки (по умолчанию: 60 секунд)
- Работает непрерывно до ручной остановки
- Сохраняет состояние между запусками
- Избегает повторных загрузок
Обработка медиа
- Поддерживает как фотографии, так и видео
- Автоматически определяет тип медиа
- Сохраняет исходное качество
- Генерирует уникальные имена файлов
Обработка ошибок 🛠️
Скрипт включает:
- Автоматический механизм повтора для неудачных загрузок
- Запись ошибок для неудачных операций
- Обработка ошибок соединения
- Сохранение состояния в случае прерывания
Ограничения ⚠️
- Подвержен ограничениям скорости Telegram
- Истории должны быть доступны (не истекли)
- Действуют ограничения на размер загружаемых медиа в соответствии с правилами Telegram
Участие в разработке 🤝
Приветствуется любой вклад! Пожалуйста, не стесняйтесь отправлять Pull Request.
Лицензия 📄
Этот проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
Отказ от ответственности ⚖️
Этот инструмент предназначен только для образовательных целей. Убедитесь, что вы:
- Соблюдаете условия использования Telegram
- Получаете необходимые разрешения перед сбором данных
- Используете ответственно и этично
- Соблюдаете правила защиты данных
- Уважаете конфиденциальность пользователей