Завод следит за креаторами трёх брендов-конкурентов на YouTube, Instagram и TikTok. Начинался он как сценарий n8n, а вырос в веб-приложение: выгрузка за любой период с проверкой на дубли и пропуски, сценарии из отмеченных роликов и месячная статистика, которая собирается одной кнопкой и выглядит одинаково из месяца в месяц.
Контент-завод — это дюжина креаторов, которые снимают для брендов зоотоваров. План — шестьдесят роликов на человека в месяц, то есть семьсот двадцать штук на завод. Оплата креатора не зависит от того, выстрелил ролик или нет, поэтому цена пустого ролика — это цена смены.
Сценарий каждый придумывал сам. Открывал ленту, скроллил, ловил формат, пересказывал своими словами. Час на ролик в лучшем случае, полдня в худшем — и никакой гарантии, что взятый формат вообще работал: «видел, зашло» — это не метрика.
Ещё хуже была память. Удачный формат конкурента, найденный в марте, к июню не находил никто: он утонул в ленте, а ленты не листаются назад. И была слепая зона по конкурентам: кто растёт, кто затих, кто выпустил сто роликов вместо сорока — узнавали по ощущениям и с опозданием.
Первая версия завода — один сценарий n8n и команды в телеграме. Она доказала главное: отбор роликов можно оставить человеку, а всю работу после отбора отдать машине. Но когда завод стал выгружать каждую неделю сотни авторов по трём площадкам, у сценария обнаружились четыре слабых места — и все четыре стоили времени человеку.
Сценарий брал фиксированное число роликов с автора. У того, кто публикует пять раз в день, неделя обрезалась, у того, кто молчит, в выгрузку попадали старые ролики. Теперь выгрузка идёт строго за даты — неделя, девять дней, месяц до сегодняшнего числа — и лента листается ровно до начала периода.
Если аккаунт закрылся или площадка не ответила, сценарий шёл дальше, а в таблице просто не хватало строк. Теперь каждая выгрузка заканчивается отчётом: сколько креаторов выгружено из скольких, у кого ошибка даже после повторной попытки, все ли ролики реально легли в таблицу.
Бренд у каждого ролика проставлялся вручную, а месячную статистику собирали копированием: целый день работы и ошибки — в августе у части авторов просмотры и лайки в своде не сходились с самими роликами. Теперь бренд берётся из реестра аккаунтов, а месяц в статистику дописывает код.
Instagram и TikTok — в одной таблице, YouTube — в другой, неактивные — в третьей вкладке. Теперь у каждой площадки один реестр со статусом, и именно он решает, кого выгружать.
Приложение на Python живёт на Railway и работает без ноутбука: закрыть вкладку посреди выгрузки можно — она идёт на сервере, а журнал запусков переживает даже перезапуск. Рабочим местом команды по-прежнему остаётся Google-таблица, панель нужна только для запусков и контроля.
Статус выбирается из списка: «Активен» — выгружаем, «Архив» — нет, «Новый» — выгружаем и при первой выгрузке берём ещё тридцать старых роликов, чтобы сразу увидеть его лучшие форматы; потом статус сам меняется на «Активен». Подписчики, дата и результат последней выгрузки дописываются сами.
Даты любые, плюс быстрые кнопки «неделя», «8 дней», «прошлый месяц и до сегодня». Instagram и TikTok — через ScrapeCreators, YouTube — через официальный API, бесплатно. Ролики ложатся во вкладки площадок с брендом из реестра, а сама выгрузка сохраняется на диск сервера для месячного отчёта.
Выгрузка — с повторной попыткой для сбойных креаторов. Проверка на дубли — каждый ролик встречается в таблице ровно один раз. Полнота — обработан каждый креатор реестра, ни у кого лента не оборвалась раньше начала периода, все собранные ролики лежат в таблице. В журнале видна одна строка на этап, подробности раскрываются по клику.
Редактор ставит ролику «Создать скрипт». Раз в пять минут приложение забирает отмеченное, снимает расшифровку, а если у ролика TikTok нет субтитров — скачивает видео и расшифровывает его само. Дальше GPT-5 переписывает текст своим промптом под площадку: три хука, сценарий, описание. Ролик получает «Скрипт готов».
Отчёт сам ничего не выгружает: он собирает месяц из сохранённых выгрузок и сначала проверяет, что они покрывают все дни. Не хватает трёх дней в YouTube — так и напишет, и в статистику эта площадка не пойдёт, пока дни не довыгрузят. Повторный отчёт за тот же месяц обновляет цифры, а не дублирует их.
После отчёта кнопка показывает креаторов без единого ролика за месяц — со ссылками на аккаунты и причиной: «нет роликов» или «аккаунт удалён». Снимаешь галочки с исключений — остальные уходят в архив реестра с датой и причиной в комментарии и перестают тратить кредиты.
Своего интерфейса для работы с роликами у завода нет, и это решение, а не экономия. Контент-команда живёт в Google-таблице: там ролики, метрики и комментарии друг другу. Поэтому отбор остался там же — человек ставит в колонке «Статус» значение «Создать скрипт», и через несколько минут в листе «Скрипты» лежит готовый сценарий.
Панель взяла на себя то, что в таблице делать неудобно: запуски, проверки и контроль. Отбор остаётся у человека и занимает минуты, а сбор, сверка, расшифровка, переписывание и статистика — это часы, и их делает завод.
Как выглядит неделя. «Выгрузить за период» — свежие ролики за неделю приезжают в таблицу с просмотрами, вовлечённостью и брендом, внизу журнала три зелёные галочки. Редактор проходит список сверху вниз и отмечает интересное «Создать скрипт» — и лист «Скрипты» наполняется сам. Раз в неделю вкладки роликов очищаются кнопкой, кроме тех, что ещё ждут сценария.
Как выглядит начало месяца. Пятого-шестого числа одна выгрузка «с первого числа прошлого месяца по сегодня» кормит сразу и сценаристов, и статистику. Затем «Создать отчёт» — и «Креаторы без роликов → архив». Вместо дня копирования — три нажатия.
Те же ролики, что кормят сценаристов, раз в месяц уходят в три файла статистики — по одному на площадку. Отдельного сбора нет: отчёт берёт уже сохранённую выгрузку и не тратит ни одного кредита. В статистику идут только три бренда-конкурента, всё остальное остаётся для поиска идей.
Новый лист «09_26» строится по образцу «08_26»: та же шапка, ширины колонок, выпадающий статус, подсветка вовлечённости. Ролики стоят по убыванию просмотров. Месяц закрыт — лист остаётся срезом и больше не меняется.
Одна строка — один креатор, на каждый месяц блок из пяти колонок: подписчики, просмотры, лайки, число роликов, роликов в день. Креаторы сгруппированы по брендам, у каждого раздела своя строка «Итого» формулами. Внутри раздела — сортировка по просмотрам за последний месяц, так что лидеры всегда наверху.
В конце строки — изменение просмотров к прошлому месяцу и статус креатора из реестра. Месяц, когда креатор не работал, закрашивается серым автоматически, архивные приглушены. Новые аккаунты из реестра сами встают в раздел своего бренда.
У каждого месяца постоянный цвет шапки, рамки и форматы чисел одинаковые на всех трёх площадках. Свод переоформляется целиком при каждом отчёте, поэтому сентябрь выглядит так же, как март, а ручные правки оформления не ломают следующее заполнение. Перед первой пересборкой сверены 9 648 ячеек прошлых месяцев — ни одна цифра не сдвинулась.
Масштаб. Март–август 2026 — 62 000+ роликов. Только сентябрь, три бренда: Instagram — 7 682 ролика и 52,8 млн просмотров, YouTube — 6 486 и 45,4 млн, TikTok — 3 257 и 17,4 млн. В реестрах 281 активный аккаунт; после сентябрьского отчёта 131 замолчавший креатор ушёл в архив за один проход.
Ленты идут от новых к старым, и сбор останавливается на первом ролике старше начала периода — поэтому неделя стоит неделю кредитов, а не весь архив автора. Но в начале ленты стоят закреплённые старые ролики. Первые три места ленты остановить сбор не могут вовсе, даже если площадка не отдала признак закрепа: старый закреп не обрежет свежие ролики под ним.
Сбойные креаторы автоматически получают вторую попытку, а после записи приложение перечитывает таблицу: каждый ролик выгрузки на месте и встречается ровно один раз. Повторный запуск того же периода в тот же день докачивает только сбойных — уже собранное повторно не оплачивается.
Длинные ID постов Instagram таблица превращала в «3,98E+18», и сравнивать по ним было нельзя. Ключ ролика — код из ссылки: повторная выгрузка обновляет цифры у существующей строки, не трогая статус и бренд, которые редактор мог поправить руками.
Месяц можно собрать из одной большой выгрузки или из четырёх недельных — отчёт проверит, что покрыт каждый день, а если ролик есть в нескольких выгрузках, возьмёт самые свежие цифры. Повторный отчёт за тот же месяц обновляет блок, а не дублирует его.
Формулы через API пишутся с точкой с запятой, иначе в ячейке #ERROR!. Длительность «0:39» таблица читает как 39 минут, поэтому пишется полное время. Вставка колонок внутри объединённой ячейки растягивает чужой месяц — объединения снимаются до вставки и ставятся заново ровно над пятью колонками.
Если у ролика TikTok нет субтитров, приложение скачивает видео и расшифровывает его моделью. Ответ сценариста приходит то в markdown-обёртке, то массивом вместо объекта — разборщик снимает обёртку и приводит всё к трём полям, иначе в таблицу уезжал бы мусор.
Reels, Shorts и TikTok — разные ритмы и разная длина хука. Общий промпт даёт усреднённый текст, который не работает нигде. Поэтому промптов несколько, и каждый пишет под свою площадку, а не «универсальный короткий ролик».
Метрики ролика меняются со временем, и пересчёт задним числом показал бы уже другие цифры. Поэтому месяц закрывается отдельным листом, а свод сравнивает именно срезы. Через год динамику конкурента можно восстановить такой, какой она была.
Каждый креатор искал идею сам, а когда появился сценарий n8n — неделя выгружалась «последними тридцатью роликами», бренд проставлялся вручную, сбои креаторов терялись молча, а месячную статистику целый день собирали копированием.
Выгрузка строго за период с отчётом о полноте, бренд из реестра, сценарии появляются сами через пять минут после отметки. Месяц в статистику — одной кнопкой, в едином оформлении, с разделами по брендам и сортировкой по просмотрам. Замолчавшие креаторы уходят в архив и не тратят кредиты.
79 000+ роликов с метриками — собственная база форматов ниши, которую задним числом не восстановить. Конкурентов сравнивают по цифрам, а не по ощущению, и цифрам можно верить: каждая выгрузка проверена на дубли и пропуски.
Про зоотовары знают только промпты сценаристов и реестры аккаунтов. Всё остальное — сбор за период, проверка полноты, расшифровка, разбор ответа, запись по ключу, месячные срезы и оформление статистики — работает с любой нишей и любым языком. Смена рынка — это новый реестр и новая роль в промпте, а не новая система.
Завод стыкуется с системой аналитики контента: там видно, что из снятого действительно сработало, — и эти цифры возвращаются в отбор референсов. Один контур ищет форматы, второй проверяет их на своих роликах.
Система собрана мной целиком: первая версия — сценарий n8n, вторая — приложение, написанное вместе с Claude Code: логика выгрузки и проверок, промпты сценаристов, структура таблиц и оформление статистики. Цифры приведены по рабочим таблицам завода, заказчик обезличен: ники авторов не раскрываются.
От вас — ниша и список авторов, за которыми стоит следить. Остальное на мне: сбор с площадок за любой период с проверкой полноты, база форматов, сценаристы под каждую площадку и месячная аналитика по конкурентам, которая собирается одной кнопкой.