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

Письмо от Тимофея Мартынова
Мёртвая аудитория — это падение вовлеченности (ER — уровень вовлеченности, ERR — вовлеченность на охват), потеря интереса со стороны рекламодателей и снижение позиций канала в поиске Telegram. Особенно сейчас, когда алгоритмы всё больше ориентируются на наличие Premium-подписчиков.
ERR каналаВ этой статье покажу, как выявить и удалить нежелательных подписчиков с помощью open-source скрипта на Python — который работает даже несмотря на ограничения Telegram API, позволяющий получить лишь последние 200 участников.
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).
Скачайте скрипт с github.com/empenoso/telegram-channel-pruner
Откройте меню Пуск → введите cmd → нажмите Enter. В открывшемся окне введите:
<code class="bash">git clone https://github.com/empenoso/telegram-channel-pruner.git cd telegram-channel-pruner</code>
Если у вас не установлен Git — скачайте отсюда и установите, а потом повторите.
Создайте виртуальное окружение (рекомендуется)
<code class="bash">python -m venv venv .\venv\Scripts\activate</code>
Установите зависимости (библиотеки)
<code class="bash">pip install -r requirements.txt</code>
Перейдите на сайт https://my.telegram.org
→ войдите через Telegram
→ зайдите в раздел API development tools
→ создайте приложение
→ скопируйте api_id и api_hash.
Создайте файл .env в папке со скриптом. Вставьте туда:
<code># .env api_id=хххххххх # Замените на ваш API ID api_hash='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # Замените на ваш API Hash phone_number=+xxxxxxxxxxx # Ваш номер телефона для входа (если сессия новая)</code>
Пример:
api_id=1234567
api_hash=abcd1234abcd5678efgh9012ijkl3456
hone_number=+79991234567
Откройте файл channel_cleaner.py (через Блокнот или VS Code) и замените строку:
<code class="python">CHANNEL_USERNAME = 'homeinv'</code>
на ваш юзернейм канала, например:
<code class="python">CHANNEL_USERNAME = 'mychannel'</code>
Все команды нужно запускать в окне cmd из папки telegram-channel-pruner, с активированным окружением (venv).
Проверка работы скрипта
<code class="bash">python channel_cleaner.py info</code>

<code class="bash">python channel_cleaner.py save</code>
Сохранит файл с последними 200 подписчиками, чтобы вы могли посмотреть, кто подписался.

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

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