Как использовать API Vidiome для автоматизации создания статей из видео
Техническое руководство для разработчиков: используйте конечную точку POST /api/v1/articles Vidiome для автоматизации создания видео в статье в большом масштабе. Включены примеры Curl + Node.js.
Публичный REST API Vidiome позволяет разработчикам программно автоматизировать весь конвейер преобразования видео в статью — браузер не требуется, загрузка вручную не требуется. Один запрос POST /api/v1/articles возвращает структурированную, оптимизированную для SEO статью блога из любого URL-адреса YouTube или видеофайла.
В этом руководстве рассматриваются спецификация конечной точки, аутентификация, примеры кода в Curl и Node.js, шаблоны вариантов использования для пакетной обработки и интеграции CMS, а также диаграмма рабочего процесса автоматизации.
Для кого предназначено это руководство
– Разработчики SaaS создают функции автоматизации контента для клиентов или внутренних инструментов. – Контент-агентства обрабатывают более 20 видео в неделю и вынуждены отказаться от ручного использования Vidiome.
- Команды платформы интегрируют преобразование видео в статью в существующую CMS или рабочий процесс работы с контентом.
- Стартапы, использующие возможности Vidiome как уровня инфраструктуры контента.
Если вы являетесь индивидуальным создателем, а не разработчиком, Веб-приложение Vidiome — более быстрый путь — это руководство предназначено специально для программного использования API.
Vidiome
Turn your videos into SEO traffic machines
Сгенерировать первую статьюКредитная карта не требуется · 120 бесплатных кредитов
Предварительные условия
- Учетная запись Vidiome с как минимум Начальным планом (для доступа к API требуется платный или пробный план)
- Ваш ключ API Vidiome (находится в разделе Настройки учетной записи → Ключи API).
- Базовое знание HTTP REST API и Curl или Node.js.
Vidiome предоставляет 120 бесплатных кредитов при регистрации — вы можете протестировать рабочий процесс веб-приложения, прежде чем переходить к интеграции API.
Обзор конечной точки: POST /api/v1/articles
Конечная точка создания статьи Vidiome принимает источник видео и параметры генерации, а затем возвращает полный объект статьи.
Запрос
ПОСТ https://vidiome.com/api/v1/articles
Тип контента: приложение/json
Авторизация: носитель YOUR_API_KEY
Тело запроса
{
"источник": {
"type": "youtube_url",
"url": "https://www.youtube.com/watch?v=XXXXXXXXXXX"
},
"поколение": {
"язык": "ru",
"focus_keyword": "как конвертировать видео YouTube в сообщение в блоге",
"output_format": "уценка"
}
}
объект source
| Поле | Тип | Требуется | Описание |
|---|---|---|---|
тип |
строка | Да | "youtube_url" или "file_upload" |
url |
строка | Требуется, если type = youtube_url |
Полный URL-адрес видео YouTube |
file_id |
строка | Требуется, если type = file_upload" |
Идентификатор файла из предыдущей загрузки /api/v1/files |
объект генерации
| Поле | Тип | Требуется | Описание |
|---|---|---|---|
язык |
строка | Да | Код ISO 639-1. Поддерживаются: en, fr, es, pt, de, ru, hi, uk, id, tr |
focus_keyword |
строка | Нет | Целевое ключевое слово SEO — улучшает H1 и мета-выравнивание |
выходной_формат |
строка | Нет | "markdown" (по умолчанию) или "html" |
Ответ
{
"id": "art_01HZXXX",
"статус": "завершено",
"created_at": "2026-05-15T10:23:41Z",
"processing_time_секунды": 187,
"credits_used": 12,
"статья": {
"title": "Как конвертировать видео YouTube в публикацию в блоге за 5 минут",
"meta_description": "Vidiome преобразует любой URL-адрес YouTube в структурированную SEO-запись в блоге менее чем за 5 минут. Пошаговое руководство с транскрипцией Whisper с точностью 95%+.",
"content": "# Как конвертировать видео YouTube...\n\n## Что вам понадобится\n...",
"word_count": 1247,
"язык": "ru",
"focus_keyword": "как конвертировать видео YouTube в сообщение в блоге"
},
"расшифровка": {
"text": "Привет всем, сегодня я хочу показать вам...",
"сегменты": [
{ "start": 0.0, "end": 4.2, "text": "Привет всем, сегодня я хочу вам показать" },
...
]
}
}
Значения статуса
| Статус | Значение |
|---|---|
в очереди |
Запрос принят, обработка не началась |
обработка |
Выполняется транскрипция и/или создание статьи |
завершен |
Статья готова в ответном теле |
не удалось |
Ошибка обработки — см. поле «ошибка» |
Для асинхронного опроса используйте GET /api/v1/articles/{id} с возвращаемым идентификатором.
Примеры кода
локон
Curl -X POST https://vidiome.com/api/v1/articles \
-H "Тип контента: приложение/json" \
-H "Авторизация: носитель YOUR_API_KEY" \
-д '{
"источник": {
"type": "youtube_url",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
},
"поколение": {
"язык": "ru",
"focus_keyword": "стратегия перепрофилирования контента",
"output_format": "уценка"
}
}'
Опрос для завершения:``` баш
Замените art_01HZXXX идентификатором из первоначального ответа.
curl -H "Авторизация: носитель YOUR_API_KEY"
https://vidiome.com/api/v1/articles/art_01HZXXX
### Node.js (извлечение)
```Javascript
const VIDIOME_API_KEY =process.env.VIDIOME_API_KEY;
асинхронная функцияgenerateArticle(youtubeUrl, focusKeyword, язык = 'en') {
// Шаг 1: Отправьте запрос на создание статьи
const ответ = ожидайте выборки('https://vidiome.com/api/v1/articles', {
метод: 'POST',
заголовки: {
«Тип контента»: «приложение/json»,
'Авторизация': `Носитель ${VIDIOME_API_KEY}`,
},
тело: JSON.stringify({
источник: {
введите: 'youtube_url',
URL: URL-адрес YouTube,
},
поколение: {
язык,
focus_keyword: ключевое слово фокуса,
выходной_формат: 'уценка',
},
}),
});
константное задание = ожидание ответа.json();
если (!response.ok) {
throw new Error(`Ошибка Vidiome API: ${job.message}`);
}
// Шаг 2: Опрос до завершения
return await pollUntilComplete(job.id);
}
асинхронная функция pollUntilComplete(articleId, maxAttempts = 30, интервалMs = 10000) {
для (пусть попытка = 0; попытка <maxAttempts; попытка++) {
дождитесь нового обещания (решить => setTimeout (решить, интервалMs));
const res = await fetch(`https://vidiome.com/api/v1/articles/${articleId}`, {
заголовки: { 'Авторизация': `Носитель ${VIDIOME_API_KEY}` },
});
константная статья = ожидание res.json();
if (article.status === 'завершено') {
вернуть товар;
}
if (article.status === 'не удалось') {
throw new Error(`Ошибка генерации статьи: ${article.error}`);
}
console.log(`[Vidiome] Статус: ${article.status} (попытка ${attempt + 1}/${maxAttempts})`);
}
throw new Error('Vidiome: превышено время ожидания опроса');
}
// Использование
const результат = ожидание генерирования статьи(
'https://www.youtube.com/watch?v=XXXXXXXXXXX',
«как перепрофилировать видеоконтент»
);
console.log(result.article.title);
console.log(`Количество слов: ${result.article.word_count}`);
console.log(`Использовано кредитов: ${result.credits_used}`);
// Запись в файл, отправка в CMS и т. д.
Схема рабочего процесса автоматизации
Вот полная архитектура автоматизации типичного конвейера пакетной обработки с использованием Vidiome:
┌────────────────────────────────────────────────────────┐
│ СЛОЙ ВИДЕОИСТОЧНИКА │
│ Плейлист YouTube/канал RSS/видеотека CMS │
└──────────────────────┬────────────────────────────────┘
│ URL-адреса видео/ссылки на файлы
▼
┌────────────────────────────────────────────────────────┐
│ СЛОЙ ОРКЕСТРАЦИИ │
│ Задание Cron/триггер веб-перехватчика/n8n/Make.com │
│ - Дедупликация (пропуск уже обработанных URL) │
│ - Ограничение скорости (соблюдайте бюджет кредитов API) │
│ - Управление очередью │
└──────────────────────┬────────────────────────────────┘
│ POST /api/v1/articles
▼
┌────────────────────────────────────────────────────────┐
│ ВИДИОМ API │
│ 1. Шепотная транскрипция (фрагменты по 60 секунд, 95%+ акк.) │
│ 2. Формирование статьи LLM (структура + SEO) │
│ 3. Возвращает: заголовок, мета, контент (MD/HTML), расшифровка │
└──────────────────────┬────────────────────────────────┘
│ Готовый объект статьи
▼
┌────────────────────────────────────────────────────────┐
│ СЛОЙ ПОСТ-ОБРАБОТКИ │
│ - Очередь на проверку человеком (необязательно, но рекомендуется) │
│ - Внедрение внутренних ссылок (добавление ссылок к существующим сообщениям)│
│ - Назначение избранных изображений │
│ - Внедрение разметки схемы (статья JSON-LD) │
└──────────────────────┬────────────────────────────────┘
│ Готовая к публикации статья
▼
┌────────────────────────────────────────────────────────┐
│ CMS / ПЛАТФОРМА │
│ WordPress (REST API) / Ghost (API администратора) │
│ CMS Webflow / Contentful / Sanity / Пользовательская база данных │
└───────────────────────────────────────────────────────┘
Варианты использования
Пакетная обработка канала YouTube
Обработайте бэк-каталог всего канала YouTube за один проход:```Javascript асинхронная функцияprocessYouTubeChannel(channelVideoUrls, options = {}) { константа { язык = 'эн', concurrency = 3, // максимальное количество параллельных запросов Vidiome layMs = 2000, // задержка между пакетами (ограничение скорости) } = варианты;
константные результаты = [];
// Обработка в пакетном режиме параллелизма
for (пусть я = 0; я <channelVideoUrls.length; я += параллелизм) {
const пакет = ChannelVideoUrls.slice (я, я + параллелизм);
const пакетные результаты = ждут Promise.allSettled(
пакетная карта(url =>generateArticle(url, '', язык))
);
результаты.push(...batchResults);
console.log(`Обработано видео ${Math.min(i + concurrency,channelVideoUrls.length)}/${channelVideoUrls.length}`);
if (i + concurrency <channelVideoUrls.length) {
дождитесь нового обещания (решить => setTimeout (решить, задержкаMs));
}
}
возврат результатов; }
Канал со 100 видео, обработанный по 3 одновременным запросам: всего около 100 минут (в среднем 3 минуты на видео × 100 ÷ 3 одновременно).
### Интеграция с CMS (пример WordPress)
После того, как Vidiome вернет статью, отправьте ее непосредственно в WordPress через REST API:
```Javascript
асинхронная функция publicToWordPress(vidiomeArticle, wpConfig) {
const {siteUrl, имя пользователя, appPassword} = wpConfig;
константные учетные данные = Buffer.from(`${username}:${appPassword}`).toString('base64');
const response = await fetch(`${siteUrl}/wp-json/wp/v2/posts`, {
метод: 'POST',
заголовки: {
«Тип контента»: «приложение/json»,
'Авторизация': `Базовые ${credentials}`,
},
тело: JSON.stringify({
заголовок: vidiomeArticle.article.title,
контент: vidiomeArticle.article.content, // формат HTML, рекомендуемый для WP
отрывок: vidiomeArticle.article.meta_description,
статус: 'черновик', // Всегда сначала черновик на рассмотрение человека
}),
});
возвращение ожидания ответа.json();
}
Многоязычный пакет: одно видео, 10 языков
Создайте одну и ту же статью на всех 10 поддерживаемых языках одновременно:
const SUPPORTED_LANGUAGES = ['en', 'fr', 'es', 'pt', 'de', 'ru', 'hi', 'uk', 'id', 'tr'];
асинхронная функцияgenerateMultilingual(youtubeUrl, focusKeywords = {}) {
const запросы = SUPPORTED_LANGUAGES.map(lang =>
генерировать статью(
URL-адрес YouTube,
focusKeywords[язык] || focusKeywords['en'] || '',
язык
)
);
// Запускаем все 10 языков параллельно
const результаты = ждут Promise.allSettled(requests);
return results.reduce((acc, result, index) => {
const lang = SUPPORTED_LANGUAGES[индекс];
if (result.status === 'выполнено') {
акк[язык] = результат.значение;
} еще {
console.error(`Ошибка для ${lang}:`, result.reason);
}
возврат акк;
}, {});
}
Это генерирует 10 языковых версий одного видео примерно за 5–8 минут (параллельная обработка).
Ограничения ставок и кредитное бюджетирование
| План | Ограничение скорости API | Кредитов/месяц |
|---|---|---|
| Бесплатно (120 кредитов) | 2 запроса/мин | 120 (единовременно) |
| Стартер | 10 запросов/мин | По плану |
| Про | 30 запросов/мин | По плану |
| Агентство | 60 запросов/мин | По плану |
Потребление кредитов. Для каждого создания статьи используется 10–15 кредитов в зависимости от продолжительности видео. Для 10-минутного видео используется примерно 10 кредитов; 60-минутное видео требует примерно 15 кредитов.
Рекомендуемый бюджет для пакетной обработки: оцените ceil(video_duration_mines / 4) + 10 кредитов на видео в качестве консервативного бюджета.
Обработка ошибок
API Vidiome использует стандартные коды состояния HTTP:
| Код | Значение | Действие |
|---|---|---|
200 |
Успех | Ответ процесса |
400 |
Неверный запрос (неверный URL-адрес, неподдерживаемый язык и т. д.) | Исправить параметры запроса |
401 |
Неверный или отсутствующий ключ API | Проверьте заголовок авторизации |
402 |
Недостаточно кредитов | Пополните счет или уменьшите размер пакета |
429 |
Превышен лимит скорости | Внедрить экспоненциальную отсрочку |
500 |
Ошибка сервера | Повторить попытку с экспоненциальной задержкой (максимум 3 попытки) |
Часто задаваемые вопросы
Поддерживает ли API Vidiome загрузку файлов или только URL-адреса YouTube?
API Vidiome поддерживает как URL-адреса YouTube, так и прямую загрузку файлов. Для загрузки файлов сначала вызовите POST /api/v1/files с вашим видеофайлом (MP4, MOV или WebM, до 2 ГБ), получите file_id, затем передайте этот file_id в POST /api/v1/articles с «type»: «file_upload». Это полезно для обработки видео, не размещенных на YouTube — записей вебинаров, видеороликов Loom, внутреннего обучающего контента и видеороликов, размещенных на Vimeo.### Как обрабатывать длинные видео (более 60 минут) через API?
Vidiome обрабатывает видео длительностью до 4 часов через API. Для видео продолжительностью более 60 минут ответ API по умолчанию асинхронный – вы сразу получите идентификатор задания, а затем будете опрашивать GET /api/v1/articles/{id} каждые 15–30 секунд, пока статус не станет завершен. 90-минутное видео обычно обрабатывается за 6–9 минут. 60-секундная архитектура разделения звука Vidiome означает, что даже очень длинные видеоролики не вызывают проблем с тайм-аутом.
Есть ли опция веб-перехватчика вместо опроса?
Да. Vidiome поддерживает обратные вызовы веб-перехватчиков для завершения статьи. Добавьте поле «webhook_url» в тело запроса POST, указывающее на вашу конечную точку, и Vidiome отправит запрос POST с полным объектом статьи после завершения обработки, что устраняет необходимость в опросе. Полезная нагрузка веб-перехватчика идентична формату ответа GET /api/v1/articles/{id}.
Следующие шаги
Vidiome
Turn your videos into SEO traffic machines
Сгенерировать первую статьюКредитная карта не требуется · 120 бесплатных кредитов