# 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/`: ```bash cd telegram-archiver copy .env.example .env ``` ### Шаг 2.2: Заполни .env Открой `.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: Активируй виртуальное окружение ```bash # Windows (PowerShell) .venv\Scripts\Activate.ps1 # Windows (cmd) .venv\Scripts\activate ``` ### Шаг 3.2: Запусти архивацию ```bash # Тестовый запуск (первые 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`: ```markdown --- 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'" **Решение:** ```bash .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`) Если всё ок — готово! Можно двигаться дальше. 🎉