n8n автоматизация сбора и публикации актуальных новостных постов и YouTube-видео по конкретно заданной тематике

n8n автоматизация сбора и публикации актуальных новостных постов и YouTube-видео по конкретно заданной тематике

Цель:
Автоматизировать сбор актуальных новостей и видео по выбранным темам, формируя и публикуя персонализированную ленту контента на ваш мини-сайт.

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

  • Персональные дайджесты (блогеры, исследователи)
  • Бизнес-аналитика (отслеживание нишевых трендов)
  • Медиаресурсы (автонаполнение сайтов)
  • Образование (подборки материалов для обучения)
🟩 1. Инициализация и источники данных
  • When Clicking 'Test workflow' — ручной запуск процесса.
  • YouTube Users (Set) — список YouTube-каналов, за которыми нужно следить.
  • Queries (Set) — список поисковых запросов: top ai news, ai models, ai tools, ai prompting. (Вы можете поставить себе другие)
🟦 2. Получение новостей через Tavily
  • Split Out1 → Loop Over Items3 — разбивает список запросов и обрабатывает каждый.
  • Tavily — API-запрос к Tavily по каждому запросу, чтобы получить свежие новости.
  • OpenAI — LLM обрабатывает полученные новости.
  • Basic LLM Chain — переписывает новости в лёгкой форме: короткий заголовок + engaging текст.
  • Parser — приводит ответ в нужный JSON-формат.
  • Supabase — сохраняет готовую новость в таблицу news с типом News.
🟨 3. Получение YouTube-видео
  • Split Out → Loop Over Items1 → Get Channel ID — получает ID каждого канала по username.
  • Set → Loop Over Items2 → Get 1 Video — получает последние видео с этих каналов.
  • Split Items Again → Set VideoId — извлекает videoId.
🟧 4. Обработка YouTube-видео
  • Loop Over Items → Transcribe — получает расшифровку видео через RapidAPI.
  • Wait — задержка (на случай rate-limit).
  • Summarization Chain (GPT-4o) — делает краткое содержание видео.
  • Basic LLM Chain1 (OpenAI) — переписывает его в engaging формат.
  • Parserx — структурирует данные.
  • Supabase1 — сохраняет в news с типом YouTube.
🟪 5. Индексация в Pinecone
  • Token Splitter → Default Data Loader → Pinecone Vector Store1/2 — векторизует и сохраняет тексты в Pinecone (по отдельности для статей и видео).
  • Embeddings OpenAI — используется для эмбеддингов.
🟫 6. Chatbot-интерфейс
  • Webhook — входящий запрос от юзера (например, в Telegram/Vercel).
  • AI Agent — агент с промптом: ищет по Pinecone на основе запроса.
  • 4o-minix — модель, обслуживающая этот агент.
  • Pinecone Vector Store — отвечает на вопрос, извлекая релевантный контент.
  • Respond to Webhook — возвращает ответ пользователю.
📦 Промежуточные данные и хранение
  • Supabase — база данных, где хранятся все новости и видео.
  • Pinecone — векторное хранилище, обеспечивающее быстрый и умный поиск.

Для данной автоматизации вам потребуются следующие сервисы:

Первым делом установите апи ключи и подключите ваши credentials в OpenAI

Далее в Pinecone vector store подключите ваши credentials

Для этого перейдите в раздел indexes и нажмите Create index, после дайте название и выберите в configuration:  text-embedding-3-small

После перейдите в раздел: API keys и создайте новый апи ключ

И после вставьте апи ключ в n8n

Далее в Tavily подключите ваш апи ключ

https://app.tavily.com/home

И вставьте справа от слова Bearer

В нодах Get 1 Video и Get Channel ID подключите ваши OAuth credentials, которыми мы в прошлых автоматизациях подключали Google Drive. Только перед этим перейдите в https://console.cloud.google.com/marketplace/product/google/youtube.googleapis.com?q=search&referrer=search&authuser=1&inv=1&invt=AbwHvg&project=astute-expanse-457620-b7    и нажмите Enable API, чтобы активировать API YouTube.

Теперь в ноде Transcribe подключите апи ключ от сервиса RapidAPI 

https://rapidapi.com/solid-api-solid-api-default/api/youtube-transcript3/playground/apiendpoint_b46d1962-a219-453c-afd6-b94a336a61ae

У вас откроется вот такая страница

Здесь копируем и вставляем в n8n данные из 'x-rapidapi-host: и 'x-rapidapi-key:

Далее подключите Supabase

Перейдите и войдите в свой аккаунт https://supabase.com/dashboard/

Создайте новую организацию и новый проект

Далее перейдите в раздел SQL Editor

И тут введите следующие команды:

CREATE TABLE public.news (

  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),

  title TEXT NOT NULL,

  content TEXT NOT NULL,

  type TEXT DEFAULT 'general',

  created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()

);

CREATE TABLE public.completed (

  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),

  title TEXT NOT NULL,

  content TEXT NOT NULL,

  type TEXT DEFAULT 'general',

  created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()

);

CREATE TABLE public.webhooks (

  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),

  name TEXT NOT NULL,

  webhook_url TEXT NOT NULL,

  created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()

);

CREATE TABLE public.chat_options (

  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),

  name TEXT NOT NULL,

  chat_text TEXT NOT NULL,

  chat_query TEXT NOT NULL,

  created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()

);

CREATE OR REPLACE FUNCTION public.delete_news_item(item_id uuid)

RETURNS boolean

LANGUAGE plpgsql

SECURITY DEFINER

AS $function$

DECLARE

  deleted_count INTEGER;

BEGIN

  DELETE FROM public.news

  WHERE id = item_id

  RETURNING 1 INTO deleted_count;

  -- Return true if one or more rows were deleted

  RETURN COALESCE(deleted_count, 0) > 0;

END;

$function$;

CREATE OR REPLACE FUNCTION delete_rows()

RETURNS BOOLEAN AS $function$

DECLARE

  deleted_count INTEGER;

BEGIN

  -- Example deletion (replace with your actual DELETE statement)

  DELETE FROM some_table WHERE some_condition;

  GET DIAGNOSTICS deleted_count = ROW_COUNT;

  -- Return true if one or more rows were deleted

  RETURN COALESCE(deleted_count, 0) > 0;

END;

$function$ LANGUAGE plpgsql;

Теперь настройте себе внешний сайт, где всё будет отображаться

Перейдите на https://lovable.dev/projects/ed99ca42-7ba8-46ef-835e-ee12a96f5ab8

И нажмите справа вверху кнопку Remix it

Нажмите на зеленую иконку SupaBase

И подключите ваш Supabase аккаунт

Также в n8n в ноде SupaBase убедитесь, что у вас в разделе Table Name or ID стоит таблица completed, сюда после срабатывания автоматизации будут загружаться данные и отображаться на сайте.

Также можете настроить нужные вам тематики для поиска новостей и видео в этих двух нодах:

Готово.
Теперь автоматизация работает в связке с вашим сайтом и публикует новостную ленту прямо туда.

JSON-файл и инструкцию в видеоформате вы всегда можете получить, вступив в наш уникальный Клуб автоматизаций.