n8n автоматизация видео-контента с личным ИИ аватаром

n8n автоматизация видео-контента с личным ИИ аватаром

Цель:
Автоматизировать создание видео-контента с использованием ИИ, чтобы быстро превращать текстовые статьи в динамичные видеоролики с персональным аватаром.

Область применения:

  • Маркетинг — автоматизация соцсетей, email-рассылок и рекламы.
  • Новостные сводки — оперативный пересказ статей в видеоформате.
  • Образование — создание обучающих материалов без съёмок.
  • Персональный брендинг — использование цифрового аватара для контента.

Как это работает?

  • Запуск вручную
    ➤ Шаг: When clicking ‘Test workflow’
    Запускает процесс вручную из n8n.
  • Получение статьи
    ➤ Шаг: News1
    С помощью Apify заходит на Morning Brew, находит первую статью и вытаскивает её текст.
  • Генерация сценария
    ➤ Шаг: AI Agent
    AI превращает статью в краткий, разговорный текст (сценарий для видео, 50–100 слов).
  • Генерация видео
    ➤ Шаг: Generate Video1
    Отправляет сценарий в HeyGen API, чтобы создать видео с AI-аватаром.
  • Ожидание 30 секунд
    ➤ Шаг: 30 Seconds
    Ждёт, чтобы видео успело сгенерироваться.
  • Проверка статуса видео
    ➤ Шаг: Get Video1
    Запрашивает статус создания видео у HeyGen по video_id.
  • Проверка готовности
    ➤ Шаг: If
    Сравнивает статус.
    — Если completed → конец.
    — Если нет → переход к следующему шагу.
  • Дополнительное ожидание
    ➤ Шаг: Wait
    Ждёт и снова возвращается к шагу Get Video1.
  • Повтор цикла
    ➤ Повторяются шаги Wait → Get Video1 → If, пока видео не будет готово.

Для подключения данной автоматизации вам потребуется:

  • OpenAI апи ключ
  • Апи ключ от сервиса Heygen
  • Айди аватара и голоса которые вы хотите использовать в Heygen
  • Апи ключ от сервиса Apify

В первую очередь, для удобного тестирования создайте первый блок автоматизации “When clicking Test Workflow”, чтобы автоматизация запускалась при нажатии на кнопку Test Workflow, потом сможете заменить начало на какую-то любую другую ноду тригер.

В поиске нажмите на Add another trigger

И выберите Trigger manually

Далее создайте HTTP ноду в которой будем брать последние новости через сервис Apify

Но с начала перейдите в Apify на инструмент website content crawler 

https://console.apify.com/actors/aYG0l9s7dbB7j3gbS/input 

Тут в Start URLs вставьте нужный вам новостной сайт, для примера использую: https://www.morningbrew.com/issues/latest 

Далее в правом верхнем углу нажмите на API - API endpoints

В открывшемся окне найдите Run Actor synchronously and get dataset items

Данная ссылка содержит ваш уникальный ключ

Скопируйте данную ссылку с вашим ключом и вставьте в N8n в ноду HTTP в раздел URL

Method: POST

Активируйте Send Body

Body content type : JSON

Specify body: Using JSON

в окне JSON ниже вставьте:

{

    "crawlerType": "playwright:adaptive",

    "startUrls": [

        {

            "url": "https://www.morningbrew.com/issues/latest", 

            "method": "GET"

        }

    ],

    "pageFunctionTimeoutSecs": 60,

    "proxyConfiguration": {

        "useApifyProxy": true

    },

    "saveHtml": false,

    "saveMarkdown": false,

    "saveScreenshots": false,

    "debugLog": false

}

На место url вставьте ссылку на нужный вам сайт

Должно получится вот так:

Дальше создайте ноду AI Agent

И подключите ему OpenAI Chat Model

В самом агенте:

Source for prompt: Define below

Prompt: 

Добавьте ему System message через кнопку Add Options

И в system message вставьте промпт:

" Ты — сценарист коротких видеороликов. На вход ты получаешь статью.
Твоя задача — создать короткий, динамичный текст для видео в формате пересказа, без заголовков, без описания задачи.
Используй простой, живой и разговорный стиль.
Длина — 50-100 слов.
Не упоминай источник. Не говори "в статье говорится". Просто пересказывай суть так, будто объясняешь зрителю.
Отдай только текст сценария. Без вступлений, заголовков, форматирования."

После ИИ Агента создайте ноду HTTP request и заполните:

Method: POST

URL: https://api.heygen.com/v2/video/generate

Authentication: Generic Credential Type

Generic Auth Type: Header Auth

В Header Auth создайте новый credentials и назовите их Heygen

В поле Name: x-api-key

В поле Value: ваш апи ключ от Heygen https://app.heygen.com/settings?from=&nav=Subscriptions%20%26%20API 

Далее активируйте Send Headers

Specify Header: Using fields below

Name: accept

Value: application/json

Далее активируйте Send Body

Body content type : JSON

Specify body: Using JSON

в окне JSON выберите expression и ниже вставьте:

{

  "video_inputs": [

    {

      "character": {

        "type": "avatar",

        "avatar_id": "<айди вашего аватара>",

        "avatar_style": "normal"

      },

      "voice": {

        "type": "text",

        "input_text": "{{ $json.output }}",

        "voice_id": "<айди вашего голоса>",

        "speed": 1.1

      }

    }

  ],

  "dimension": {

    "width": 1280,

    "height": 720

  }

}

В Heygen вы можете создать своего аватара клона, загрузив на платформу от 30 секунд до 2 минут видеоматериала с вашим лицом, где вы разговариваете в камеру, для этого в разделе avatars https://app.heygen.com/avatars нажмите на Create New Avatar

и выберите Hyper realistic avatar

Далее следуйте инструкции на сайте.

Для того чтобы найти айди вашего аватара перейдите в Heygen в раздел avatars https://app.heygen.com/avatars , нажмите на вашего аватара , после нажмите на три точки в углу и выберите Copy avatar id

С голосом такая же процедура, перейдите в раздел voices https://app.heygen.com/voices 

и в my voices найдите голос вашего аватара или выберите любой другой и скопируйте его айди

Далее создайте ноду Wait для того, чтобы дать видео прогрузиться.

Далее создайте ещё одну HTTP ноду, в которой вы будете проверять и забирать готовое видео.

Структура схожая с прошлыми HTTP нодами

Method: GET

URL: https://api.heygen.com/v1/video_status.get

Подключите ранее настроенные вами credentials

Активируйте Send Query Parameters

Specify Query Parameters: Using Fields Below

Создайте новый параметр

Name: video_id

Value: Из HTTP ноды с генерацией видео через режим schema перетащите динамический параметр с video_id в данное поле

Активируйте Send Headers

Specify Header: Using fields below

Name: accept

Value: application/json

Теперь создайте ноду If для проверки готовности видео

Вставьте динамический параметр status из прошлой ноды через режим schema, чтобы сравнивать его со статусом “completed” по логике, реализованной на картинке ниже, либо просто впишите туда: {{ $json.data.status }}

Если условие False и видео ещё не со статусом complete, то на ветке False должна быть ещё одна нода Wait, которая даст автоматизации время подождать перед повторной проверкой.

Подключите ноды согласно картинке ниже, чтобы сформировался цикл проверок который закончится только когда условие станет True - то есть статус видео станет complete.

‍Готово.
JSON-файл и инструкцию в видеоформате вы всегда можете получить, вступив в наш уникальный Клуб автоматизаций.