← бесплатные уроки вход для учеников
бесплатный урок

Автопостинг в Телеграм-канал бесплатно, без сервисов

В Телеграме уже есть штатное отложенное — многим его хватит. Разбираю, когда мало, как собрать бота с расписанием и где всё это ломается.

Смотри. У тебя канал, и посты ты пишешь пачками: сел в воскресенье, накидал шесть штук. А выходить они должны по одному и в нормальное время — не в три часа ночи, когда тебя накрыло вдохновением.

Дальше начинается ручная работа. Каждый день вспомнить, зайти, скопировать, опубликовать. Уехал, заболел, закрутился — канал молчит. Ты идёшь искать планировщик, а планировщик просит подписку. Каждый месяц, пока пользуешься.

А половине людей платить вообще не за что: нужное уже встроено в сам Телеграм. Об этом почему-то не пишут те, кто продаёт планировщики. Второй половине хватит своего бота и скрипта, который ты соберёшь, описав задачу словами. Разберём оба пути — включая то, где каждый разваливается.

Зачем публиковать по расписанию

Дело не в лени. «Написать пост» и «выпустить пост» — две разные работы, и делать их лучше в разное время.

Текст пишется настроением: пришла мысль — сел и написал три штуки подряд. Выходить они должны ритмом: аудитория привыкает, что у тебя вторник и четверг, и начинает ждать. Ритм держит канал сильнее, чем гениальность отдельного поста.

Плюс бытовое. Отпуск, самолёт, тяжёлая неделя на основной работе. Канал, который живёт только на твоей ежедневной дисциплине, гаснет в первый же сложный месяц.

СпособЧто умеетСколько возниГде ломается
Штатное отложенное в Телеграмеодин пост на выбранную дату и время10 секунд на постнет повторов, нет заливки пачкой, много каналов — задолбаешься
Бот и скрипт на своём компьютерепачка постов из файла, любая своя логикавечер вместе с нейросетьюработает, только пока компьютер включён
Бот и скрипт на своём серверето же самое, но круглосуточноплюс полчаса на серверсервер стоит денег и его надо один раз настроить

Правило простое: начинай сверху. Задача закрывается штатной кнопкой — закрывай кнопкой, не выпендривайся.

В Телеграме уже есть отложенная публикация

Она встроена, она бесплатная, и половина людей о ней не знает.

Пишешь пост в канал как обычно. Дальше не жмёшь кнопку отправки, а зажимаешь её — на компьютере правый клик по той же кнопке. Выскакивает меню с выбором даты и времени. Подписи в разных версиях свои, но смысл один: отправить позже.

Дальше самое важное. Пост уходит с серверов Телеграма, а не с твоего телефона. Телефон может быть выключен, разряжен или лежать в другой стране — пост всё равно выйдет. Этого не умеет ни один скрипт на твоём ноутбуке.

Запланированное собирается в отдельный список рядом с полем ввода: заходишь, правишь текст, двигаешь время, удаляешь или отправляешь прямо сейчас. Работает в каналах, где ты администратор с правом публиковать.

Чего у штатного нет — повторов. «Каждую пятницу в 10:00» задать нельзя, только конкретную дату. И бесконечно набивать очередь не выйдет: предел есть, и планируя на полгода вперёд, ты в него упрёшься.

Для одного канала и десятка постов в месяц — всё, тема закрыта. Иди планируй, дальше можешь не читать.

Когда штатного мало

Четыре ситуации, где ручное планирование перестаёт работать.

Каналов больше одного. Три канала, в каждом свой график — это три раза одна и та же работа. Плюс однажды промахнёшься каналом, и пост про распродажу уедет не туда.

Контент-план живёт в таблице. Сорок постов в Google Таблице: дата, время, текст, картинка. Штатное отложенное потребует сорок раз повторить руками одну процедуру. Скрипт заберёт файл целиком и разложит по времени сам.

Есть повторяющиеся посты. Правила чата первого числа, анонс эфира каждую пятницу, напоминание раз в неделю. Штатное такое не умеет, скрипту это одна строчка.

Пост собирается сам. Курс валют на утро, новые товары из выгрузки, дайджест ссылок за неделю. Тут вообще нечего планировать заранее — текст рождается в момент отправки.

И сразу скажу, чего в этой статье нет. Если задача не про расписание, а про то, чтобы те же посты жили ещё на одной площадке, — это другая механика: перенести посты из Telegram в MAX.

Бот с расписанием: из чего это собрано

Тут пугаются раньше времени, поэтому разложу на четыре детали. Аналогия простая: бот — сотрудник с ключом от канала, скрипт — инструкция, что и когда сказать, планировщик — будильник, который сотрудника будит.

Бот. Создаётся у @BotFather за минуту, никакого кода. Он выдаёт токен — длинную строку. Токен и есть ключ от канала: у кого он есть, тот пишет от твоего имени. Не свети его в переписке и не клади в файл, который улетит на GitHub. Если бота ни разу не делал, начни отсюда: бот в Телеграм без кода.

Права в канале. Бота надо добавить в канал администратором и дать право публиковать сообщения. Без этого он не напишет ничего — Телеграм ответит ошибкой про недостаточные права. Это причина примерно всех «у меня не работает» на старте.

Список постов. Обычный файл: время, текст, путь к картинке. CSV из таблицы, JSON — не важно, лишь бы ты сам мог открыть и поправить.

Будильник. Скрипт не висит в воздухе, его кто-то запускает. На сервере это cron — системная штука, которая раз в минуту дёргает твою команду. На Windows ту же роль играет «Планировщик заданий», на маке — системный планировщик. Логика одна: запускай вот это с такой периодичностью.

Скрипт пишешь не ты — ты его описываешь

Раньше «написать автопостинг» означало найти человека, объяснить, заплатить и ждать. Сейчас ты описываешь задачу текстом и получаешь рабочий скрипт за вечер.

Формулировать надо конкретно. Плохой запрос — «сделай мне автопостинг в телеграм». Хороший выглядит так:

Нужен скрипт на Python: публиковать посты в Телеграм-канал по расписанию. Посты беру из файла posts.csv: дата и время, текст, путь к картинке (может быть пустым). Токен бота и id канала — в отдельном файле рядом, в коде их не хранить. Запускаться раз в минуту, брать всё, чему настало время, и отправлять. Отправленное помечать в файле, чтобы после перезапуска не отправить второй раз. Между отправками пауза 3 секунды. Телеграм ответил ошибкой — записать её в лог с временем и текстом, не падать целиком. Время считать по Москве, независимо от часового пояса машины.

Разберу, зачем каждая строка, — это и есть весь навык.

Файл с постами. Контент-план ты должен править, не трогая код. Иначе каждая правка текста — новый заход к нейросети.

Токен отдельно от кода. Скрипт рано или поздно кому-то покажешь или зальёшь в облако. Ключ от канала внутри кода уедет вместе с ним.

Пометка об отправленном. Самая частая беда самодельного автопостинга — дубли. Скрипт перезапустился, снова увидел «время наступило» и отправил то же самое второй раз. Подписчики это видят.

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

Часовой пояс. Сервер почти всегда живёт по UTC, а ты — нет. Скажи об этом сразу, иначе утренний пост выйдет ночью.

Если сама механика — где писать этот текст, чем запускать скрипт, что делать с красными ошибками — пока тёмный лес, начни с разбора про нейросеть, которая пишет код.

Где живёт скрипт, когда компьютер выключен

Честно и без иллюзий: скрипт работает ровно столько, сколько работает машина, на которой он лежит. Закрыл ноутбук — постов нет. Ушёл в спящий режим — тоже нет. Отвалился интернет — пост пропустился, и скрипт этого даже не заметит, если не попросить его запоминать пропущенное.

Для проверки идеи домашний компьютер годится: запусти, посмотри неделю, убедись, что механика твоя. Для канала, который выходит каждое утро, — нет.

Нормальное решение — свой сервер. Маленькая машина в интернете, которая просто никогда не выключается. Стоит денег, но платишь ты за железо, а не за чужой интерфейс, и на этом же сервере потом живут остальные твои скрипты. Как поднять с нуля: свой сервер за 7 шагов.

И держи в голове: у штатного отложенного этой проблемы нет вовсе, оно крутится на серверах Телеграма. Поэтому не тащи бота туда, где хватает кнопки.

Где всё ломается

Пять стен. Лучше узнать о них сейчас, чем в шесть утра в понедельник.

Права бота. Не админ в канале — не публикует. Точка. Проверяется за десять секунд: список администраторов канала, бот там есть, право публиковать сообщения стоит.

Дубли. Перезапустил скрипт, а он отправил всё заново. Лечится пометкой об отправленном. Заложи её сразу, а не после того, как канал получит один пост трижды.

Лимиты частоты. Телеграм ограничивает, как часто бот шлёт сообщения. Ломанёшь двадцать постов подряд без пауз — часть отлетит с ошибкой «слишком много запросов», причём в ответе будет написано, сколько секунд подождать. Пауза между отправками и обработка этой ошибки закрывают вопрос.

Форматирование. Жирный, курсив, ссылки — не просто текст, а разметка, и Телеграм разбирает её по своим правилам. Забыл закрыть звёздочку или поставил не тот спецсимвол — сообщение не уйдёт, получишь невнятную ошибку про разбор текста. Плюс у поста есть предел длины, а у подписи к картинке он ещё короче: длинную простыню с картинкой Телеграм не примет.

Медиа. Одна картинка — легко. Альбом надо отправлять одной группой, иначе рассыплется на отдельные посты. Видео и большие файлы грузятся дольше и иногда отваливаются по таймауту. Скажи про медиа нейросети сразу, а не когда скрипт уже заработал на голом тексте.

Начни с малого. Открой канал, напиши пост и запланируй его на завтра на десять утра — минута работы, и один пункт из списка дел закрыт навсегда. Дальше живи так, пока не станет тесно: три канала, таблица на сорок постов, повторы по пятницам. Вот тогда садись собирать бота — уже понимая, зачем он тебе.

Погнали.

Частые вопросы
Как настроить автопостинг в Телеграм бесплатно?
Начни со штатной отложенной публикации — она бесплатная и встроена в сам Телеграм. Пишешь пост в канал, зажимаешь кнопку отправки (на компьютере — правый клик по ней), выбираешь дату и время. Пост уйдёт с серверов Телеграма, даже если твой телефон в этот момент выключен. Платить надо только тогда, когда штатного не хватает: много каналов, пачка постов из таблицы, повторяющиеся публикации. Но и там подписка не обязательна — та же задача закрывается своим ботом и небольшим скриптом.
Есть ли в Телеграме отложенный постинг без ботов?
Есть, и это первое, что стоит попробовать. Работает в личных чатах, группах и каналах, где у тебя есть право публиковать. Запланированные посты собираются в отдельный список: можно поправить текст, сдвинуть время, удалить или отправить прямо сейчас. Главное ограничение — это ручная работа по одному посту за раз. Повторов «каждую пятницу в 10:00» тут нет, и запланировать бесконечное количество не выйдет: в какой-то момент Телеграм скажет, что лимит достигнут.
Как сделать, чтобы бот сам публиковал посты в канал?
Три шага. Создаёшь бота у @BotFather и забираешь токен — это ключ от твоего канала, храни его как пароль. Добавляешь бота в канал администратором и обязательно даёшь право публиковать сообщения: без прав администратора бот в канал не напишет вообще ничего. Дальше нужен скрипт, который в нужное время дёргает Телеграм и отдаёт ему текст поста, и «будильник», который этот скрипт запускает — cron на сервере или системный планировщик заданий на компьютере.
Почему бот не публикует в канал и отвечает ошибкой?
В девяти случаях из десяти дело в правах. Бот либо не добавлен в канал, либо добавлен, но без права публиковать сообщения — Телеграм на это отвечает отказом, а не молчанием, текст ошибки прямо про недостаточные права. Вторая частая причина — не тот адрес канала: для приватного канала публичного имени нет, нужен его числовой id. Третья — токен: скопировал с пробелом или отозвал старый в @BotFather, и он перестал работать.
Где держать скрипт автопостинга, если компьютер выключен?
Скрипт работает ровно столько, сколько работает машина, на которой он живёт. Закрыл ноутбук — постов нет, ушёл в спящий режим — тоже нет. Для проверки идеи этого хватает, для канала, который должен выходить каждое утро, — нет. Нормальное решение — свой сервер: маленькая машина в интернете, которая просто не выключается. Стоит денег, зато на ней же потом живут все остальные твои скрипты, и ты платишь за железо, а не за чужой интерфейс.
Сколько постов можно запланировать в Телеграме заранее?
Не бесконечно — предел есть, и упираешься ты в него молча, пока не увидишь сообщение о лимите. Точное число зависит от клиента и версии, поэтому запоминать цифру бессмысленно: планируй на месяц вперёд и смотри, дошёл ли до потолка. Если контент-план длиннее и его надо заливать пачкой из таблицы, это уже сигнал переходить на бота — там ограничение другое, по частоте отправки, а не по количеству запланированного.
Уже учитесь на курсе?
войдите, чтобы открыть все уроки