Files

4.9 KiB
Raw Permalink Blame History

Telegram Archiver — Настройка credentials

1. Получение API ключей

Шаг 1.1: Зайди на my.telegram.org

  1. Открой https://my.telegram.org/auth
  2. Введи свой номер телефона в формате +79991234567
  3. Нажми "Next"

Шаг 1.2: Введи код из Telegram

  1. Открой Telegram (десктоп или мобильное приложение)
  2. Найди сообщение от Telegram с кодом подтверждения
  3. Введи код на сайте

Шаг 1.3: Создай приложение

  1. Перейди на https://my.telegram.org/apps
  2. Нажми "Create application"
  3. Заполни форму:
    • App title: Telegram Archiver (или любое название)
    • Short name: tg-archiver (или любое)
    • Platform: выбери Desktop
    • Description: Archive Telegram channels to Markdown (можно любое)
  4. Нажми "Create application"

Шаг 1.4: Скопируй credentials

После создания приложения увидишь:

Api ID: 12345678
Api hash: abcdef1234567890abcdef1234567890

Скопируй эти значения!


2. Настройка .env файла

Шаг 2.1: Создай .env

В корне проекта telegram-archiver/:

cd telegram-archiver
copy .env.example .env

Шаг 2.2: Заполни .env

Открой .env и вставь свои данные:

# Telegram API credentials
API_ID=12345678
API_HASH=abcdef1234567890abcdef1234567890
PHONE=+79991234567

# Session name (will create telegram-archiver.session file)
SESSION_NAME=telegram-archiver

# Max file size to download (in bytes)
# Default: 200 MB = 209715200
MAX_FILE_SIZE=209715200

# Output directory for archives
OUTPUT_DIR=./archives

# Log level: DEBUG, INFO, WARNING, ERROR
LOG_LEVEL=INFO

Важно:

  • PHONE должен начинаться с +
  • Не коммить .env в git (он в .gitignore)

3. Первый запуск

Шаг 3.1: Активируй виртуальное окружение

# Windows (PowerShell)
.venv\Scripts\Activate.ps1

# Windows (cmd)
.venv\Scripts\activate

Шаг 3.2: Запусти архивацию

# Тестовый запуск (первые 10 постов)
python -m telegram-archiver --channel dedinit --limit 10

# Или полный архив канала
python -m telegram-archiver --channel dedinit

Шаг 3.3: Первая авторизация

При первом запуске:

  1. Скрипт попросит ввести код из Telegram
  2. Открой Telegram → найди сообщение от Telegram с кодом
  3. Введи код в консоль
Code sent to +79991234567
Enter the code you received: 12345

После успешной авторизации:

  • Создается файл telegram-archiver.session
  • Сессия сохраняется для следующих запусков

4. Проверка результата

Структура выходных данных

После архивации:

archives/
└── dedinit/
    ├── 12345/
    │   ├── index.md
    │   └── photo.jpg
    ├── 12346/
    │   └── index.md
    └── 2big2get.md (если есть большие файлы)

Проверка index.md

Открой любой index.md:

---
message_id: 12345
date: 2024-02-19T14:30:00
author: "Dedinit"
media_files:
  - filename: photo.jpg
    type: photo
    size: 102400
---

Текст поста в Markdown

5. Возможные проблемы

Ошибка: "PHONE must start with +"

Решение: Добавь + в начало номера в .env

Ошибка: "API_ID must be a positive integer"

Решение: Проверь что API_ID — число без кавычек

Ошибка: "No module named 'telethon'"

Решение:

.venv\Scripts\activate
uv pip install -r requirements.txt

Ошибка авторизации (код не приходит)

Решение:

  1. Подожди 1-2 минуты
  2. Проверь что номер телефона правильный
  3. Попробуй запросить код ещё раз

Flood wait error

Telegram ограничивает частоту запросов.

Решение: Подожди указанное время (обычно 1-5 минут)


6. Что дальше?

После успешного тестирования:

  1. ✅ Проверь структуру bundle
  2. ✅ Проверь front-matter
  3. ✅ Проверь скачанные медиа
  4. ✅ Посмотри логи (YYYYMMDD-dedinit.log)

Если всё ок — готово! Можно двигаться дальше. 🎉