Казалось бы - все бьются над увеличением количества подписчиков в своих Telegram-каналах - зачем уменьшать их число?
Я сам заинтересовался этой темой после странного всплеска трафика. Опубликовал статью про голосовых ассистентов - и из-за неудачного заголовка она внезапно стала вирусной. Обычно мои тексты собирают около 7 тысяч просмотров (медиана), но в этот раз счётчик вырос до 148 тысяч. А до этого я уже слышал истории, как на каналы без рекламы и инфоповодов «наливаются» сотни или тысячи подписчиков. Звучит как подарок судьбы, но на практике это тревожный сигнал: чаще всего - это фейковые аккаунты.
Мёртвая аудитория - это падение вовлеченности (ER - уровень вовлеченности, ERR - вовлеченность на охват), потеря интереса со стороны рекламодателей и снижение позиций канала в поиске Telegram. Особенно сейчас, когда алгоритмы всё больше ориентируются на наличие Premium-подписчиков.

В этой статье покажу, как выявить и удалить нежелательных подписчиков с помощью open-source скрипта на Python - который работает даже несмотря на ограничения Telegram API, позволяющий получить лишь последние 200 участников.
Почему Telegram не даёт полного списка подписчиков канала?
Telegram ограничивает доступ к списку подписчиков каналов через официальное API. Максимум, что можно получить - это 200 последних подписчиков методом ChannelParticipantsRecent
. Причём Telegram не предоставляет параметров для сортировки или фильтрации по дате вступления, что делает задачу модерации практически невозможной.

Это ограничение - защита от накруток и массового сбора данных, но в то же время оно мешает администраторам выявлять ботов и проводить чистку. В группах всё иначе: там API позволяет получить полный список участников, что открывает больше возможностей для анализа.
Для частичной аналитики можно использовать сторонние сервисы вроде TGStat и Telemetr (возможно ещё какие-то) - они показывают прирост подписчиков и вовлечённость.
Альтернативные варианты собрать всех подписчиков
Я думал изменить тип канала на частный - это могло бы открыть доступ ко всем подписчикам. Но тогда Telegram сбросил бы все пригласительные ссылки, включая те, что уже размещены в статьях на сторонних ресурсах. А изменить их задним числом невозможно.

Поэтому я решил разрабатывать скрипт, который работает с доступными 200 последними подписчиками.
Скрипт очистки: удаляем новых подписчиков после даты
Эта инструкция для продвинутого пользователя Windows. Более простая инструкция в другой моей статье с этой же библиотекой.
Что нужно заранее:
Компьютер с Windows.
Установленный Python (скачать с python.org, при установке обязательно включите галочку "Add Python to PATH").
Telegram-аккаунт, зарегистрированный по номеру телефона.
Юзернейм канала (например,
@mychannel
).Готовность скопировать 2 строки с сайта Telegram (API ID и API HASH).
Установка
-
Скачайте скрипт с https://github.com/empenoso/telegram-channel-pruner
Откройте меню Пуск → введитеcmd
→ нажмите Enter. В открывшемся окне введите:git clone https://github.com/empenoso/telegram-channel-pruner.git cd telegram-channel-pruner
Если у вас не установлен Git - скачайте отсюда и установите, а потом повторите.
-
Создайте виртуальное окружение (рекомендуется)
python -m venv venv .\venv\Scripts\activate
-
Установите зависимости (библиотеки)
pip install -r requirements.txt
Настройка Telegram API
Перейдите на сайт https://my.telegram.org
→ войдите через Telegram
→ зайдите в раздел API development tools
→ создайте приложение
→ скопируйтеapi_id
иapi_hash
.-
Создайте файл
.env
в папке со скриптом. Вставьте туда:# .env api_id=хххххххх # Замените на ваш API ID api_hash='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # Замените на ваш API Hash phone_number=+xxxxxxxxxxx # Ваш номер телефона для входа (если сессия новая)
Пример:
api_id=1234567
api_hash=abcd1234abcd5678efgh9012ijkl3456
hone_number=+79991234567
-
Откройте файл
channel_
cleaner.py
(через Блокнот или VS Code) и замените строку:CHANNEL_USERNAME = 'homeinv'
на ваш юзернейм канала, например:
CHANNEL_USERNAME = 'mychannel'
Как использовать
Все команды нужно запускать в окне cmd
из папки telegram-channel-pruner
, с активированным окружением (venv
).
Проверка работы скрипта
python channel_cleaner.py info

Сохранить последних подписчиков в CSV
python channel_cleaner.py save
Сохранит файл с последними 200 подписчиками, чтобы вы могли посмотреть, кто подписался.

Удалить подписчиков после определённой даты
python channel_cleaner.py kickbydate --after-date "2025-08-01 10:40:00"
Замените дату на свою — в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
, по московскому времени.
Скрипт покажет, кого собирается удалить, и спросит подтверждение.
Важно:
Вы должны быть админом канала с правами на удаление подписчиков.
Скрипт работает только с 200 последними подписчиками, но удаляет их порциями, пока не встретит «старых».
Все удалённые пользователи записываются в файл
kicked_users.csv
.Необратимость: используйте на свой страх и риск. Удаление подписчиков - необратимый процесс.

Заключение
Борьба за чистоту аудитории в Telegram - задача не из лёгких, особенно когда сам мессенджер ограничивает доступ к данным. Однако можно отслеживать всплески подписок, анализировать подозрительную активность и удалять фейков вручную.
Скрипт, о котором я рассказал не универсальное решение, но это рабочий инструмент.
Чем раньше начать чистку, тем меньше придётся разгребать потом. А вы боретесь с накруткой?
Автор: Михаил Шардин
? Моя онлайн-визитка
? Telegram «Умный Дом Инвестора»
05 августа 2025 года
Klochko
А что если взять обычного бота и поставить админом в канал? Обычные боты стучат в вебхук событие new_chat_member в котором есть вся базовая информация о пользователе. И просто этим ботом собирать информацию и складывать в отдельную БД?
Понятное дело, что пост-фактом смысла в этом маловато, но лучше поздно чем никогда. И вот этот бот может собирать информацию: кто подписался; кто отписался; может удалять пользователей. И все это может лежат в БД. С пользователем и всей историей его «миграции». И это работает и в каналах и чатах. А затем выборочно можно удалять кого-то тем же ботом не прибегая к юзерботам и странным ограничениям тг.
empenoso Автор
Да, поставить бота, который сразу записывает новых подписчиков в базу, это отлично следить за аудиторией канала.
В статье я описывал другую ситуацию: всплеск уже произошёл, и нужно как-то разобраться с теми, кто уже подписался. Ведь проблема в том, что если бот не стоял с самого начала, он не сможет узнать, кто именно пришёл раньше.
Поэтому мой скрипт скорее «аварийный» инструмент.