Skip to content
TBTelegramBuddy
Языкru
Основная навигация
← Все гайды

Как экспортировать историю чата Telegram в HTML или JSON

Экспорт истории чата Telegram в читаемую HTML-страницу или в JSON: медиа остаются рядом на диске, а текст можно сохранить только по выбранным сообщениям.

6 мин чтения

Чтобы экспортировать историю чата Telegram, нужна программа, которая читает переписку так, как её видите вы, и пишет её на ваш собственный диск. TelegramBuddy делает это в трёх видах: читаемая HTML-страница, которую можно открыть в любом браузере, файл JSON для всего, чему нужны структурированные данные, и обычный текстовый файл только с теми сообщениями, которые вы отобрали сами. Это бесплатное настольное приложение для macOS и Windows, а на Linux оно запускается из исходного кода. Это не бот и не сайт — вы входите в свой собственный Telegram по QR-коду или по номеру телефона, а экспорт пишется сразу в папку на вашем компьютере.

Какой вид вам нужен, сводится к одному вопросу: это будет читать человек или программа?

HTML или JSON: какой экспорт подойдёт вам

Оба охватывают одну и ту же переписку. Разница в том, для кого предназначен файл.

HTML-страница Файл JSON
Что вы получаете Одна страница, разложенная в порядке чтения По одной структурированной записи на каждое сообщение
Чем открыть Любой веб-браузер Всё, что читает JSON — скрипт, импорт в таблицу, другое приложение
Для чего лучше Читать, хранить, передать кому-то другому Массовый поиск, подсчёты, перенос данных куда-то ещё
Медиа Связаны ссылками с файлами на вашем диске Указаны по имени файла и пути
Удобно читать Да Не очень

Простое правило: HTML — это та копия, которую вы действительно откроете через три года. JSON — та копия, которой вы обрадуетесь, когда захотите сделать что-то, чего никто не планировал: вытащить все ссылки, которые когда-либо публиковались в группе, посчитать сообщения по месяцам, передать переписку в другой инструмент. Это не выбор «или — или», и экспортировать оба сразу — более надёжный вариант по умолчанию.

Как экспортировать историю чата Telegram: пошагово

Порядок здесь важнее, чем принято думать, потому что экспорт ссылается на медиафайлы, а не несёт их внутри себя. Сначала загрузка, потом экспорт — и тогда каждая ссылка в готовой странице открывается.

  1. Войдите в аккаунт. Откройте приложение и войдите в свой собственный Telegram по QR-коду или по номеру телефона. При самом первом запуске приложение попросит api_id и api_hash — их бесплатно выдаёт сам Telegram на my.telegram.org в разделе «API development tools». Это занимает пару минут, делается один раз, и значения остаются на вашей машине. Подробный разбор есть в статье как получить api_id и api_hash для Telegram.
  2. Откройте нужный чат. Выберите его в списке чатов или вставьте @имя пользователя, числовой id, пригласительную ссылку t.me/+ либо приватную ссылку вида t.me/c/<id>/<message>, чтобы открыть то, чего в списке пока нет. Приватные группы и каналы работают, если вы их участник, — см. загрузку из приватного Telegram-канала.
  3. Скачайте медиа. Используйте массовую загрузку, чтобы забрать все подходящие файлы в чате, просканировав всю историю, или выделите сообщения вручную в режиме чата. Можно поставить в очередь сразу несколько чатов и оставить всё работать.
  4. Дайте процессу закончиться. Длинная история занимает время, и Telegram иногда просит приложение подождать; эти паузы обрабатываются за вас. Большие файлы продолжаются с того места, где остановились, а не начинаются заново, — на нестабильном соединении это важно, и об этом рассказано в возобновлении прерванных загрузок Telegram.
  5. Экспортируйте чат. Выберите HTML, JSON или и то и другое. Экспорт записывается рядом с вашими файлами.
  6. Проверьте одну вещь. Откройте 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 отвечает на короткие вопросы: куда попадают файлы, что происходит при обрыве соединения, какие из восьми языков интерфейса доступны.