RSS Автопостинг Youtube

RSS Автопостинг Youtube

1. Цель

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

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

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

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

RSS Feed Trigger (Чтение RSS-ленты YouTube)

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

  • Нажимаем на иконку плюса в правом верхнем углу
  • В поиске находим и выбираем RSS Feed Trigger.
  • Вставьте ссылку на RSS-ленту нужного YouTube-канала.
  • Пример: https://www.youtube.com/feeds/videos.xml?channel_id=UCX1sraLIy6wS2R-SMcdoakg
  • Установите Poll Times на каждую минуту, чтобы автоматизация работала постоянно.

HTTP Request (Скачивание аудио через внешний сервис)

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

  • Method: POST
  • URL: (ссылка на ваш Replit код)
    • Как настроить и запустить код на Replit можно посмотреть тут.
  • Включите отправку заголовков запроса Send Headers. Данные параметры могут отличаться в зависимости от кода, но если вы использовали код, который мы предоставляем в инструкции по настройке Replit, то вписываем:
    • Specify Headers: Using Fields Below
    • Name: X-API-Key
    • Value: s3cr3t-k3y-123
  • Включите отправку тела запроса Send Body:
  • Body Content Type: JSON
  • Specify Body: Using Fields Below
    Тут передавайте параметры video_url со значением ={{ $json.link }}.
    • Name: video_url
    • Value: ={{ $json.link }}
    • Установите опцию, чтобы получать полный ответ.
    • Убедитесь, что сервер на Replit доступен и работает.

If (Ветвление обработки ответа)

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

  • Проверьте, что значение заголовка content-type равно text/plain. Если заголовок соответствует, значит, есть текстовая транскрипция видео.
  • В противном случае система скачивает аудиофайл для дальнейшей обработки.
  • Для передачи данных content type или любых других в дальнейшем процессе автоматизации советуем воспользоваться простым перетаскиванием блоков в режиме Schema

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

Вот так у вас должен получится If блок: 

Первый случай (Если у YouTube-видео нет субтитров, код скачает само видео и сделает транскрибацию)

Google Drive (Обработка файлов)

Google Drive (Upload)

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

Подключите ваши credentials

Как это сделать можете посмотреть тут.

Далее:

  • Операция: Upload
  • Укажите Drive и Folder,куда будут скачиваться файлы.
  • Передайте файл (аудио) из ответа прошлых блоков - Input Data Field Name: указываем data.
  • Убедитесь, что Google API настроен и активирован.

Google Drive (Download)

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

  • Используйте ID файла, полученный из Google Drive Upload - {{ $json.id }}.
  • Укажите сохранение бинарных данных в поле data - Put Output File in Field: указываем data.
  • Проверьте, что файл корректно загружается и доступен.

OpenAI (Транскрипция и анализ текста)

OpenAI (Транскрипция аудио)

Добавьте ноду OpenAI (Transcribe a recodring):

Подключите ваши credentials

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

  • Resource: Audio
  • Операция: Transcribe a Recording.
  • Передайте бинарные данные из Google Drive - Input Data Field Name: data.
  • Убедитесь, что OpenAI API-ключ корректно настроен.

OpenAI (Делаем выжимку из полного текста)

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

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

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

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

  • Создайте агента, который формирует итоговый пост на основе транскрипции полного текста и выжимки.
  • Настройте AI на генерацию текста, не превышающего 700 символов (ограничение Telegram)
  • Выберите созданного ассистента
  • Впишите входной текст:

Пример шаблона входного текста:
Here is the full information: {{ $('OpenAI').item.json.text }}

Here is the summary: {{ $json.output }}

Telegram (Проверка и отправка сообщений)

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

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

  • Тип: send message
  • ChatId: ID чата.

Чтобы узнать ваш ChatId:

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

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

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

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

  • 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:

  • Настройте её на возобновление через webhook.
  • HTTP Method выберите GET
  • Respond: Immediately.

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

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

  • Проверьте, что {{$json.query.answer}} равно go.
  • Если ответ no, процесс останавливается.

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

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

  • Скопируйте входные данные из предыдущего блока Telegram, но уже без кнопок подтверждения.
  • Таким образом, если условие If истинно, отправится финальный пост.

В итоге, первый случай у вас должен выглядеть так:

Второй случай (Если у YouTube-видео доступны субтитры и код их скачивает)

Теперь, если ответ HTTP ноды пройдет проверку IF = text/plain, то переходим сразу к выжимке полученного текста

OpenAI (Делаем выжимку из полного текста)

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

  • Создайте ассистента для генерации выжимки из транскрипции, следуя данной инструкции.
  • В параметрах передайте полученный текст из предыдущей ноды.

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

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

  • Создайте агента, который формирует итоговый пост на основе транскрипции полного текста и выжимки.
  • Настройте AI на генерацию текста, не превышающего 700 символов (ограничение Telegram)
  • Выберите только что созданного ассистента
  • Впишите входной текст:

Пример шаблона входного текста:
Here is the full information: {{ $('OpenAI').item.json.text }}

Here is the summary: {{ $json.output }}

Telegram (Проверка и отправка сообщений)

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

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

  • Тип: send message
  • ChatId: ID чата.

Чтобы узнать ваш ChatId:

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

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

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

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

  • 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:

  • Настройте её на возобновление через webhook.
  • HTTP Method выберите GET
  • Respond: Immediately.

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

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

  • Проверьте, что {{$json.query.answer}} равно go.
  • Если ответ no, процесс останавливается.

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

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

  • Скопируйте входные данные из предыдущего блока Telegram, но уже без кнопок подтверждения.
  • Таким образом, если условие If истинно, отправится финальный пост.

В итоге,  у вас должно получиться:

Готово.

Мы создали и настроили автоматизацию, которая просматривает канал/каналы на YouTube, считывает оттуда видео и публикует посты в группу в Telegram.