Автоматизация RSS для YouTube в n8n

Автоматизация RSS для YouTube в n8n

1. Цель

Определить и описать пошаговый процесс создания и настройки автоматизации, которая просматривает ленту новостей 24/7, считывает контент и публикует посты в группу в Telegram.

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

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

3. Инструменты

Используется платформа n8n (https://n8n.io).

4. Процесс настройки

Добавьте ноду RSS Feed Trigger:

  • Нажимаем на иконку плюса в правом верхнем углу
  • В поиске находим и выбираем RSS Feed Trigger.
  • В параметрах укажите ссылку на RSS-ленту новостного портала (например, IGN):
    feedUrl: https://feeds.ign.com/ign/all
  • Настройте Poll Times, чтобы нода проверяла новые записи каждую минуту.

If (Фильтрация по дате публикации)

Найдите и добавьте ноду If для фильтрации записей:

  • Проверьте, что время публикации ($json.isoDate) новее, чем текущее время минус 24 часа.

Используйте следующие выражения:

  • Левая часть: ={{ new Date($json.isoDate).getTime() }}
  • Правая часть: ={{ new Date().getTime() - 24 * 60 * 60 * 1000 }}
  • Оператор: greater than.

HTTP Request (Получение содержимого статьи)

Добавьте ноду HTTP Request:

  • Выбираем метод GET
  • В URL укажите {{ $json.link }}, чтобы взять ссылку из предыдущего блока.
  • Для передачи данных json.link или любых других в дальнейшем процессе автоматизации советуем воспользоваться простым перетаскиванием блоков в режиме Schema

Найдите блок link и зажмите на нём мышку перетащив в нужное вам поле и обязательно выберите параметр заполнения “Expression”

  • Остальное не трогаем

HTML (Извлечение контента)

Добавьте ноду HTML:

  • Выберите Extract HTML Content.

В самом блоке:

  • Source Data - выберите JSON
  • В JSON Property напишите data для корректной обработки данных
  • В Key также указываем data
  • Укажите селекторы для извлечения основного контента (article, div[class*="content"], p).
  • Чтобы ответ к вам вернулся в текстовом виде в Return Value выберите Text
  • Отметьте опцию returnArray, чтобы результат был в виде массива.

AI Agent (Очистка текста)

Добавьте ноду AI Agent:

  • Выберите тип агента - Tools Agent
  • В Source for Prompt выберите Define Below чтобы внести нужный промпт
  • Далее в text задайте промпт:
    Clean the text from garbage, correct grammar and complete the last sentences {{ $json.data }} correctly and do not mention that you removed the links.

Далее нужно нажать на плюс под надписью Chat Model чтобы добавить ИИ ассистента который будет выполнять саму задачу

Выбираете языковую модель OpenAI

Первым делом подключите ваши OpenAi credentials

Как это сделать посмотрите нашу инструкцию вот тут.

Дальше выберите модель gtp-4o-mini

OpenAI (Суммаризация статьи)

Добавьте блок OpenAI - message an assistant:

  • Идём и создаем ассистента на сайте OpenAI, как это сделать можете посмотреть вот тут.
  • Выбираем ассистента которого создали в OpenAI
  • В Source for Prompt выбираем Define below.
  • Входной текст – результат предыдущей ноды (={{ $json.output }}).

OpenAI (Создание поста для телеграма)

Добавьте ноду OpenAI которая создаст пост для телеграма

  • Создайте нового ассистента в OpenAI по инструкции упомянутой выше, и задайте ему промпт по типу: “Сгенерируй пост для телеграма на базе полученного текста” и обязательно пропишите чтобы пост не был больше 700 символов, иначе он не пройдет из-за ограничения по размеру.
  • При создании блока OpenAI выберите text an assistant
  • Выбираете вашего созданного ассистента
  • И теперь передайте ему суммаризованный текст {{ $json.output }}

OpenAI (Создание промпта для изображения)

Добавьте ноду OpenAI, которая создаст текстовый промпт для генерации изображения.

  • Создайте нового ассистента в OpenAI опять же по инструкции упомянутой выше, и задайте ему промпт по типу: “Сгенерируй промпт для картинки на базе полученного текста”.
  • При создании блока OpenAI выберите text an assistant
  • Выбираете вашего созданного ассистента
  • И теперь, так же как и в прошлом шаге, передайте ему текст из блока с ассистентом для суммаризации статьи.

OpenAI (Генерация изображения)

Добавьте ноду OpenAI (Generate Image).

  • Resource: Image
  • Модель: DALL-E 3
  • В разделе промпт передайте сгенерированный промпт из прошлого шага: {{ $json.output }}

Дальше идет разветвление 

Тут создайте блок Telegram send photo message и блок merge к которым подключите выходные данные из прошлого блока OpenAI (generate image)

Telegram (Отправка поста на оценку)

Добавьте ноду Telegram (sendPhoto).

  • Для начала нужно найти ваш айди чата: 

создайте блок Telegram trigger (on message)  

И в нем подключите ваши credentials, а именно api ключ бота в телеграме который вы получаете при создании бота в https://t.me/BotFather

После подключения нажмите на Test node и отправьте любое сообщение.

После срабатывания триггера вы получите ваш чат айди и блок Telegram trigger можно удалить.

Дальше подключаете снова ваши credentials к нужному боту и в блоке Telegram заполняем:

  • ChatId: ID чата в Telegram.
  • Включаем ползунок Binary file
  • Input Binary field: data
  • В Additional Fields нажимаем Add Field и выбираете Caption
  • Caption: текст из OpenAI(Создание поста для телеграма) + кнопки для подтверждения.
  • Пример кнопок:
    Please tap <a href="{{ $execution.resumeUrl }}?answer=go">Go</a> or <a href="{{ $execution.resumeUrl }}?answer=no">No</a>.
  • Parse Mode: HTML.

Wait (Ожидание ответа пользователя)

  • Добавьте ноду Wait.
  • Resume: On Webhook Call
  • HTTP Method выберите GET
  • Respond: Immediately.

If (Проверка ответа пользователя)

  • Добавьте ноду If.
  • В условии выставьте проверку, что {{$json.query.answer}} равно go.

По итогу вот так у вас должна выглядеть первое разветвление:

Теперь переходим к финальному этапу

Merge (Объединение данных)

  • Добавьте ноду Merge (combineAll) для объединения данных.

Telegram (Финальная отправка сообщения)

  • Добавьте после Merge ещё один блок Telegram (sendPhoto) для финальной отправки поста.

Итог

Этот процесс позволяет автоматизировать обработку RSS-лент, фильтрацию контента, суммаризацию, генерацию изображений и публикацию постов в Telegram с возможностью подтверждения пользователем.

По итогу у вас должно получится что-то похожее: