Экспорт чата
Telegram
В Telegram Desktop (macOS, Windows, Linux): откройте чат → ⋯ → Экспорт истории чата… → Экспорт.
- Оставьте включёнными фото, видео, голосовые, стикеры и GIF: персонаж их использует.
- Работают оба формата: HTML (
messages.html) и машиночитаемый JSON (result.json). - Перетащите папку экспорта или её
.zipна страницу.
WhatsApp
На телефоне: откройте чат → ⋮ → Ещё → Экспорт чата (iPhone: нажмите на имя контакта → Экспорт чата) → Включить медиа. Отправьте .zip на компьютер и перетащите его на страницу.
Чат, экспортированный без медиа, — это один .txt, и он тоже работает.
Большие экспорты
Экспорты на 100 000+ сообщений и несколько гигабайт работают так же: перетащите папку. Страница показывает, что происходит:
- Чтение папки… подсчитывает файлы (браузеру может потребоваться время, чтобы перечислить десятки тысяч).
- Сначала чат. Страницы сообщений (или
result.json, или.txtWhatsApp) загружаются и читаются до медиа. Если этот экспорт уже импортирован, импорт заканчивается здесь и открывает его, и медиа не загружаются. Если медиа не помещаются на диск, вам сообщат, сколько места нужно, прежде чем отправлять что-либо крупное. - Загрузка 1,2 ГБ из 3,4 ГБ (35 %) · 9 000 из 30 905 файлов: медиа идут небольшими пакетами, один за другим. Браузер никогда не создаёт один гигантский запрос, а прерванный пакет повторяется отдельно. На собственном компьютере ограничения по размеру нет.
- Чтение сообщений: страница 37 из 121 · 36 000 сообщений: все страницы читаются один раз, параллельно.
- Проверка медиа и Перемещение медиа: файлы хешируются, чтобы найти дубликаты, и перемещаются (не копируются дважды) в папку данных.
- Сохранение, после чего открывается окно Новый чат.
Одновременно выполняется только один импорт; ошибка остаётся видимой в зоне перетаскивания, и можно выбрать папку заново.
В настольном приложении загрузки не происходит: приложение читает папку, .zip или .txt прямо из того места, где они лежат (шаги 4–6), что быстрее и не затрагивается проблемами браузера ниже.
Когда файл нельзя загрузить (браузер)
Файл, который браузер больше не может прочитать (перемещён, изменён или является заглушкой iCloud/OneDrive, которая не загружена), обнаруживается и пропускается, как и один файл, из-за которого пакет постоянно ломается: пакет делится, пока этот файл не будет изолирован. Пропущенные медиа в чате отображаются как отсутствующие; сообщение после импорта называет один из них, а консоль браузера перечисляет все. Если сам файл чата не может быть отправлен, импорт останавливается и называет его. Ошибки показывают, сколько байт получил сервер, например сервер получил 1 200 из 4 096 байт, поэтому проблему соединения легко отличить от проблемы браузера.
Во время импорта ничего не покидает ваш компьютер и модель не вызывается. Медиа описываются, только когда вы нажимаете Описать в медиатеке.
С rooftop --import <папка> папка читается на месте, а её файлы копируются, но никогда не перемещаются; ход работы записывается в журнал. Для огромного экспорта на том же компьютере это самый быстрый путь: без загрузки и без второй копии во временной папке.
Что распознаётся
| Источник | Файлы |
|---|---|
| Telegram HTML | messages.html, messages2.html, … |
| Telegram JSON | result.json (используется, если в папке нет messages.html) |
WhatsApp Chat with <имя>.txt (Android) или _chat.txt (iOS), в папке, .zip или отдельно |
- Telegram: текст с переносами строк, ссылки, цитаты и код; ответы и частичные цитаты; пересылки; правки; служебные сообщения; реакции; предпросмотры ссылок; фото, видео, видеосообщение, голосовое, аудио, файл, стикер (
.webp,.webm,.tgs), GIF, геопозиция, контакт, опрос и звонок. - WhatsApp: макеты Android и iOS, 12- и 24-часовые часы и оба порядка день/месяц, определяемые для каждого файла. Многострочные сообщения, правки и вложения сохраняются. Удалённые сообщения и уведомление о шифровании пропускаются, а
<Media omitted>помечается как недоступное.
Файлы медиа хешируются, поэтому стикер, отправленный пять раз, становится одним элементом медиатеки (stk_…, gif_…, pho_…).
Реакции в HTML-экспортах
HTML-экспорты не сообщают, кто поставил реакцию. В личных чатах реакция приписывается другому участнику, а при счёте 2 — обоим.