Как я восстановил удаленные сообщения телеграммы и медиа (и вы тоже можете)

Как я восстановил удаленные сообщения телеграммы и медиа (и вы тоже можете)

20 июня 2025 г.

Потеряные годы истории телеграммы по ошибке выглядела как кошмар. Вот как я обратно инженерный журнал администратора Telegram, чтобы вернуть все это.

Берегись: Этот метод работает только для групповых чатов и каналов-не для частных разговоров один на один.


Авария, которая начала все это

На23 сентября 2024 годаЯ сделал катастрофическую ошибку.

Я случайно удалилВсе сообщения и медиаиз группы Telegram Gatch с моими близкими друзьями - разговором, который охватилТри года, включентысячи файлови заканчивая350 000 сообщенийПолем

Телеграмма дает вам простопять секундотменить удаление. Я пропустил окно.

Gopher is unhappy
Паника. Сожалеть. Отчаяние.

Кто я?

Привет, яДмитрий ГусевВразработчик фронтанаКирпичикоманда вАвитоПолем Это не пост о моей работе-речь идет о очень личном техническом вызове, которая превратилась в мини-инспектор, кодовый проект и в конечном итоге ... успешное выздоровление.

Возможно ли восстановление возможным?

Telegram не предлагает никакого официального метода для восстановления удаленных групповых сообщений или медиа. Их экспортный инструмент работает только ссуществующийДанные - не удаляемый контент.

Но я нашел подсказку:Недавние действияПолем

Если вы администратор группы или канала, вы можете увидеть там удаленные сообщения, ноТолько в течение 48 часови нет кнопки «восстановления».

Тем не менее, я подумал:

Если телеграмма показывает там удаленные сообщения ... они должны храниться где -нибудь. Может, я смогу их вытащить.

Введите: Mtproto

Телеграмма имеет два основных API:

  • Бот API- Упрощенное, безопасное, ограниченное
  • MTProto API- сложный, мощный и незарегистрированный по частям

Я понял, что единственный способ получить доступ к удаленному контенту былMtprotо, в частностиGetAdminLogRequestметод

Я нашел старый, баггический сценарий наGitHub Gistчто попробовал это. Это не сработало, но это дало мне отправную точку.

Создание инструмента восстановления

Я переписал и расширил сценарий. Вот что теперь может сделать мой инструмент:

  • [x]Выдержка удаленатекстовые сообщения
  • [x]Скачать удаленСМИ файлы
  • [x]Экспортировать данные в чистыйdump.json
  • [x](Необязательно)ПриезжатьСообщения/носитель в группу телеграммы или чат

Я использовалТелефон, библиотека Python для взаимодействия с API Telegram MTProto.

Мы с друзьями решили восстановить только медиа -файлы - сбрасывание сообщений 350K заняло бы дни.

Сценарий длился ~ 8 часов. Он успешно скачалкаждый медиа -файлУдаляется в этом случайном протирке. Кризис предотвратил.


📦 Как использовать инструмент

Вы тоже можете попробовать это. Вот полный гид.

1. Установите Python3

Пользователи Mac: установитьДомашнийСначала, затем Python 3.

Windows/Linux: используйтеОфициальный сайтПолем

УстановитьVSCODEИли другая IDE и настройка Python.

2. Клонировать репо

Установите git и клонировать проект:

git clone https://github.com/sw1tch3roo/tg-message-lifeguard.git
cd tg-message-lifeguard

3. (Необязательно) Создайте виртуальную среду

python3 -m venv venv
source venv/bin/activate  # macOS/Linux
.\venv\Scripts\activate   # Windows

4. Установите зависимости

pip install -r requirements.txt

5. Получить учетные данные телеграммы

  1. Идти вhttps://my.telegram.org
  2. Войдите на свой телефон
  3. Перейти кИнструменты разработки API
  4. Сохраните свойapi_idиapi_hash

Вам также понадобится внутренний идентификатор вашей группы или канала - следуйтеинструкции сценарияЧтобы получить это.

6. Запустите сценарий резервного копирования

python3 -m src.backup

Вам будет предложено:

  • api_id
  • api_hash
  • Ваш номер телефона
  • Идентификатор чата вашей группы

❗ Примечание: Вы должны использовать свою учетную запись личной телеграммы, а не бот - у ботов нет доступа к журналам администратора.

Вы можете выбрать экспорт:

  1. Только текст
  2. Только СМИ
  3. И текст, и медиа

Вы также можете указать:

  • Диапазон сообщений (min_message_idВmax_message_id)
  • Ваша группа или идентификатор канала (group_chat_id)

🔢 Как работа min_message_id и max_message_id:

Это определяет диапазон сообщений для экспорта:

  • min_message_id = 0→ Начать с самого первого сообщения в чате
  • max_message_id = 0→ Экспорт всех доступных сообщений

Например:

min_message_id = 23456
max_message_id = 25673

Это будет экспортировать только сообщения в этом диапазоне, включая носитель.

8. Пусть он бежит

Файлы и метаданные будут сохранены в папке с названиемbackup_will_be_inside_meПолем Вы можете прервать и возобновить в любое время - скрипт поддерживает возобновление через идентификатор сообщения.

⚠ Каждый файл медиа сохраняется с соответствующим идентификатором сообщения в качестве имени файла. Это чрезвычайно полезно, если сценарий остановится, и вам нужно возобновить. Просто перезапустите сценарий и установитеmin_message_idдо последнего загруженного удостоверения личности - экспорт забрает оттуда.

Как это выглядит

  • .jsonФайл с метаданными сообщениями и идентификаторами
  • Скачанные медиа: фотографии, видео, документы
  • Простое отображение между идентификатором сообщения и файлом

Вы также можете использовать компаньонаresender.pyСкрипт, чтобы повторно сообщить о контенте в Telegram.

Уроки извлечены

  • Телеграмма делаетВременно хранить удаленный контентдля групповых чатов
  • ТыможетДоступ к этим данным через MTProto, если вы действуете в течение 48 часов
  • Сценарии с использованием телетона иGetAdminLogRequestможет скачать его
  • Частные чаты? К сожалению, нет возможности восстановить тех, кто когда -то удален

Репо

🛠 Проверьте инструментздесьПолем

Открыто для вкладов, предложений или отчетов об ошибках!


Последние мысли

То, что началось как глупая ошибка, превратилось в глубокое техническое погружение - и удивительный успех. Я надеюсь, что этот инструмент поможет вам, если вы когда -нибудь окажетесь в подобной ситуации.

Есть вопросы? ДммнеИли оставьте комментарий - рад помочь.

И, эй - может быть, вернись твои любимые чатысегодня, на всякий случай.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE