Как я в одиночку собрал автопилот для Telegram-канала на Google Таблицах, Claude и Runware

Как я в одиночку собрал автопилот для Telegram-канала на Google Таблицах, Claude и Runware

Полгода назад у меня был обычный Telegram-канал про AI-инструменты и вечная проблема всех, кто ведёт контент в одиночку: на генерацию одного поста — текст, картинка, публикация — уходило по 20-30 минут. Каждый день. Без выходных, потому что алгоритмы не любят паузы.
Я не программист по образованию — работаю в сфере ЖКХ, с тепловыми пунктами. Но я самоучка, который любит автоматизировать рутину. И решил: раз я и так использую нейросети для работы, почему бы не собрать себе инструмент, который будет писать посты, рисовать картинки и публиковать их сам, без меня.

Почему Google Таблицы, а не отдельное приложение

Первая мысль была — написать бота на каком-нибудь фреймворке. Но я быстро понял: мне не нужен отдельный сервер, отдельная база данных и отдельный интерфейс. Google Таблицы — это готовая база данных с бесплатным хостингом кода (Google Apps Script) и интерфейсом, который не нужно верстать. Каждая вкладка — это фактически модуль системы: одна отвечает за генерацию картинок, другая за видео, третья за расписание публикаций.
Это оказалось абсолютно рабочим решением. Таблица одновременно и хранит данные, и выполняет код по расписанию, и показывает мне статус — сколько постов запланировано, что уже вышло, что упало с ошибкой.

Что внутри

Система собирает пост целиком без моего участия:
Claude пишет текст поста по заданной теме и «голосу канала» — я один раз описал стиль и аудиторию, дальше он держит его сам.
Runware генерирует иллюстрацию или короткое видео под текст — можно выбрать из десятка моделей, от быстрых до кинематографичных.
Отдельная функция публикует готовый пост в канал по расписанию — я просто ставлю дату и время в таблице, остальное происходит само.
Позже добавил говорящего AI-аватара через HeyGen — для постов, где текст лучше звучит, чем читается.

Как это выглядит на практике

Проще показать на одном дне. Вечером я открываю таблицу и в строках расписания задаю темы на несколько дней вперёд — иногда просто пишу «разбор нового инструмента для видео» или «подборка бесплатных нейросетей». Дальше не делаю ничего.
Ночью срабатывает триггер: система берёт ближайшую по времени тему, Claude пишет под неё текст в голосе канала, Runware рисует к нему картинку, а отдельная функция в нужную минуту публикует пост и ставит отметку «опубликовано» обратно в таблицу. Утром я просто вижу в канале готовый пост, которого вечером ещё не существовало, и строку в таблице со статусом и ссылкой. Если что-то упало — вижу и это: в какой именно строке и на каком шаге, а не абстрактную ошибку без адреса.
Отдельно система раз в час собирает комментарии под постами и прогоняет их через Claude — он размечает тон и выделяет темы, которые аудитория поднимает чаще всего. Так я понимаю, о чём писать дальше, не перечитывая вручную сотни сообщений.

Первые грабли — и они были не там, где я ждал

Самой сложной оказалась не генерация контента, а обычный технический долг, который накапливается незаметно. Одна функция ждала результат от API до пяти минут — а у Google Apps Script есть жёсткий лимит выполнения в шесть минут на один запуск. Если в один час выпадало два видео-поста подряд, второй просто обрывался на середине.
Решение было не «переписать всё», а хирургическая правка: сократить время ожидания и добавить «бюджет времени» — если один запуск начал затягиваться, он аккуратно передаёт эстафету следующему часовому циклу вместо того, чтобы упасть с ошибкой. Мелкая деталь, а без неё вся система становится ненадёжной именно в тот момент, когда контента становится больше.
Второй урок был из той же серии. Я привык обращаться к колонкам таблицы по названию заголовка — казалось бы, что тут может пойти не так. А потом оказалось, что в колонку с одним названием функция реально записывает совсем другие данные: заголовок и содержимое разошлись, и часть постов уходила не с теми параметрами. С тех пор у меня железное правило — сверять не название колонки, а то, что в неё фактически пишет код. Звучит очевидно, но именно на таких мелочах самодельные системы ломаются тихо — без единой ошибки в логе.

Что дальше

Сейчас автопилот несколько месяцев работает стабильно: пишет тексты, рисует картинки, снимает видео, публикует по расписанию, собирает и анализирует комментарии аудитории. Если считать грубо, раньше на контент уходило по два-три часа в неделю — теперь это время освободилось, а канал не встаёт, даже когда я на работе или в отъезде.
А недавно я решил пойти дальше и подключить к этой же системе публикацию в мессенджер MAX — и там меня ждали совершенно другие грабли, от отключённых официальных методов API до национального сертификата безопасности, без которого сервер просто не может достучаться до MAX. Об этом — в следующей статье.
Если интересно следить за этим по ходу дела — я пишу об AI-инструментах и автоматизации в Telegram-канале «Сундук AI» и МАКС-канале «Сундук AI» .