Найти в Дзене
DeSoft.ru

Генерация статьи на основе транскрипции youtube видео в n8n

В рамках очередного эксперимента с платформой n8n решил собрать небольшой workflow для решения задачи генерации статей на основе сформированных субтитров из youtube видео. ⭐️ С разрешения автора, в качестве испытуемого буду использовать канал prohomelab от Stilicho2011, который недавно обзавелся сайтом-статейником prohomelab.com. 💡 Идея следующая. Видео много, но не для всех из них были подготовлены заметки или краткие пересказы на сайте, т.к. он появился значительно позже канала. Неплохо было бы сопроводить эти видео неким текстовым описанием, чтобы наполнить сайт дополнительными материалами и усилить ссылочную массу для канала. Начал с определения алгоритма действий и проверки доступных инструментов. 1️⃣ Имеем видео на youtube. 2️⃣ Платформа генерирует субтитры к видео на языке оригинала автоматически, а по необходимости может и перевести на другой язык. 3️⃣ Выгружаем субтитры. 4️⃣ Готовим промпт для ИИ для генерации статьи на основе анализа текста субтитров. 5️⃣ Тестирование и отла
Оглавление

Описание задачи

В рамках очередного эксперимента с платформой n8n решил собрать небольшой workflow для решения задачи генерации статей на основе сформированных субтитров из youtube видео.

⭐️ С разрешения автора, в качестве испытуемого буду использовать канал prohomelab от Stilicho2011, который недавно обзавелся сайтом-статейником prohomelab.com.

💡 Идея следующая. Видео много, но не для всех из них были подготовлены заметки или краткие пересказы на сайте, т.к. он появился значительно позже канала. Неплохо было бы сопроводить эти видео неким текстовым описанием, чтобы наполнить сайт дополнительными материалами и усилить ссылочную массу для канала.

Подготовка к решению задачи. Эксперименты

Начал с определения алгоритма действий и проверки доступных инструментов.

1️⃣ Имеем видео на youtube.

2️⃣ Платформа генерирует субтитры к видео на языке оригинала автоматически, а по необходимости может и перевести на другой язык.

3️⃣ Выгружаем субтитры.

4️⃣ Готовим промпт для ИИ для генерации статьи на основе анализа текста субтитров.

5️⃣ Тестирование и отладка вручную.

Прохожу каждый пункт вручную для подтверждения работоспособности.

🔹 Взял парочку роликов автора - про Vikunja и TubeArchivist.

🔹 Выгрузил сгенерированные субтитры в виде текстовых файлов через сервис Downsub (альтернативы: [1], [2]).

🔹 Подготовил самописный промпт и загрузил в ChatGPT.

Сделай краткий пересказ youtube видео по представленному тексту субтитров и оформи это все в виде статьи для сайта в формате markdown.
При формировании текста не придумывай информацию, используй только материал из видео.
Ссылка на видео: [ССЫЛКА НА ВИДЕО].
Субтитры: [ТЕКСТ СУБТИТРОВ].

✏️ ChatGPT выдал вполне неплохой результат, но можно лучше - пишем от имени автора, требуем определить разделы, оформить их соответствующим образом и не пропускать важные замечания и комментарии автора и т.д. Тогда я попросил другую ИИ (grok) сгенерировать промпт для ChatGPT для решения поставленной задачи.

Получился вот такой промпт:

Ты — эксперт по написанию статей на основе видеоконтента. У тебя есть транскрипция видео:
[ТРАНСКРИПЦИЯ ВИДЕО]
Ссылка на оригинальное видео: [ССЫЛКА НА ВИДЕО]
На основе этой транскрипции составь статью для сайта от имени автора видео. Статья должна кратко излагать основные мысли, ключевые моменты, важные проблемы, замечания и описания, представленные в видео. Выдели и четко опиши все значимые аспекты, включая любые поднятые проблемы, сделанные замечания или подробные описания, чтобы ничего важного не было упущено. Не придумывай ничего лишнего: используй только информацию из транскрипции, не добавляя свои интерпретации, мнения или дополнительные факты.
Организуй статью логически, с заголовками для разделов, соответствующих структуре видео или темам, которые в нем обсуждаются. Если в видео есть явные разделы, следуй им; если их нет, создай разделы на основе ключевых тем или идей. Подчеркни важные моменты (проблемы, замечания, описания) в тексте, используя жирный шрифт или списки, где это уместно.
В конце статьи добавь раздел "Источник" с активной ссылкой на оригинальное видео.
Отформатируй всю статью в Markdown для удобной публикации на сайте: используй заголовки (# для H1, ## для H2 и т.д.), списки, жирный текст для выделения ключевых моментов, но избегай избыточного форматирования. Убедись, что статья читаема и структурирована для веб-публикации.

✏️ Результат работы ChatGPT по новому промпту удовлетворил гораздо больше, причем промпт вышел вполне универсальным, и срабатывает адекватно на разных видео автора.

🌐 Промпты с примерами сгенерированных статей выложил в репу на gitverse.

Сборка workflow в n8n

-2

📌 В общем виде цепочка действий выглядит следующим образом

  • Отправляем в систему ссылку на YouTube видео.
  • Получаем транскрипцию видео.
  • Отправляем транскрипцию в ChatGPT для преобразования в статью.
  • Полученный результат преобразуем в текстовый файл.
  • Отправляем файл в Telegram чат.

📝 Теперь подробнее

1️⃣ Для старта workflow в n8n требуется некий триггер - в текущей ситуации это сообщение с ссылкой на видео для последующей обработки. Удобно связать это дело с Telegram ботом, т.к. все необходимые ноды в библиотеке n8n уже существуют, но есть нюанс - перехватить сообщение из чата с ботом, ровно как и из какого-либо канала, можно только через предоставленный webhook на открытом адресе через https. Если n8n хостится локально, как у меня, то Telegram API заблокирует подобные попытки. Поэтому я обошелся внутренним чатом n8n для имитации отправленной ссылки извне.

2️⃣ Для транскрипции воспользовался бесплатным доступом к сервису supadata (100 запросов). Регистрируем аккаунт - получаем API KEY. Они же разработали и опубликовали собственную ноду для n8n для взаимодействия с supadata, которую можно установить через веб интерфейс платформы. Репа ноды и инструкция по установке на github.

3️⃣ Полученный текст транскрипции направляется в OpenAI через ноду Message model. Модель CHATGPT-4O-LATEST, промпт - итоговый из предыдущего раздела. Для доступа нужен OpenAI API KEY.

4️⃣ Результат обработки преобразовывается в обычный текстовый файл стандартной нодой Convert to File.

5️⃣ Далее снова Telegram нода, но уже для отправки сообщения в чат с ботом - sendDocument. Сформированный файл отправляется в виде документа в указанный в параметрах чат.

✔️ Создаем бота и получаем ключ

  • Идем в @BotFather.
  • Создаем бота, получаем ключ.
  • Используем ключ в Credentials Telegram ноды.

✔️ Находим свой Telegram идентификатор Чат, куда нужно отправить документ, должен быть указан через ID, а значит надо получить собственный идентификатор, если мы хотим направить сообщение в личный чат между собой и ботом.

  • Идем в @userinfobot.
  • /start и сразу получаем свой ID.
  • Вставляем ID в настройках ноды в поле Chat ID.

🚀 Таким образом, получаем несложную цепочку манипуляций для получения транскрипции видео и преобразования её в статью.

🌐 Весь workflow выложил в репозиторий на gitverse в виде обычного json - можно легко импортировать (Import from file), прописать свои Credentials и попробовать самостоятельно. Не забываем, что нода от supadata - внешняя, поэтому ее нужно установить в библиотеку отдельно, чтобы импортированный workflow смог ее подхватить.

Дополнительные материалы

🔸 Форум сообщества n8n

🔸 Официальная библиотека шаблонов для n8n

🔸 Еще одна большая библиотека шаблонов

🔸 Claude агент для автоматического построения пайплайнов в n8n

🔸 ChatGPT ассистент для n8n

Больше полезной информации в моем Telegram-канале.