Как экспортировать историю чата Telegram в HTML или JSON
Экспорт истории чата Telegram в читаемую HTML-страницу или в JSON: медиа остаются рядом на диске, а текст можно сохранить только по выбранным сообщениям.
6 мин чтения
Чтобы экспортировать историю чата Telegram, нужна программа, которая читает переписку так, как её видите вы, и пишет её на ваш собственный диск. TelegramBuddy делает это в трёх видах: читаемая HTML-страница, которую можно открыть в любом браузере, файл JSON для всего, чему нужны структурированные данные, и обычный текстовый файл только с теми сообщениями, которые вы отобрали сами. Это бесплатное настольное приложение для macOS и Windows, а на Linux оно запускается из исходного кода. Это не бот и не сайт — вы входите в свой собственный Telegram по QR-коду или по номеру телефона, а экспорт пишется сразу в папку на вашем компьютере.
Какой вид вам нужен, сводится к одному вопросу: это будет читать человек или программа?
HTML или JSON: какой экспорт подойдёт вам
Оба охватывают одну и ту же переписку. Разница в том, для кого предназначен файл.
| HTML-страница | Файл JSON | |
|---|---|---|
| Что вы получаете | Одна страница, разложенная в порядке чтения | По одной структурированной записи на каждое сообщение |
| Чем открыть | Любой веб-браузер | Всё, что читает JSON — скрипт, импорт в таблицу, другое приложение |
| Для чего лучше | Читать, хранить, передать кому-то другому | Массовый поиск, подсчёты, перенос данных куда-то ещё |
| Медиа | Связаны ссылками с файлами на вашем диске | Указаны по имени файла и пути |
| Удобно читать | Да | Не очень |
Простое правило: HTML — это та копия, которую вы действительно откроете через три года. JSON — та копия, которой вы обрадуетесь, когда захотите сделать что-то, чего никто не планировал: вытащить все ссылки, которые когда-либо публиковались в группе, посчитать сообщения по месяцам, передать переписку в другой инструмент. Это не выбор «или — или», и экспортировать оба сразу — более надёжный вариант по умолчанию.
Как экспортировать историю чата Telegram: пошагово
Порядок здесь важнее, чем принято думать, потому что экспорт ссылается на медиафайлы, а не несёт их внутри себя. Сначала загрузка, потом экспорт — и тогда каждая ссылка в готовой странице открывается.
- Войдите в аккаунт. Откройте приложение и войдите в свой собственный Telegram по QR-коду или по номеру телефона. При самом первом запуске приложение попросит api_id и api_hash — их бесплатно выдаёт сам Telegram на my.telegram.org в разделе «API development tools». Это занимает пару минут, делается один раз, и значения остаются на вашей машине. Подробный разбор есть в статье как получить api_id и api_hash для Telegram.
- Откройте нужный чат. Выберите его в списке чатов или вставьте @имя пользователя, числовой id, пригласительную ссылку
t.me/+либо приватную ссылку видаt.me/c/<id>/<message>, чтобы открыть то, чего в списке пока нет. Приватные группы и каналы работают, если вы их участник, — см. загрузку из приватного Telegram-канала. - Скачайте медиа. Используйте массовую загрузку, чтобы забрать все подходящие файлы в чате, просканировав всю историю, или выделите сообщения вручную в режиме чата. Можно поставить в очередь сразу несколько чатов и оставить всё работать.
- Дайте процессу закончиться. Длинная история занимает время, и Telegram иногда просит приложение подождать; эти паузы обрабатываются за вас. Большие файлы продолжаются с того места, где остановились, а не начинаются заново, — на нестабильном соединении это важно, и об этом рассказано в возобновлении прерванных загрузок Telegram.
- Экспортируйте чат. Выберите HTML, JSON или и то и другое. Экспорт записывается рядом с вашими файлами.
- Проверьте одну вещь. Откройте HTML-страницу и нажмите на фото и на видео. Если они открываются, архив в порядке и его можно убрать в надёжное место.
Шаг 3 формально необязателен — переписку можно экспортировать и саму по себе. Но экспорт, медиа для которого так и не скачали, — это расшифровка с битыми ссылками внутри, а под архивом обычно имеют в виду не это.
Как экспорт связан со скачанными медиа
Экспорт не запихивает изображения внутрь одного огромного файла. Он указывает на настоящие файлы на вашем диске — поэтому они остаются пригодными сами по себе, а страница открывается мгновенно.
Файлы складываются в одну папку на каждый чат, и каждый чат можно разложить по подпапкам Photos (фото), Videos (видео), Files (файлы), Music (музыка) и Voice (голосовые). Каждый файл сохраняет то имя, которое ему дал Telegram. Файлы, приходящие вообще без имени, — а это большинство фотографий и многие видео — получают имя по id того сообщения, из которого они пришли: фото из сообщения 4182 сохранится как 4182.jpg. Если два действительно разных файла совпадут по имени, второй получит id сообщения в скобках: report (4193).pdf. Ничто и ничего не перезаписывает молча.
Два практических следствия:
- Держите папку и экспорт вместе. Экспорт ссылается на файлы по их месту в этой папке. Переносите всю папку чата куда угодно; но унесите HTML-страницу отдельно от неё — и ссылки сломаются. Когда делаете резервную копию архива, копируйте папку.
- Даты совпадают. Временная метка каждого файла ставится по дате публикации сообщения, а не по дате, когда вы его скачали. Отсортируйте папку чата по дате в Finder или в «Проводнике» — и вы получите тот порядок, в котором шла переписка, так что папку можно просматривать даже без открытого экспорта.
Как сохранить текст только нужных сообщений
Полный экспорт — неподходящий инструмент для задачи «где-то в этой переписке был адрес». Для такого быстрее режим чата.
Режим чата показывает всю переписку от старых сообщений к новым — текст и медиа вместе, с разделителями по дням и миниатюрами, а более старые сообщения подгружаются по мере прокрутки вверх. Нажмите на сообщение, чтобы его выделить, нажмите с Shift, чтобы взять диапазон, или используйте Select all (выбрать все), Files only (только файлы) и Texts only (только текст) для сплошного захвата. Когда выделение готово, сохраните текст в файл .txt — и вы получите ровно эти сообщения, в порядке переписки, и ничего больше.
Это именно то, что нужно, чтобы вытащить решения из группы планирования на 900 сообщений, сохранить рецепт, который кто-то опубликовал, или собрать все ссылки из канала для чтения. Занимает несколько секунд и даёт файл настолько небольшой, что его можно вставить в заметку.
Как обновлять архив, не начиная заново
Каналы продолжают публиковать, поэтому экспорт — это снимок, а не живое зеркало. Обновить его недорого: запустите тот же чат снова, и уже скачанные файлы будут пропущены, так что заберётся только новое. Потом экспортируйте ещё раз поверх.
Поэтому обновление раз в месяц или раз в квартал — вполне разумная привычка для канала, который вам важен, и именно поэтому медленным оказывается только первый проход.
Что такое экспорт и чем он не является
Стоит честно обозначить границы:
- Приложение видит ровно то, что видит ваш аккаунт. Чаты, участником которых вы являетесь, и ничего больше. Никакого чёрного хода в канал, в котором вы никогда не были, нет.
- Это снимок на тот момент, когда вы его сделали. Дальше ничего не синхронизируется, пока вы не запустите экспорт заново.
- Ничего не проходит через чужой сервер. Нет ни аккаунта TelegramBuddy, ни шага выгрузки куда-либо — приложение обращается к Telegram напрямую и пишет на ваш диск. Ваша сессия входа — это файл на вашей собственной машине. Это независимый проект, не связанный с Telegram.
- Возможность что-то сохранить — не то же самое, что право это хранить или распространять. Платные курсы, лицензионные фильмы и работы других людей остаются их. Архивируйте то, что вы вправе архивировать.
Куда двигаться дальше
Если вы настраиваете всё это впервые, шаг с api_id — единственная часть, для которой нужно выйти из приложения, так что начните с него. Если вы взвешиваете, покрывает ли приложение то, что вам нужно, страница возможностей собирает в одном месте режим чата, режим галереи, массовую загрузку и поведение экспорта, а FAQ отвечает на короткие вопросы: куда попадают файлы, что происходит при обрыве соединения, какие из восьми языков интерфейса доступны.