Как выгрузить посты телеграм-канала в Excel
Telegram не даёт выгрузить цифры, а сервис аналитики стоит $20 в месяц. Показываю, как ИИ-агент собрал бота: просмотры, реакции и репосты — в одну таблицу.
Смотри, какая штука. Telegram показывает статистику телеграм-канала красиво: просмотры, реакции, репосты, графики. А потом ты хочешь выгрузить посты в таблицу — свести цифры за полгода, найти, что зашло, собрать навигацию — и упираешься в стену. Кнопки «скачать» нет. Встроенный экспорт отдаёт архив, но статистики в нём нет. Остаётся копировать руками или платить сервису.
Я пошёл третьим путём: попросил ИИ-агента собрать мне инструмент. Полчаса — и все посты моего телеграм-канала лежат в таблице вместе с просмотрами, реакциями и репостами. Сейчас покажу, как это устроено, сколько стоит и где я по дороге получил по лбу.
Где посмотреть встроенную статистику телеграм-канала и почему её мало
Начнём с честного: если тебе нужно просто глянуть цифры, никакой бот не нужен.
Открываешь канал → три точки в правом верхнем углу → «Статистика». Там графики роста, охваты, источники подписчиков, просмотры по каждому посту. Для «посмотреть глазами» этого хватает.
Два ограничения, о которые все спотыкаются:
Статистика включается не сразу. Каналу нужно 50 подписчиков, группе — 500. Пока порог не набран, раздела просто нет в меню, и дело не в баге и не в версии приложения.
Выгрузки нет вообще. Цифры живут на экране: их нельзя скачать таблицей, нельзя посчитать среднее за квартал, нельзя отсортировать посты по реакциям. Хочешь свести данные — переписывай руками.
Вот на этом месте обычно и начинается поиск сервиса.
Сколько стоит сервис аналитики и что он даёт за эти деньги
Сервисы аналитики телеграм-каналов решают задачу за тебя: подключаешь канал, получаешь выгрузку в Excel со всеми цифрами. Обычная схема — неделя бесплатно, дальше подписка. На июль 2026 это порядка 20 долларов в месяц, то есть тысяч двадцать в год.
Если ты ведёшь каналы клиентам и сидишь в аналитике каждый день — плати, это нормальные деньги за экономию времени.
А если тебе нужно раз в месяц собрать дайджест и посмотреть, какие посты зашли? Тогда ты платишь двадцать долларов за пять минут работы. И платишь каждый месяц, пока пользуешься.
Тут вопрос не в жадности. Вопрос в том, что ты арендуешь то, что можно собрать один раз.
Показываю на своём примере, чтобы не быть голословным. Эта платформа с уроками, которую ты сейчас читаешь, — моя. Аналог на рынке стоит от 5 900 рублей в месяц плюс процент с каждой продажи. Тариф там начинается с тысячи учеников, а у меня их тридцать семь. Своя платформа обошлась в 15 рублей 68 копеек за июль — это хранилище под видео, всё остальное крутится на сервере, который у меня уже был. Собрал за пару вечеров, отбилось в первый же месяц.
Логика та же самая, просто масштаб другой.
Как выгрузить все посты телеграм-канала: три способа
Экспорт из Telegram Desktop: что попадает в архив, а что нет
Штатный способ. Telegram Desktop → три точки → «Экспорт истории чата» → выбираешь формат HTML или JSON.
Получаешь архив с текстами постов, датами, картинками и видео. Для чтения и переноса контента — отлично.
Но просмотров, реакций и репостов в этом архиве нет. Ни в HTML, ни в JSON. Экспорт отдаёт содержимое, а не статистику. Так что для задачи «посмотреть, что зашло» он бесполезен, и это не настройка, которую ты не нашёл, — этих данных там просто не бывает.
Сервис аналитики: быстро, но по подписке
Подключаешь канал, жмёшь «выгрузить», получаешь Excel. Работает, требует денег каждый месяц. Плюс сервис видит твой канал и твои цифры.
Свой скрипт на Telegram API: собрал один раз — пользуешься всегда
У Telegram есть API, и через него доступно всё то же, что показывает встроенная статистика, — только уже в виде данных, а не картинки.
Обычно на этом месте статьи заканчиваются фразой «но для этого нужны технические знания». Вот её мы и убираем.
Как ИИ-агент собирает такой инструмент
Смысл простой: ты описываешь задачу словами, агент пишет код. Не «напиши парсер на Python с использованием асинхронной библиотеки», а по-человечески — что на входе, что нужно на выходе.
Что писать агенту: задача словами вместо технического задания
Формулировка, с которой всё началось, звучала примерно так:
Нужен скрипт, который заберёт все посты моего телеграм-канала и положит в таблицу: ссылку, дату, текст, просмотры, реакции с разбивкой по эмодзи, репосты и комментарии. Таблицу открывать в Excel. Канал мой, доступ администратора есть.
Всё. Дальше агент сам выбрал библиотеку, сам разобрался с авторизацией, сам написал сохранение в файл. От меня потребовалось получить ключи доступа к API (это делается на сайте Telegram за пару минут) и один раз войти в аккаунт — код приходит в само приложение.
Работает это в любом инструменте, где агент видит твои файлы и умеет запускать код: чем Claude Code отличается от чата и Cowork, знакомство с интерфейсом OPENCODE. Если упрёшься в доступ — как платить за модели российской картой и как поднять свой сервер и не ловить блокировки.
Что пошло не так и сколько заняло на самом деле
А вот теперь честная часть, ради которой стоило всё это затевать.
Сам инструмент собрался быстро — минуты. А потом я поймал пять граблей подряд, и ни одну из них агент не поймал бы за меня.
Задвоение строк. Telegram при активной выгрузке иногда просит подождать — это нормальная часть протокола, а не ошибка. В первой версии пауза обрабатывалась перезапуском цикла, и выгрузка начиналась заново. На большом канале в таблице получились бы дубли постов. Заметил на чтении кода до запуска.
Лимит, который считает не то. Просишь «последние 200 постов» — получаешь 190. Потому что в одном месте считались сообщения канала, а в другом — строки таблицы, и служебные записи выпадали посередине. Мелочь, но выводы по такой таблице делать нельзя.
Пустой файл после получаса работы. Таблица записывалась в самом конце. Обрыв связи на двадцать пятой минуте — и на диске ноль. Теперь пишется по ходу.
Скрипт падал до первой строки логики. Код был написан под свежий Python, а запускался на версии постарше — синтаксис не совпал. Причём мои проверки говорили «всё в порядке»: я проверял одним интерпретатором, а запускал другим. Классика.
Файл входа лежал в папке проекта. Самое неприятное. После авторизации создаётся файл сессии — это фактически вход в твой аккаунт без пароля и без второго фактора. Он лежал в проекте, и если бы я выложил папку целиком, я бы раздал доступ к своему Telegram. Закрыл до публикации.
Вот тебе честный ответ на вопрос «а правда ли ИИ пишет код за тебя». Правда. Рабочий инструмент — за минуты. А дальше начинаются границы: паузы, лимиты, обрывы, версии, секреты. Их проверяешь ты, и это не «пока модели не научились», это твоя часть работы.
Готовый промт: копируй и отдавай агенту
Выше я честно перечислил пять граблей, на которые наступил. Логично не наступать на них второй раз — поэтому вот та же задача, но сформулированная уже с учётом каждой. Скопируй целиком и отдай агенту.
Нужен скрипт, который заберёт все посты моего телеграм-канала
и положит в таблицу.
Вход: канал мой, права администратора есть, ключи Telegram API
получу сам.
Выход: файл CSV с разделителем «;», чтобы Excel открыл его без
плясок с кодировкой.
Колонки: ссылка на пост, дата и время в моём часовом поясе,
текст, просмотры, реакции с разбивкой по эмодзи, репосты,
число комментариев.
Требования, которые важнее скорости:
1. Пиши строки в файл по ходу выгрузки, а не в самом конце.
Оборвётся связь на середине — собранное должно остаться
на диске.
2. Когда Telegram просит подождать (FloodWait) — жди ровно
столько, сколько он сказал, и продолжай с того же места.
Не перезапускай цикл: получу дубли постов.
3. Считай ровно то, что я прошу. Прошу последние N постов —
в таблице должно быть N строк постов, а не N сообщений
вперемешку со служебными.
4. Файл сессии клади вне папки проекта и добавь его
в .gitignore. Это вход в мой аккаунт без пароля и без
второго фактора.
5. Скажи, на какой версии Python это запускать, и проверь,
что синтаксис ей соответствует. Команду запуска дай готовую.
Перед запуском покажи код и объясни словами, что он делает
на каждом шаге.Что проверить до того, как жать запуск. Пять вопросов агенту — по одному на каждую граблю:
- файл пишется по ходу или в самом конце?
- что происходит, когда Telegram просит подождать: ждём и продолжаем или начинаем заново?
- сколько строк будет в таблице, если я прошу 200 постов?
- где лежит файл сессии и попадёт ли он в репозиторий?
- какой версией Python ты проверял и какой я буду запускать?
Если хоть на один ответ агент мнётся — пусть чинит до запуска, а не после.
Что в итоге лежит в таблице
Прогнал на своём канале про вайбкодинг и автоматизацию — 1 323 подписчика.
133 поста выгрузились за две секунды. В таблице по каждому: ссылка, дата в моём часовом поясе, текст, просмотры, реакции числом и разбивкой, репосты, комментарии.
Что сразу стало видно на данных за девять месяцев:
- медиана просмотров — 555, лучший пост — 1 350;
- реакции есть у 95 постов из 133, это 71 %, всего 1 674 реакции;
- репосты у 67 постов;
- у самого залайканного поста разбивка
🔥×59, ❤🔥×8, 🫡×4, 👏×3, ❤×2.
Последнее — как раз то, чего не даёт ни один график. Видно не «сколько реакций», а какими именно эмодзи люди отвечают: огонь за пользу, салют за смелость, сердце за личное. По этому сразу читается, какой контент во что попадает.
Как из таблицы собрать навигацию и дайджест канала
Дальше начинается интересное. Таблица — это сырьё, которое можно скормить обратно нейросети.
Отсортируй по просмотрам, возьми верхушку, отдай модели с задачей: «сгруппируй по темам и собери пост-навигацию со ссылками». На выходе — готовый навигатор по каналу, который раньше собирался руками час.
То же самое с месячным дайджестом: фильтруешь по датам, отдаёшь текст и ссылки, просишь сгруппировать по смыслам. Ссылки уже лежат в таблице готовыми, вставлять руками ничего не нужно.
И то же — с разбором: какие темы собирают репосты, в какие дни выходят лучшие посты, что просело за квартал.
Почему подписчиков канала выгрузить нельзя
Раз уж таблица собрана, сразу закрою вопрос, с которым сюда приходят чаще всего: «а список подписчиков так же выгрузить можно?». Нет. И дело не в кривом скрипте.
Telegram намеренно не отдаёт список подписчиков канала — это защита от массового сбора людей. За один запрос приходит максимум 200 человек, всего через этот метод получится вытащить порядка десяти тысяч, и то не у любого канала. Владелец в самом приложении видит примерно две сотни последних подписавшихся — и всё.
Поэтому когда сервис обещает «полный список подписчиков любого канала» — он либо отдаёт те же двести, либо годами собирает людей по крупицам через поиск. Полного списка сорокатысячного канала не существует ни у кого.
Что вместо этого реально можно собрать:
- Счётчики по постам — просмотры, реакции с разбивкой по эмодзи, репосты, число комментариев. Их и забирает скрипт из промта выше: видно, что заходит, а что нет.
- Тех, кто писал комментарии — это уже живые люди с именами, и вот их выгрузить можно.
- Участников чата обсуждения — это группа, а не канал, и ограничения там мягче.
То же самое с реакциями. Сколько их и какие — берётся легко, это обычные числа под постом. А вот поимённо, кто именно нажал огонёк, для канала обычным способом не отдаётся. Для розыгрыша «отметь победителя среди тех, кто отреагировал» это значит простую вещь: механику надо строить на комментариях, а не на реакциях.
Когда своё собирать не надо
Раз уж я топлю за свои инструменты, скажу и обратное. Собирать своё стоит не всегда.
Считай не «подписка против нуля», а подписка против сборки плюс поддержки. Сборка разовая, поддержка навсегда: что-то отвалится, что-то поменяется на стороне сервиса, и чинить будешь ты.
Дешёвую подписку почти никогда не окупает своя сборка. Сервис за пятьсот рублей в месяц — это шесть тысяч в год, а пара вечеров твоего времени стоит дороже. Тут проще заплатить.
Не трогай то, что дорого потерять. Приём платежей, бухгалтерия, документы. Пусть этим занимаются те, кто за это отвечает деньгами и лицензией.
Признак, что своё оправдано: ты платишь за объём, которым не пользуешься (тариф на тысячу пользователей при тридцати семи), или отдаёшь процент с оборота, который растёт вместе с выручкой. Вот тогда считай.
Частые вопросы
Можно ли выгрузить посты из чужого телеграм-канала? Этим способом — нет. Нужен доступ администратора к своему каналу. Для чужих каналов существуют сервисы аналитики, они собирают публичные данные.
Со скольки подписчиков доступна статистика телеграм-канала? С 50 для каналов и с 500 для групп. Пока порог не набран, раздела «Статистика» в меню не будет.
Почему не отображается статистика в телеграм-канале? Три причины по частоте: не набран порог подписчиков; ты смотришь не в том меню (нужен раздел канала, а не чата); ты не администратор канала.
Как посмотреть статистику старых постов? Встроенная показывает ограниченный период, и чем старше пост, тем меньше по нему видно. Как раз поэтому выгрузку стоит делать регулярно — данные копятся у тебя, а не у Telegram.
Как посчитать вовлечённость в телеграм? Реакции и комментарии делишь на просмотры. По таблице это одна формула на весь столбец, руками считать не нужно.
Какой ER считается хорошим в телеграме? Ориентир — несколько процентов, но сравнивать имеет смысл только со своими же прошлыми цифрами: в разных нишах и на разных размерах каналов «хорошо» выглядит по-разному.
С чего начать
Если ты вообще ни разу не собирал ничего своего — не начинай с этого скрипта. Начни с того, чтобы понять, какие функции ИИ закрывает первыми, и посмотри бесплатные боты для расшифровки видео и сбора референсов: там короче цикл и результат виден в тот же вечер.
А если руки уже чешутся — бери задачу, которую делаешь руками каждую неделю и тихо ненавидишь. Опиши её словами: что на входе, что нужно на выходе. Отдай агенту. Проверь на границах — на паузах, на обрывах, на пустых данных.
А если хочешь понять сам подход целиком — как ставить задачу словами и где код от нейросети ломается: нейросеть, которая пишет код: с чего начать.
И помни главное: инструмент, который ты собрал сам, не подорожает в следующем месяце.
Под постами канала живёт ещё один пласт данных — обсуждение. Как выгрузить комментарии телеграм в Excel, разбираю отдельно: механика там другая, потому что комментарии лежат не в канале, а в связанном чате.
Что делать с выгрузкой дальше
Таблица постов — это сырьё. По ней считается ERR телеграм-канала: средние просмотры к подписчикам, формула прямо в ячейке, без сервисов аналитики.
Если публикуешь по графику, а не руками, — там же лежит автопостинг в Телеграм-канал: бот, токен и расписание вместо подписки на планировщик.
А когда контент нужно дублировать на другую площадку, механика та же: перенести посты из Telegram в MAX.