Files
chronicle.nixg.ru/telegram-archiver/SETUP_CREDENTIALS.md
T

203 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`)
Если всё ок — готово! Можно двигаться дальше. 🎉