Пошаговые инструкции intermediate 18 мин

Как сделать ИИ-агента для YouTube и видео-контента

Пошаговая инструкция от нуля до рабочего прототипа: video queue, transcript, title, description, chapters, Shorts, approval редактора и YouTube Data API.

AI-агенты n8n Google Sheets YouTube Shorts видео-контент chapters субтитры YouTube Data API

Что получится в результате

Соберем ИИ-агента, который помогает готовить видео к публикации: расшифровывает ролик, делает главы, title, description, shorts-идеи, субтитры и задачи редактору.

Первая рабочая версия будет делать так:

  1. видео или ссылка на видео попадает в таблицу `video_queue`;
  2. n8n забирает новую строку;
  3. workflow получает transcript или отправляет файл на расшифровку;
  4. LLM выделяет тему, структуру, таймкоды и ключевые моменты;
  5. агент готовит 3 варианта заголовка, описание, главы и теги;
  6. спорные или слабые элементы попадают в `needs_review`;
  7. редактор ставит `approved`, `needs_edit` или `rejected`;
  8. approved-метаданные можно отправить в YouTube Studio/API или в задачу редактору;
  9. идеи для Shorts попадают в отдельный лист `shorts_queue`;
  10. все действия пишутся в `video_log`.

В первой версии агент не публикует видео сам, не меняет title/description без редактора, не ставит кликбейт, не использует чужие материалы без прав и не вырезает Shorts автоматически без проверки.

Что понадобится

  • n8n Cloud или self-hosted n8n.
  • Google Sheets.
  • Google Drive или другая папка для видеофайлов.
  • YouTube Data API, если хотите обновлять метаданные через API.
  • API для расшифровки аудио или готовые субтитры.
  • API-ключ LLM-провайдера.
  • Редактор, который подтверждает заголовки, описание и главы.
  • 1-2 тестовых видео.

Шаг 1. Определите сценарий первой версии

Не начинайте с автопубликации на YouTube.

Для первого прототипа выберите сценарий:

видео уже записано, агент готовит пакет публикации, редактор проверяет, затем человек публикует или подтверждает обновление через API

Пакет публикации:

  • title;
  • description;
  • chapters;
  • tags;
  • subtitles draft;
  • 3-5 идей для Shorts;
  • checklist перед публикацией.

Проверка: агент отвечает за подготовку, а не за финальное решение.

Шаг 2. Создайте таблицу проекта

Создайте Google Sheet:

YouTube video AI agent

Добавьте листы:

video_queue
transcripts
metadata_drafts
chapters
shorts_queue
editor_review
video_log
settings
test_cases

Проверка: у n8n есть доступ на чтение и запись.

Шаг 3. Создайте очередь видео

В листе `video_queue` сделайте колонки:

video_id
source_type
source_url
drive_file_id
youtube_video_id
video_title_raw
language
duration_seconds
status
created_at
processed_at
error

Статусы:

  • `new`;
  • `transcribed`;
  • `draft_ready`;
  • `needs_review`;
  • `approved`;
  • `published`;
  • `error`.

Пример:

VID-1001
drive
https://drive.google.com/file/d/...
drive-file-123

Запись вебинара про AI-агентов
ru
1840
new
2026-05-22

Проверка: тестовое видео есть в очереди со статусом `new`.

Шаг 4. Создайте настройки

В листе `settings` добавьте:

key
value
comment

Заполните:

default_language | ru | язык видео
max_title_length | 90 | ограничение заголовка
max_description_length | 4500 | запас до лимита YouTube
chapters_min_gap_seconds | 10 | минимальный интервал между главами
shorts_min_seconds | 20 | минимальная длительность шорта
shorts_max_seconds | 60 | максимальная длительность шорта
auto_publish_allowed | no | в первой версии всегда no

Проверка: ограничения вынесены из prompt в настройки.

Шаг 5. Создайте лист transcripts

В листе `transcripts` сделайте колонки:

transcript_id
video_id
language
source
transcript_text
segments_json
confidence
created_at

`segments_json` хранит таймкоды:

[
  {"start": 0, "end": 12, "text": "Сегодня разберем, что такое AI-агенты"},
  {"start": 12, "end": 42, "text": "Начнем с простого примера"}
]

Проверка: transcript хранит не только текст, но и сегменты с временем.

Шаг 6. Создайте лист metadata_drafts

В листе `metadata_drafts` сделайте колонки:

draft_id
video_id
title_1
title_2
title_3
description
tags
thumbnail_brief
pinned_comment
editor_notes
confidence
review_status
approved_by
created_at
approved_at

Статусы:

  • `draft`;
  • `approved`;
  • `needs_edit`;
  • `rejected`;
  • `done`;
  • `error`.

Проверка: у каждого видео есть отдельный черновик метаданных.

Шаг 7. Создайте лист chapters

В листе `chapters` сделайте колонки:

chapter_id
video_id
start_time
title
description
review_status
created_at

Формат `start_time`:

00:00
02:15
08:40

Правила YouTube chapters:

  • первая глава начинается с `00:00`;
  • таймкод и название стоят в описании;
  • главы идут по порядку;
  • между главами должен быть нормальный интервал, для первой версии держите минимум 10 секунд.

Проверка: главы можно вставить в description как обычные timestamp-строки.

Шаг 8. Создайте лист shorts_queue

В листе `shorts_queue` сделайте колонки:

short_id
video_id
start_time
end_time
hook
short_title
caption_text
reason
review_status
created_at

Проверка: идеи Shorts отделены от основного описания видео.

Шаг 9. Создайте workflow обработки видео

Назовите workflow:

YouTube video draft

Добавьте узлы:

  1. `Schedule Trigger`;
  2. `Google Sheets` - чтение `settings`;
  3. `Google Sheets` - чтение `video_queue`;
  4. `Filter` по `status = new`;
  5. `Split In Batches`;
  6. `Google Drive` или `HTTP Request` - скачать видео или аудио;
  7. `Transcription API` - получить transcript;
  8. `Code` - нормализовать сегменты;
  9. `LLM` - подготовить metadata;
  10. `LLM` - подготовить chapters и shorts;
  11. `Code` - проверить JSON и ограничения;
  12. `Google Sheets` - запись `transcripts`;
  13. `Google Sheets` - запись `metadata_drafts`;
  14. `Google Sheets` - запись `chapters`;
  15. `Google Sheets` - запись `shorts_queue`;
  16. `Google Sheets` - обновление `video_queue`;
  17. `Google Sheets` - запись `video_log`.

Проверка: workflow создан и запускается вручную.

Шаг 10. Получите transcript

Если видео уже на YouTube и у вас есть доступ к captions, можно работать с caption track через YouTube Data API.

Если видео лежит в Drive, используйте speech-to-text.

Минимальный результат:

{
  "video_id": "VID-1001",
  "language": "ru",
  "segments": [
    {
      "start": 0,
      "end": 14,
      "text": "Сегодня разберем, как устроены AI-агенты."
    }
  ],
  "full_text": "Сегодня разберем, как устроены AI-агенты..."
}

Проверка: есть полный текст и таймкоды.

Шаг 11. Очистите transcript

В узле `Code` удалите мусор:

  • повторяющиеся междометия;
  • длинные паузы;
  • технические фразы вроде “проверка микрофона”;
  • дубли сегментов;
  • пустые сегменты.

Но не переписывайте смысл.

Проверка: transcript стал читаемее, но таймкоды не съехали.

Шаг 12. Подготовьте prompt для метаданных

System prompt:

Ты редактор YouTube-канала.
Готовь метаданные только по transcript.
Не придумывай факты, которых нет в видео.
Не делай кликбейт.
Не обещай результат, которого нет в содержании.
Верни только валидный JSON.

User prompt:

Transcript:
{{transcript_text}}

Ограничения:
title <= {{max_title_length}} символов
description <= {{max_description_length}} символов

Верни JSON:
{
  "title_1": "вариант заголовка",
  "title_2": "вариант заголовка",
  "title_3": "вариант заголовка",
  "description": "описание с кратким содержанием, без выдуманных ссылок",
  "tags": ["tag1", "tag2"],
  "thumbnail_brief": "что написать/показать на обложке",
  "pinned_comment": "короткий закрепленный комментарий",
  "editor_notes": "что проверить редактору",
  "confidence": 0.0
}

Проверка: LLM возвращает JSON без Markdown.

Шаг 13. Подготовьте prompt для глав

System prompt:

Ты делаешь главы для YouTube-видео.
Используй только transcript segments.
Первая глава должна начинаться с 00:00.
Главы должны идти по порядку.
Название главы короткое и понятное.
Верни только JSON.

User prompt:

Segments:
{{segments_json}}

Верни JSON:
{
  "chapters": [
    {
      "start_seconds": 0,
      "start_time": "00:00",
      "title": "Вступление",
      "description": "коротко о чем часть"
    }
  ]
}

Проверка: первая глава начинается с `00:00`.

Шаг 14. Подготовьте prompt для Shorts

System prompt:

Ты ищешь фрагменты для YouTube Shorts.
Выбирай только места, где есть законченная мысль, пример, ошибка, чеклист или сильный тезис.
Не придумывай цитаты.
Верни только JSON.

User prompt:

Segments:
{{segments_json}}

Ограничения:
shorts_min_seconds = {{shorts_min_seconds}}
shorts_max_seconds = {{shorts_max_seconds}}

Верни JSON:
{
  "shorts": [
    {
      "start_seconds": 120,
      "end_seconds": 165,
      "hook": "первое предложение для удержания",
      "short_title": "короткий заголовок",
      "caption_text": "текст для субтитров/описания",
      "reason": "почему этот фрагмент стоит вырезать"
    }
  ]
}

Проверка: каждый short длится от 20 до 60 секунд.

Шаг 15. Проверьте JSON и ограничения

Добавьте узел `Code`.

Правила:

  • title не длиннее `max_title_length`;
  • description не длиннее `max_description_length`;
  • tags не больше 15;
  • chapters отсортированы по времени;
  • первая глава `00:00`;
  • между главами не меньше `chapters_min_gap_seconds`;
  • shorts не пересекаются хаотично;
  • у shorts есть hook и reason;
  • нет выдуманных ссылок;
  • нет обещаний вроде “гарантированно заработаете”.

Проверка: плохой JSON не попадает редактору как готовый результат.

Шаг 16. Запишите transcript

В `transcripts` добавьте строку:

transcript_id: video_id + дата
video_id
language
source: youtube_caption или speech_to_text
transcript_text
segments_json
confidence
created_at

Проверка: transcript можно открыть и проверить вручную.

Шаг 17. Запишите metadata draft

В `metadata_drafts` добавьте:

draft_id
video_id
title_1
title_2
title_3
description
tags
thumbnail_brief
pinned_comment
editor_notes
confidence
review_status: draft
created_at

Проверка: редактор видит 3 варианта title и один черновик description.

Шаг 18. Запишите главы

В `chapters` добавьте строки по каждой главе.

Пример:

CH-001
VID-1001
00:00
Вступление
О чем видео и какой результат получит зритель
draft
2026-05-22

Проверка: главы можно собрать в блок:

00:00 Вступление
02:15 Что такое AI-агент
08:40 Как собрать workflow

Шаг 19. Запишите Shorts-идеи

В `shorts_queue` добавьте строки.

Проверки:

  • `start_time` меньше `end_time`;
  • длительность 20-60 секунд;
  • фрагмент не начинается на середине предложения, если transcript позволяет это увидеть;
  • reason объясняет ценность фрагмента.

Проверка: редактор может открыть исходное видео по таймкоду и принять решение.

Шаг 20. Обновите video_queue

После успешной обработки:

status: draft_ready
processed_at: текущая дата

Если ошибка:

status: error
error: текст ошибки

Проверка: повторный запуск не создает второй draft для того же видео без причины.

Шаг 21. Проверьте пакет редактором

Редактор открывает:

  • `metadata_drafts`;
  • `chapters`;
  • `shorts_queue`;
  • исходное видео;
  • transcript.

Проверить:

  • title не кликбейт;
  • description соответствует видео;
  • главы начинаются с `00:00`;
  • таймкоды корректные;
  • tags не спамные;
  • shorts не вырывают мысль из контекста;
  • нет нарушений авторских прав;
  • нет медицинских, финансовых или юридических обещаний без оснований.

После проверки поставить:

review_status: approved
approved_by: имя
approved_at: дата

Или:

review_status: needs_edit
editor_notes: что исправить

Проверка: без `approved` агент не обновляет YouTube.

Шаг 22. Создайте workflow для approved-метаданных

Назовите workflow:

YouTube metadata apply approved

Он делает:

  1. читает `metadata_drafts`;
  2. берет только `review_status = approved`;
  3. собирает description с chapters;
  4. обновляет видео через YouTube Data API или создает задачу редактору;
  5. записывает результат в `video_log`.

В первой версии безопаснее создавать задачу редактору:

обновить title/description/tags вручную в YouTube Studio

Проверка: если `auto_publish_allowed = no`, workflow не вызывает YouTube update API.

Шаг 23. Соберите description с chapters

Формат:

Краткое описание видео...

Главы:
00:00 Вступление
02:15 Что такое AI-агент
08:40 Как собрать workflow

Ссылки:
...

Не добавляйте ссылки, которых нет в approved-списке.

Проверка: chapters находятся в description и начинаются с `00:00`.

Шаг 24. Подготовьте субтитры

Если transcript достаточно качественный, создайте `.srt` или `.vtt`.

Минимальный SRT-блок:

1
00:00:00,000 --> 00:00:04,000
Сегодня разберем, как устроены AI-агенты.

Если используете YouTube Data API captions, учитывайте, что caption track связан с конкретным videoId.

Проверка: файл субтитров открывается и таймкоды идут по порядку.

Шаг 25. Создайте задачи по Shorts

Назовите workflow:

YouTube shorts tasks approved

Он берет `shorts_queue` со статусом `approved` и создает задачи монтажеру.

Текст задачи:

Вырезать Short из VID-1001
Таймкод: 02:00-02:45
Hook: “Главная ошибка при запуске AI-агента”
Caption: ...
Причина: сильный тезис и законченный пример

Проверка: монтажер получает конкретный таймкод и смысл фрагмента.

Шаг 26. Сделайте regression test

В листе `test_cases` сделайте колонки:

case_id
transcript_sample
expected_has_00_00_chapter
expected_min_titles
expected_short_count_min
expected_status
enabled

Добавьте тесты:

  • короткое видео до 60 секунд;
  • длинный вебинар;
  • видео без явных разделов;
  • видео с рекламной вставкой;
  • видео с техническим мусором в начале;
  • transcript с плохим качеством;
  • видео на русском;
  • видео на английском;
  • видео с финансовыми обещаниями;
  • видео с чужими цитатами.

Создайте workflow:

YouTube video regression test

Он прогоняет test cases и проверяет, что chapters, title и shorts создаются по правилам.

Проверка: изменение prompt не ломает chapters и ограничения.

Минимальная проверка результата

Прототип работает, если выполняются все пункты:

  • видео попадает в `video_queue`;
  • transcript сохраняется в `transcripts`;
  • metadata draft создается в `metadata_drafts`;
  • chapters начинаются с `00:00`;
  • shorts идеи имеют таймкоды и reason;
  • редактор может поставить `approved` или `needs_edit`;
  • без `approved` YouTube не обновляется;
  • approved-пакет можно перенести в YouTube Studio;
  • ошибки пишутся в `video_log`;
  • regression test проверяет базовые правила.

Что нельзя автоматизировать в первой версии

  • публикацию видео без редактора;
  • изменение title/description на боевом канале без approval;
  • генерацию кликбейта;
  • использование чужих фрагментов без прав;
  • автоматическую нарезку Shorts без просмотра;
  • обещания результата в заголовке;
  • удаление видео;
  • массовое обновление старых роликов без тестового прогона.

Частые вопросы

Можно ли сразу обновлять YouTube через API?

Да, но сначала лучше создавать задачу редактору. Когда качество title, description и chapters станет стабильным, можно включить API-обновление только для approved-строк.

Что делать, если transcript плохой?

Ставить `needs_review`. Плохая расшифровка ломает title, chapters и shorts, поэтому ее нужно исправить до генерации метаданных.

Как сделать главы, чтобы они работали на YouTube?

Добавьте timestamp-строки в description, первая строка должна начинаться с `00:00`, главы должны идти по порядку и иметь название.

Почему LLM не должен сам придумывать ссылки?

Потому что ссылка в description ведет зрителя наружу и может быть ошибочной или небезопасной. Все ссылки должны идти из approved-списка или добавляться редактором.

Какой минимум нужен для запуска?

Листы `video_queue`, `transcripts`, `metadata_drafts`, `chapters`, `shorts_queue`, n8n workflow, transcription, LLM prompts, editor approval и ручной перенос approved-пакета в YouTube Studio.

Дальше по теме

Похожие материалы