Як використовувати API Vidiome для автоматизації створення статей із відео

    ·9 хв читання·Автор Vidiome Team
    Vidiome APIArticle AutomationDeveloper TutorialContent Automation

    Технічний посібник для розробників: використовуйте кінцеву точку POST /api/v1/articles від Vidiome для автоматизації генерації відео до статті в масштабі. Включено приклади Curl + Node.js.

    Загальнодоступний API REST від 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 із принаймні планом Starter (для доступу до 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"
      },
      "генерація": {
        "мова": "uk",
        "focus_keyword": "як перетворити відео YouTube на допис у блозі",
        "вихідний_формат": "уцінка"
      }
    }
    

    об'єкт джерело

    Поле Тип Необхідно Опис
    тип рядок Так "youtube_url" або "file_upload"
    url рядок Обов’язковий, якщо type = youtube_url Повна URL-адреса відео YouTube
    id_file рядок Необхідно, якщо type = file_upload" Ідентифікатор файлу з попереднього завантаження /api/v1/files

    об'єкт generation

    Поле Тип Необхідно Опис
    мова рядок Так Код ISO 639-1. Підтримується: en, fr, es, pt, de, ru, hi, uk, id, tr
    focus_keyword рядок Ні Цільове ключове слово SEO — покращує H1 і мета вирівнювання
    вихідний_формат рядок Ні "markdown" (за замовчуванням) або "html"

    Відповідь

    {
      "id": "art_01HZXXX",
      "status": "завершено",
      "created_at": "2026-05-15T10:23:41Z",
      "processing_time_seconds": 187,
      "credits_used": 12,
      "стаття": {
        "title": "Як перетворити відео YouTube на публікацію в блозі за 5 хвилин",
        "meta_description": "Vidiome перетворює будь-яку URL-адресу YouTube на структуровану публікацію блогу SEO менш ніж за 5 хвилин. Покроковий посібник із транскрипцією Whisper із точністю 95%+.",
        "content": "# Як конвертувати відео YouTube...\n\n## Що вам знадобиться\n...",
        "word_count": 1247,
        "мова": "uk",
        "focus_keyword": "як перетворити відео YouTube на публікацію блогу"
      },
      "транскрипт": {
        "text": "Всім привіт, сьогодні я хочу показати вам...",
        "сегменти": [
          { "start": 0.0, "end": 4.2, "text": "Всім привіт, сьогодні я хочу вам показати" },
          ...
        ]
      }
    }
    

    Значення стану

    Статус Значення
    у черзі Запит прийнято, обробку не розпочато
    обробка Виконується транскрипція та/або створення статті
    завершено Стаття готова у відповідь тіло
    не вдалося Помилка обробки — дивіться поле помилка

    Для асинхронного опитування використовуйте GET /api/v1/articles/{id} з повернутим id.


    Приклади коду

    завиток

    curl -X POST https://vidiome.com/api/v1/articles \
      -H "Тип вмісту: додаток/json" \
      -H "Авторизація: носій YOUR_API_KEY" \
      -d '{
        "джерело": {
          "type": "youtube_url",
          "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
        },
        "генерація": {
          "мова": "uk",
          "focus_keyword": "стратегія перепрофілювання вмісту",
          "вихідний_формат": "уцінка"
        }
      }'
    

    Опитування для заповнення:```баш

    Замініть 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;
    
    async function generateArticle(youtubeUrl, focusKeyword, language = 'en') {
      // Крок 1: Надішліть запит на створення статті
      const response = await fetch('https://vidiome.com/api/v1/articles', {
        метод: 'POST',
        заголовки: {
          'Content-Type': 'application/json',
          'Авторизація': `Носій ${VIDIOME_API_KEY}`,
        },
        тіло: JSON.stringify({
          джерело: {
            тип: 'youtube_url',
            url: youtubeUrl,
          },
          покоління: {
            мова,
            focus_keyword: фокусне ключове слово,
            output_format: 'уцінка',
          },
        }),
      });
    
      const job = await response.json();
    
      if (!response.ok) {
        throw new Error(`Помилка API Vidiome: ${job.message}`);
      }
    
      // Крок 2: опитування до завершення
      return await pollUntilComplete(job.id);
    }
    
    асинхронна функція pollUntilComplete(articleId, maxAttempts = 30, intervalMs = 10000) {
      для (нехай спроба = 0; спроба < maxAttempts; спроба++) {
        await new Promise(resolve => setTimeout(resolve, intervalMs));
    
        const res = await fetch(`https://vidiome.com/api/v1/articles/${articleId}`, {
          headers: { 'Authorization': `Bearer ${VIDIOME_API_KEY}` },
        });
    
        const article = очікування res.json();
    
        if (article.status === 'completed') {
          повернути статтю;
        }
    
        if (article.status === 'failed') {
          throw new Error(`Помилка створення статті: ${article.error}`);
        }
    
        console.log(`[Vidiome] Статус: ${article.status} (спроба ${attempt + 1}/${maxAttempts})`);
      }
    
      throw new Error('Vidiome: час очікування опитування перевищено');
    }
    
    // Використання
    const result = await generateArticle(
      '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 / тригер webhook / n8n / Make.com │
    │ - Дедуплікація (пропуск уже оброблених URL-адрес) │
    │ - Обмеження швидкості (дотримуйтеся бюджету кредитів API) │
    │ - Керування чергою │
    └───────────────────────┬─────────────────────────────────────┘
                           │ ОПУБЛІКУВАТИ /api/v1/articles
                           ▼
    ┌────────────────────────────────────────────────────────────┐
    │ API VIDIOME │
    │ 1. Транскрипція пошепки (60-секундні фрагменти, 95%+ відповідність) │
    │ 2. Генерація LLM статті (структура + SEO) │
    │ 3. Повернення: заголовок, мета, вміст (MD/HTML), стенограма │
    └───────────────────────┬─────────────────────────────────────┘
                           │ Завершений об’єкт статті
                           ▼
    ┌────────────────────────────────────────────────────────────┐
    │ ШАР ПІСЛЯ ОБРОБКИ │
    │ - Черга перевірки людиною (необов'язково, але рекомендовано) │
    │ - Ін'єкція внутрішніх посилань (додавання посилань на наявні публікації)│
    │ - Призначення обраного зображення │
    │ - Ін'єкція розмітки схеми (стаття JSON-LD) │
    └───────────────────────┬─────────────────────────────────────┘
                           │ Опублікувати готову статтю
                           ▼
    ┌────────────────────────────────────────────────────────────┐
    │ CMS / ПЛАТФОРМА │
    │ WordPress (REST API) / Ghost (Admin API) │
    │ Webflow CMS / Contentful / Sanity / Custom DB │
    └────────────────────────────────────────────────────────────┘
    

    Випадки використання

    Пакетна обробка каналу YouTube

    Обробка всього попереднього каталогу каналу YouTube за один запуск:```javascript асинхронна функція processYouTubeChannel(channelVideoUrls, options = {}) { const { мова = 'en', concurrency = 3, // максимальна кількість паралельних запитів Vidiome delayMs = 2000, // затримка між партіями (обмеження швидкості) } = параметри;

    результати const = [];

    // Обробляти пакетами паралелізму for (let i = 0; i < channelVideoUrls.length; i += concurrency) { const batch = channelVideoUrls.slice(i, i + concurrency);

    const batchResults = await Promise.allSettled(
      batch.map(url => generateArticle(url, '', мова))
    );
    
    results.push(...batchResults);
    console.log(`Опрацьовані ${Math.min(i + concurrency, channelVideoUrls.length)}/${channelVideoUrls.length} відео`);
    
    if (i + concurrency < channelVideoUrls.length) {
      await new Promise(resolve => setTimeout(resolve, delayMs));
    }
    

    }

    повертати результати; }

    
    Канал із 100 відео, обробленими за 3 одночасними запитами: приблизно 100 хвилин загалом (у середньому 3 хвилини на відео × 100 ÷ 3 одночасних).
    
    ### Інтеграція CMS (приклад WordPress)
    
    Після того, як Vidiome поверне статтю, надішліть її безпосередньо в WordPress через REST API:
    
    ```javascript
    асинхронна функція publishToWordPress(vidiomeArticle, wpConfig) {
      const { URL-адреса сайту, ім’я користувача, пароль програми } = wpConfig;
      const credentials = Buffer.from(`${username}:${appPassword}`).toString('base64');
    
      const response = await fetch(`${siteUrl}/wp-json/wp/v2/posts`, {
        метод: 'POST',
        заголовки: {
          'Content-Type': 'application/json',
          'Авторизація': `Basic ${credentials}`,
        },
        тіло: JSON.stringify({
          назва: vidiomeArticle.article.title,
          content: vidiomeArticle.article.content, // формат HTML, рекомендований для WP
          витяг: vidiomeArticle.article.meta_description,
          status: 'draft', // Завжди спочатку створюйте чернетку для перегляду людиною
        }),
      });
    
      return await response.json();
    }
    

    Багатомовний пакет: одне відео, 10 мов

    Створіть ту саму статтю всіма 10 підтримуваними мовами одночасно:

    const SUPPORTED_LANGUAGES = ['en', 'fr', 'es', 'pt', 'de', 'ru', 'hi', 'uk', 'id', 'tr'];
    
    асинхронна функція generateMultilingual(youtubeUrl, focusKeywords = {}) {
      const requests = SUPPORTED_LANGUAGES.map(lang =>
        generateArticle(
          youtubeUrl,
          focusKeywords[мова] || focusKeywords['en'] || '',
          мова
        )
      );
    
      // Запуск усіх 10 мов паралельно
      const results = await Promise.allSettled(requests);
    
      return results.reduce((acc, result, index) => {
        const lang = SUPPORTED_LANGUAGES[індекс];
        if (result.status === 'виконано') {
          acc[lang] = result.value;
        } ще {
          console.error(`Помилка для ${lang}:`, result.reason);
        }
        повернути акс;
      }, {});
    }
    

    Це генерує 10 мовних версій одного відео приблизно за 5–8 хвилин (паралельна обробка).


    Обмеження ставок і кредитний бюджет

    План Обмеження швидкості API Кредити/місяць
    Безкоштовно (120 кредитів) 2 вимоги/хв 120 (одноразово)
    Стартер 10 вимог/хв За планом
    Pro 30 вимог/хв За планом
    Агентство 60 вимог/хв За планом

    Споживання кредитів: кожне покоління статті використовує 10–15 кредитів залежно від тривалості відео. 10-хвилинне відео використовує приблизно 10 кредитів; 60-хвилинне відео використовує приблизно 15 кредитів.

    Рекомендований бюджет для пакетної обробки: оцініть ceil(video_duration_minutes / 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 асинхронна за замовчуванням — ви негайно отримаєте id завдання, а потім опитуєте GET /api/v1/articles/{id} кожні 15–30 секунд, доки статус не буде completed. 90-хвилинне відео зазвичай обробляється за 6–9 хвилин. 60-секундна архітектура аудіо у Vidiome означає, що навіть дуже довгі відео не стикаються з проблемами тайм-ауту.

    Чи є опція webhook замість опитування?

    так Vidiome підтримує зворотні виклики webhook для завершення статті. Додайте поле «webhook_url» до тіла запиту POST, яке вказує на вашу кінцеву точку, і Vidiome надішле запит «POST» із повним об’єктом статті після завершення обробки — усуваючи потребу в опитуванні. Корисне навантаження вебхука ідентичне формату відповіді GET /api/v1/articles/{id}.


    Наступні кроки

    Vidiome

    Turn your videos into SEO traffic machines

    Згенерувати першу статтю

    Без банківської картки · 120 безкоштовних кредитів

    Більше статей

    ·13 хв читання

    Повний контрольний список пошукової пошукової пошукової системи AI на 2026 рік: 25 дій для позиціонування в ChatGPT, Perplexity та Google

    25 конкретних оптимізацій у структурі вмісту, згадування об’єктів, JSON-LD, технічний SEO та LLMs.txt для рейтингу в ChatGPT, Perplexity, Google AI Overviews і Claude.

    Читати далі
    ·8 хв читання

    Як перетворити відео TikTok на дописи блогу SEO за допомогою ШІ

    Відео TikTok не рейтингуються в Google, а публікації в блогах. Дізнайтеся, як за допомогою штучного інтелекту перетворити вміст TikTok на розгорнуті SEO-статті менш ніж за 15 хвилин.

    Читати далі
    ·10 хв читання

    Copy.ai проти Vidiome: що краще для створення вмісту блогу з відео?

    Copy.ai генерує вміст блогу з текстових підказок. Vidiome генерує його безпосередньо з вашого відео. Для перепрофілювання відео різниця в конвеєрі робить Vidiome швидшим і точнішим вибором.

    Читати далі