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.