Как выгрузить комментарии телеграм в Excel
Комментарии лежат не в канале, а в связанном чате обсуждения — поэтому их нет в экспорте. Показываю, где они, и три способа собрать их в таблицу.
Смотри. Под постом четыреста комментариев: розыгрыш, надо выбрать победителя и никого не обидеть. Или за месяц двести человек написали, чего им не хватает, — это готовый контент-план, если прочитать его целиком.
Ты идёшь в экспорт канала, открываешь архив, а комментариев там нет. Ни одного.
Это не баг и не настройка, которую ты не нашёл. Комментарии физически лежат не в канале. Сейчас покажу, где именно, и три способа собрать их в таблицу — от «пятнадцать минут без кода» до своего скрипта.
Почему комментариев нет в выгрузке телеграм-канала
Когда ты включаешь комментарии, Телеграм заводит рядом с каналом обычную группу: в настройках она называется «Обсуждение», в документации — связанный чат. Каждый твой пост автоматически пересылается копией в эту группу. А комментарии — это ответы на ту самую копию. Не на пост в канале, а на его двойника в чате.
Это не моя догадка. В документации Telegram сказано прямым текстом: раздел комментариев поста — это ветка ответов на автоматически пересланное в связанную группу сообщение канала. Там же и проверка: удали из группы эту копию — комментарии под постом отключатся. Отключать станет нечего.
Отсюда всё остальное:
- экспорт канала отдаёт посты и не отдаёт комментарии — они в другом чате, и никакая настройка их туда не добавит;
- выгружать нужно чат обсуждения, а не канал;
- связь «этот комментарий — к этому посту» не теряется: в корне каждой ветки лежит тот самый пересланный пост.
Улавливаешь мысль? Задача превращается из «выгрузить комментарии» в «выгрузить один чат и разложить его по веткам». А это уже решается.
Этим комментарии и отличаются от постов: другой источник, другой способ. Сшивать две таблицы придётся самому, по номеру поста. Если цифр по постам ещё нет, начни с них: выгрузка постов канала в Excel.
Когда таблица комментариев реально нужна
Скажу честно: если под постами по три комментария, таблица не нужна — глазами быстрее. Она нужна, когда комментариев больше, чем ты готов прочитать подряд.
Розыгрыш. Четыреста участников, надо выбрать победителя, отсечь тех, кто написал после дедлайна, и убрать дубли: человек оставил пять комментариев, а шанс у него должен быть один.
Обратная связь. Двести комментариев за месяц — это уже данные: видно, что спрашивают чаще всего и о чём спорят. Готовый контент-план, который не надо выдумывать.
Лиды. Кто написал «а сколько стоит» или «как попасть» — тёплые. В ленте они теряются через день, в таблице лежат с датой и ссылкой.
Отчёт клиенту. Если ведёшь чужие каналы, «обсуждение выросло вдвое» с таблицей звучит иначе, чем на словах.
Какие поля должны быть в таблице комментариев
Определись до выгрузки, что хочешь получить на выходе. Иначе соберёшь гору текста без дат и авторов.
| Поле | Зачем нужно | Что учесть |
|---|---|---|
| Дата и время | сортировка, отсечка розыгрыша по дедлайну | сразу приведи к своему часовому поясу |
| Имя автора | понять, кто это | имена повторяются и меняются, ключом быть не могут |
| @username | позвать человека, отметить победителя | есть далеко не у всех |
| Внутренний номер автора | склеить все комментарии одного человека | единственный надёжный ключ для дублей |
| Текст комментария | ради него всё и затевалось | |
| Номер поста | к какому посту относится | берётся из корня ветки |
| Кому отвечали | отличить ответ каналу от спора двух подписчиков | |
| Ссылка на комментарий | открыть в один клик и ответить |
Две вещи, о которые спотыкаются на розыгрышах. У части людей нет @username: победителя не отметишь и в личку не напишешь, останется ждать, пока сам отзовётся. И комментарий может прийти от имени канала — так пишут анонимные админы, человека в строке не будет вовсе. Реши на берегу, что с такими делаешь.
Три способа выгрузить комментарии в таблицу
| Способ | Что достаёт | Сколько времени | Кому подходит |
|---|---|---|---|
| Экспорт чата обсуждения | всю историю комментариев | 15 минут, без кода | разовая задача |
| Свой скрипт через API | всю историю и ровно нужные поля | вечер вместе с ИИ-агентом | если делать каждый месяц |
| Бот в чате | только то, что придёт после подключения | полчаса | розыгрыш, который ещё впереди |
| Платный сервис | как повезёт с тарифом | подписка | если возиться некогда |
Экспорт чата обсуждения: пятнадцать минут и без кода
Штатный способ, работает на любом канале, где комментарии включены.
Открываешь чат обсуждения — именно его, не канал. Проще всего нажать «Комментарии» под любым постом, откроется та самая группа. Дальше в Telegram Desktop три точки — «Экспорт истории чата», формат JSON. HTML бери, только если собираешься читать глазами: для таблицы он неудобен.
В архиве окажутся все сообщения группы разом: пересланные посты, комментарии к ним и служебные записи вроде «такой-то вступил в группу». Лишнее отфильтруешь.
Остаётся превратить файл в таблицу. Быстрее всего — отдать его нейросети и попросить разложить по столбцам из таблицы выше. Если чат большой, целиком он в один запрос может не влезть: режь по месяцам или попроси написать маленький конвертер. Как ставить такие задачи: нейросеть для Excel.
Готовый промт: превратить экспорт в таблицу
Выше сказано: отдай файл нейросети и попроси разложить по столбцам. Вот эта просьба, уже написанная — со всеми оговорками из таблицы полей, чтобы не собирать их заново руками.
У меня есть result.json — экспорт чата обсуждения телеграм-канала
из Telegram Desktop. Нужен скрипт, который превратит его
в таблицу комментариев.
Выход: CSV с разделителем «;», Excel открывает без танцев
с кодировкой.
Колонки: дата и время (перевести в UTC+3), имя автора,
@username, внутренний номер автора, текст комментария,
номер поста, кому отвечали, ссылка на комментарий.
Если @username в экспорте нет — оставь колонку пустой,
не выдумывай и не подставляй туда имя.
Что учесть:
1. В файле лежат все сообщения группы разом. В таблицу берём
только комментарии: сообщение без reply_to_message_id —
это сам пост, служебные записи («вступил в группу»,
«закрепил сообщение») выкидываем.
2. Ветка бывает глубокой: человек отвечает человеку, тот —
третьему. Номер поста бери по корню ветки, поднимаясь
по reply_to_message_id до сообщения, у которого его нет.
3. В колонке «кому отвечали» отличай ответ самому посту
от ответа другому подписчику.
4. Поле text бывает строкой, а бывает массивом кусков
с форматированием. Склей в обычный текст, ничего не потеряв.
5. Комментарий может прийти от имени канала — это анонимный
админ, человека там нет. Помечай такие строки отдельной
колонкой, а не выкидывай.
6. Ключ для склейки «все комментарии одного человека» —
внутренний номер автора, а не имя: имена повторяются
и меняются.
7. Файл может весить сотни мегабайт. Читай потоково и пиши
по ходу, не загружай всё в память.
Перед запуском покажи код и объясни, что он делает.Проверь на глаз, что таблица собралась правильно. В ней нет строки с самим постом и нет «вступил в группу». У ответа подписчику в колонке «кому отвечали» стоит имя человека, а не «посту». Комментарии одного человека склеиваются по номеру, даже если он менял имя.
Свой скрипт: когда выгружать надо регулярно
Разовая история — не связывайся, хватит экспорта. Каждый месяц отчёт, раз в неделю розыгрыш — собирай инструмент.
Смысл тот же, что и всегда: ты описываешь задачу словами, агент пишет код. Важно с первой фразы сказать ему, где лежат комментарии, иначе он пойдёт искать их в канале и упрётся в ту же стену, что и ты.
Нужен скрипт: выгрузить комментарии к постам моего телеграм-канала в таблицу. Важно: комментарии лежат не в канале, а в связанном чате обсуждения. Комментарии к посту — это ветка ответов на автоматически пересланное в эту группу сообщение канала. По каждому комментарию нужны: дата, номер и имя автора, @username, текст, номер поста и ссылка на комментарий. Результат — CSV с заголовками, открывается в Excel. Файл писать по ходу выгрузки, а не в конце.
Четыре вещи проверь в готовом скрипте руками. Это не паранойя, это та часть работы, которую агент за тебя не делает.
Файл входа. После авторизации на диске появляется файл сессии — фактически вход в твой аккаунт без пароля и без второго фактора. Он не должен лежать в папке, которую ты кому-то отправишь.
Паузы. При активной выгрузке Телеграм иногда просит подождать — это часть протокола, а не ошибка. Обработаешь паузу перезапуском цикла — выгрузка пойдёт заново и в таблице будут дубли.
Ветки. «Ответ» в чате обсуждения может указывать и на пост, и на другой комментарий. Группировать надо по корню ветки, иначе часть комментариев потеряет привязку к посту.
Пустые авторы. Удалённые аккаунты и сообщения от имени канала дадут строки без человека. Пусть скрипт пишет их честно, а не пропускает молча: иначе не поймёшь, почему строк 380, а не 400.
Бот в чате: ловит только новое
Соблазнительная идея: посадить бота в чат обсуждения, пусть собирает. Работает, но с жёстким ограничением — лучше узнать о нём сейчас, чем в день розыгрыша.
В списке методов Bot API нет ни одного, который отдаёт историю чата. Бот видит только то, что пришло после его добавления в группу, а непрочитанные обновления сервер держит не дольше суток. Прошлое он не восстановит совсем.
Зато дальше он метит всё сам: у пересланного из канала сообщения есть служебный признак автопересылки, по нему бот понимает, к какому посту относится ветка, и пишет участников в таблицу сразу. Схема для тех, кто планирует розыгрыш заранее.
Как выгрузить комментарии к одному посту
Частый случай: нужен не весь год, а один пост — тот самый, с розыгрышем.
Возьми ссылку на пост, последнее число в ней — его номер. Выгрузи чат обсуждения целиком и отфильтруй таблицу по столбцу с номером поста. Отдельной кнопки «выгрузить только эту ветку» искать не стоит: фильтр всё равно понадобится, а выгрузка пригодится ещё не раз.
Если пост один, а комментариев пара десятков — не выдумывай: открой ветку, выдели, скопируй в таблицу. Пять минут против пятнадцати.
И держи в голове: в ветке лежат не только ответы каналу, но и разговоры людей между собой. Для розыгрыша считаешь всех, для «что у меня спросили» — отсекаешь строки, где отвечали соседу.
Как собрать всех, кто писал комментарии
Первое правило: склеивай людей по внутреннему номеру автора, а не по имени. Имена повторяются, люди их меняют, а у части нет даже @username. Номер не меняется никогда.
Дальше три действия закрывают почти любой розыгрыш. В Google-таблицах и свежем Excel это UNIQUE (список уникальных участников), COUNTIF (сколько раз человек написал) и RANDBETWEEN вместе с INDEX (случайный победитель). В русском интерфейсе имена функций переведены, подсказка подставит их сама. В старых версиях дубли убираются через «Данные» → «Удалить дубликаты».
Важное ограничение, чтобы не пообещать лишнего в условиях: выгрузка не знает, подписан ли человек на канал, она про чат обсуждения. Если условие «быть подписанным» принципиально, проверять придётся вручную.
И совет из практики: сохрани исходную таблицу до жеребьёвки. Когда объявишь победителя, обязательно найдётся тот, кто спросит, как считали.
Что делать с готовой таблицей комментариев
Сама по себе она мало что даёт. Интересное начинается, когда её с чем-то соединяют.
Сшить с постами. Склей две таблицы по номеру поста — получишь одну строку на пост: текст, просмотры, реакции и число комментариев рядом. Видно то, чего не показывает ни один график: какие темы читают молча, а какие заставляют людей писать. Заодно в той же таблице можно посчитать ERR канала по всей истории и сравнить разговор с охватом.
Отдать нейросети. Сгруппируй комментарии по темам, вытащи все вопросы, найди повторяющиеся. На выходе — список того, что твоя аудитория не понимает, написанный словами самих людей. Это и контент-план, и раздел «частые вопросы», и сценарий вебинара.
Найти тёплых. Отфильтруй строки со словами «сколько», «цена», «как попасть». Это люди, которые уже подняли руку, а ты, скорее всего, ответил им в ленте и забыл.
Границы: чего с этой таблицей делать не стоит
Раз уж я показываю, как собирать данные людей, скажу и обратное. Свой чат, публичные сообщения, аналитика своего контента — нормально: люди писали открыто, ты читаешь их открыто.
Дальше чужая территория. Массовая рассылка в личку тем, кто просто оставил комментарий, — спам, и Телеграм за такое ограничивает аккаунты. Передавать или продавать список тем более не надо: люди разговаривали с тобой, а не оставляли контакты. И не выкладывай таблицу целиком ради прозрачности розыгрыша — имена и переписка это их данные.
Правило простое. Данные из твоего чата нужны, чтобы принимать решения о своём контенте. Как только они превращаются в базу для холодной рассылки, ты уже не аналитик, а тот, от кого отписываются.
Начни с малого. Выгрузи чат обсуждения за месяц и посмотри, какие три поста собрали больше всего разговора. Пятнадцать минут — и сам увидишь, чего в этой таблице не хватает лично тебе. Вот тогда и есть смысл собирать скрипт. Погнали.