Автоматизация обработки YouTube-видео для Telegram в n8n

1. Цель автоматизации
Задача:
Когда боту в Telegram отправляют ссылку на видео с YouTube, автоматизация:
- Получает ссылку из входящего сообщения.
- Вызывает внешний сервис для извлечения аудио или выжимки из видео.
- Если сервис возвращает текстовый результат (например, выжимку), то обрабатывает его (при необходимости, переводит).
- Если же сервис возвращает файл (например, видео/аудио), то файл загружается в Google Drive, откуда скачивается для транскрипции.
- На основе полученной транскрипции формируется итоговый пост, который отправляется в Telegram.
2. Область применения
Автоматизация полезна для:
- Медиа-агентств и блогеров, которым необходимо быстро публиковать обзоры видео с YouTube.
- Контент-менеджеров, стремящихся автоматизировать обработку и публикацию контента.
- Маркетологов, желающих оперативно информировать аудиторию о новинках на YouTube через Telegram.
Преимущества: экономия времени, минимизация ручного труда, единообразное оформление постов.
3. Инструменты и предварительная подготовка
Платформа:
- n8n – для построения workflow.
Сервисы и API:
- Telegram API – получение входящих сообщений и отправка постов (не забудьте настроить креденшалы через BotFather).
- Внешний сервис на Replit – URL для обработки видео (возвращает либо текстовый результат, либо аудио/видео файл).
- Google Drive API – загрузка файлов в облако и их последующее скачивание (используйте OAuth2-креденшалы).
- OpenAI API – транскрипция аудио (с помощью нод типа OpenAI) и генерация итогового текста поста.
Предварительная настройка:
- Настройте креденшалы для Telegram, Google Drive и OpenAI в n8n.
- Проверьте работу внешнего сервиса на Replit – он должен корректно обрабатывать ссылки.
- Создайте агента OpenAI для обработки текста и создания постов в Telegram.
4. Пошаговая инструкция по созданию workflow
В главном меню нажмите Create Workflow чтобы приступить к созданию автоматизации

4.1. Получение входящего сообщения в Telegram
Нода: Telegram Trigger
- Нажимаем на иконку плюса в правом верхнем углу

- В поиске находим и выбираем Telegram.
- Тип: Telegram Trigger (updates – message).

- Настройка: Подключите креденшалы вашего Telegram-бота.
Сначала вы должны зайти в ваш Telegram аккаунт и в поиске контактов открыть @BotFather. Через меню канала вы можете создать бота в Telegram и настроить его имя, аватарку, описание и т.п.
Когда бот будет создан, BotFather покажет вам Telegram токен, который нужен для работы с только что созданным вами чатботом.
- Функция: Эта нода будет слушать входящие сообщения, где пользователи отправляют ссылку на YouTube-видео.

4.2. Вызов внешнего сервиса для обработки видео
Нода: HTTP Request
- В поиске находим и выбираем HTTP.

- 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 доступен и работает.


4.3. Ветвление обработки результата
Нода: If

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

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

Условие:
- Левая часть: ={{ $json.headers['content-type'] }}
- Правая часть: "text/plain"
Оператор: equals - Логика:
- Если условие истинно → получен текстовый результат (выжимка из видео).
- Если ложно → загружается файл (видео/аудио) в Google Drive.

Первый случай (Если у YouTube-видео доступны субтитры и код их скачивает)
5. Обработка текстового результата (ветка If: текст)
5.1. Генерация выжимки через OpenAI
Нода: OpenAI
Назначение: Создать короткую выжимку из полученных данных.

Подключите ваши OpenAI credentials
Как это сделать можете мы рассказали тут.
После в OpenAI создайте ассистента, который будет суммаризировать полученный текст, если вы его ещё не создавали.
Как его создать - можете посмотреть здесь:
- Выберите вашего ассистента из списка
- Входные данные: ={{ $json.data }} текст из прошлого блока

5.2. Создание поста для Telegram
Нода: OpenAI (Telegram Poster)
Назначение: Создать полноценный Telegram-пост с заголовком, описанием и ссылкой на видео.
- Создайте и выберите ассистента для создания постов.
- Входные данные:
- Через формат schema перетащите выходные данные из блока HTTP для того, чтобы передать полный текст.А также, укажите выходные данные из прошлого блока с выжимкой:
={{ $json.output }}
- Через формат schema перетащите выходные данные из блока HTTP для того, чтобы передать полный текст.А также, укажите выходные данные из прошлого блока с выжимкой:

5.3. Отправка поста в Telegram
Нода: Telegram
- ChatId: Используйте ID чата, полученный из первого блока Telegram Trigger:
={{ $('Telegram Trigger').item.json.message.chat.id }}
Либо можете просто перетащить блок с информацией через формат schema
- Текст сообщения:
- Ваш только что созданный пост в прошлом блоке OpenAI {{ $json.output }}
- Также, по усмотрению, можете в конце поста добавить ссылку на само видео - через формат schema перетащите блок с ссылкой, либо просто скопируйте и вставьте:
{{ $('Telegram Trigger').item.json.message.link_preview_options.url }}

Второй случай (Если у YouTube-видео нет субтитров, код скачает само видео и сделает транскрибацию)
6. Обработка файла (ветка If: файл)
6.1. Загрузка файла в Google Drive
Нода: Google Drive (Upload)
Назначение: Загрузить видео/аудио в Google Drive.
- Подключите ваши google drive credentials
Как это сделать можете посмотреть здесь:
- Настройка:
- Input Data Field Name: data
- Parent Drive: Выбираете из списка ваш драйв.
- Parent Folder: Выбираете из списка папку из вашего драйва .

6.2. Скачивание файла из Google Drive
Нода: Google Drive (Download)
- Настройка:
- FileId: скачиваем тот же файл, что и загружали в прошлом блоке Google Drive: ={{ $json.id }}
- Добавляем через Add option - Put Output File in Field: data

6.3. Транскрипция аудио через OpenAI
Нода: OpenAI (Transcribe Audio)
- Настройка:
- Операция: "Transcribe a Recording".
- Вход: Бинарные данные из Google Drive под названием - data.

6.4. Генерация выжимки через OpenAI
Нода: OpenAI
Назначение: Создать короткую выжимку из полученных данных.

Подключите ваши OpenAI credentials
В списке выберите ранее созданного ассистента, который будет суммаризировать полученный текст
- Входные данные: ={{ $json.data }} текст из прошлого блока

6.5. Создание итогового поста
Нода: OpenAI (Telegram Poster)
Назначение: Объединить полную информацию и выжимку для публикации.
- Выберите ранее созданного ассистента для создания постов.
- Входные данные:
- Через формат schema перетащите выходные данные из блока HTTP для того, чтобы передать полный текст. А также, укажите выходные данные из прошлого блока с выжимкой:
={{ $json.output }}
- Через формат schema перетащите выходные данные из блока HTTP для того, чтобы передать полный текст. А также, укажите выходные данные из прошлого блока с выжимкой:

6.6. Финальная отправка сообщения в Telegram
Нода: Telegram
- ChatId: Используйте ID чата из Telegram Trigger.
- Текст: Используйте результат из OpenAI (Создание итогового поста).

Итог
У вас должно получиться:

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