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

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

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

    REST API Vidiome перетворює відео на YouTube на структуровану статтю для блогу одним запитом. Ви надсилаєте посилання на YouTube, Vidiome читає розшифровку відео, пише статтю за допомогою LLM і повертає її у форматі JSON: заголовок і список розділів, кожен із власним заголовком H2, текстом і часовими мітками.

    У цьому посібнику розглянуто автентифікацію, формат запиту й відповіді, приклади на curl і Node.js, пакетну обробку, публікацію у WordPress та обмеження, які варто врахувати.

    Для кого цей посібник

    • Розробники SaaS, які створюють функції автоматизації контенту для клієнтів або внутрішніх інструментів
    • Контент-агенції, що обробляють багато відео на тиждень і хочуть позбутися ручних кроків
    • Платформні команди, які вбудовують перетворення відео на статті в наявну CMS або контентний процес

    Якщо ви автор контенту, а не розробник, вебзастосунок Vidiome — швидший шлях. До того ж він робить скриншот для кожного розділу, чого API не робить.

    Vidiome

    Turn your videos into SEO traffic machines

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

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

    Що знадобиться

    • Обліковий запис Vidiome на платному тарифі (Starter, Pro або Business). Запити до API з безкоштовних облікових записів відхиляються з кодом 403.
    • API-ключ, створений у застосунку в розділі Профіль → API-ключі. Ключі починаються з vdm_live_. Зберігайте їх у таємниці: будь-хто, хто має ключ, може витрачати ваші кредити.
    • Відео на YouTube із розшифровкою (ручними або автоматичними субтитрами). API працює саме з цією розшифровкою.

    Нові облікові записи отримують 120 безкоштовних кредитів, щоб спробувати вебзастосунок перед вибором тарифу.


    Ендпоінт: POST /api/v1/articles

    Запит

    POST https://www.vidiome.com/api/v1/articles
    Content-Type: application/json
    x-api-key: vdm_live_YOUR_KEY
    

    Заголовок Authorization: Bearer vdm_live_YOUR_KEY теж працює.

    Тіло запиту

    {
      "youtubeUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
      "language": "en"
    }
    
    Поле Тип Обов'язкове Опис
    youtubeUrl string Так Повне посилання на відео YouTube
    language string Ні Мова, якою пишеться стаття: en, fr, es, pt, de, ru, hi, uk, id або tr. Вказуйте її явно: без неї мова не задається

    Це весь запит. Параметрів для завантаження файлу, формату виводу чи ключового слова немає.

    Відповідь

    Виклик синхронний: з'єднання залишається відкритим, поки Vidiome генерує статтю, а потім повертається повний результат. Залежно від тривалості відео це займає від кількох секунд до кількох хвилин.

    {
      "id": "5b0c9c2e-6f1d-4d8a-9a57-2f1f3c1e8b21",
      "title": "How to Repurpose One Video into a Month of Content",
      "sections": [
        {
          "id": "a3f1…",
          "title": "Introduction: one video, many formats",
          "content": "Most creators publish a video and move on…\n\n### Why the transcript is only a starting point\n\n…",
          "startTime": 0,
          "endTime": 74,
          "images": []
        }
      ],
      "videoUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
      "videoId": "XXXXXXXXXXX",
      "language": "en",
      "creditsUsed": 40,
      "creditsRemaining": 460,
      "createdAt": "2026-09-26T10:23:41.000Z"
    }
    

    Що варто знати про відповідь:

    • sections ідуть у порядку читання: вступ, основні розділи, потім висновок. title — це заголовок H2 розділу. content — текст із рядками ### для підзаголовків H3, порожніми рядками між абзацами, **жирним** текстом і пунктами списку - .
    • startTime / endTime вказані в секундах і показують, з якої частини відео взято кожен розділ. Це зручно, щоб вбудувати відео з потрібного моменту.
    • images через API завжди порожній. Скриншоти робить вебзастосунок безпосередньо в браузері. Щоб додати їх, відкрийте статтю у Vidiome і виберіть їх там або використайте власні зображення.
    • Стаття зберігається у вашому обліковому записі (id). Вона з'являється на панелі керування Vidiome, де її можна відредагувати.

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

    curl

    curl -X POST https://www.vidiome.com/api/v1/articles \
      -H "Content-Type: application/json" \
      -H "x-api-key: $VIDIOME_API_KEY" \
      -d '{
        "youtubeUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
        "language": "en"
      }'
    

    Node.js (fetch)

    const VIDIOME_API_KEY = process.env.VIDIOME_API_KEY;
    
    async function generateArticle(youtubeUrl, language = 'en') {
      const response = await fetch('https://www.vidiome.com/api/v1/articles', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'x-api-key': VIDIOME_API_KEY,
        },
        body: JSON.stringify({ youtubeUrl, language }),
        // Генерація може тривати кілька хвилин: не дозволяйте клієнту здатися раніше.
        signal: AbortSignal.timeout(6 * 60 * 1000),
      });
    
      const data = await response.json();
      if (!response.ok) {
        const error = new Error(`Vidiome API ${response.status}: ${data.error}`);
        error.status = response.status;
        error.retryAfter = Number(response.headers.get('retry-after')) || null;
        throw error;
      }
      return data;
    }
    
    // Перетворюємо розділи на Markdown (або передаємо їх власному рендереру).
    function toMarkdown(article) {
      const body = article.sections
        .map((section) => `## ${section.title}\n\n${section.content}`)
        .join('\n\n');
      return `# ${article.title}\n\n${body}\n`;
    }
    
    const article = await generateArticle('https://www.youtube.com/watch?v=XXXXXXXXXXX');
    console.log(toMarkdown(article));
    console.log(`Credits used: ${article.creditsUsed}, left: ${article.creditsRemaining}`);
    

    Процес автоматизації

    ┌─────────────────────────────────────────────────────────┐
    │                  ДЖЕРЕЛО ВІДЕО                           │
    │  Плейлист / канал YouTube / список посилань              │
    └──────────────────────┬──────────────────────────────────┘
                           │  Посилання YouTube
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                  ОРКЕСТРАЦІЯ                             │
    │  Cron job / n8n / Make.com / ваша власна черга           │
    │  - Пропускати вже оброблені посилання                    │
    │  - Не більше 10 запитів на хвилину на ключ               │
    │  - Повтор при 429 / 502 після затримки Retry-After       │
    └──────────────────────┬──────────────────────────────────┘
                           │  POST /api/v1/articles
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                     VIDIOME API                          │
    │  1. Отримання розшифровки відео YouTube                  │
    │  2. Написання статті за допомогою LLM                    │
    │  3. Збереження в обліковому записі, повернення           │
    │     заголовка й розділів                                 │
    └──────────────────────┬──────────────────────────────────┘
                           │  JSON статті
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                  ПОСТОБРОБКА                             │
    │  - Перетворення розділів на HTML або Markdown            │
    │  - Перевірка людиною (рекомендовано)                     │
    │  - Зображення, внутрішні посилання, meta description,    │
    │    розмітка schema                                       │
    └──────────────────────┬──────────────────────────────────┘
                           │  Стаття, готова до публікації
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                    CMS / ПЛАТФОРМА                       │
    │  WordPress / Ghost / Webflow / Contentful / Sanity       │
    └─────────────────────────────────────────────────────────┘
    

    Сценарії використання

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

    Кожен API-ключ обмежено 10 запитами на хвилину. Оскільки кожен запит залишається відкритим, доки стаття не буде готова, невеликої кількості паралельних запитів цілком достатньо:

    async function processVideos(urls, { language = 'en', concurrency = 2 } = {}) {
      const results = [];
      const queue = [...urls];
    
      async function worker() {
        while (queue.length > 0) {
          const url = queue.shift();
          try {
            results.push({ url, article: await generateArticle(url, language) });
          } catch (error) {
            if (error.status === 429 && error.retryAfter) {
              await new Promise((r) => setTimeout(r, error.retryAfter * 1000));
              queue.push(url); // спробуємо пізніше
            } else {
              results.push({ url, error: error.message });
            }
          }
        }
      }
    
      await Promise.all(Array.from({ length: concurrency }, worker));
      return results;
    }
    

    Зупиніть пакет, якщо отримали 402: на балансі недостатньо кредитів для наступного відео.

    Публікація у WordPress

    Vidiome повертає розділи, а не HTML, тож спершу їх треба перетворити. З цим впорається Markdown-бібліотека, наприклад marked, або можна обмежитися мінімальним перетворенням:

    import { marked } from 'marked';
    
    async function publishToWordPress(article, { siteUrl, username, appPassword }) {
      const credentials = Buffer.from(`${username}:${appPassword}`).toString('base64');
      const html = marked.parse(
        article.sections.map((s) => `## ${s.title}\n\n${s.content}`).join('\n\n')
      );
    
      const response = await fetch(`${siteUrl}/wp-json/wp/v2/posts`, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': `Basic ${credentials}`,
        },
        body: JSON.stringify({
          title: article.title,
          content: html,
          status: 'draft', // перевірте перед публікацією
        }),
      });
    
      return response.json();
    }
    

    Одне відео, кілька мов

    Надсилайте по одному запиту на кожну мову. Кожен із них — окрема генерація і витрачає кредити, як будь-яка інша:

    const LANGUAGES = ['en', 'fr', 'es', 'de'];
    
    async function generateInLanguages(youtubeUrl) {
      const versions = {};
      for (const language of LANGUAGES) {
        versions[language] = await generateArticle(youtubeUrl, language);
      }
      return versions;
    }
    

    Обмеження та кредити

    • Ліміт запитів: 10 запитів на хвилину на API-ключ на будь-якому платному тарифі. У разі перевищення ви отримаєте 429 із заголовком Retry-After (у секундах).
    • Тривалість: кожен запит може виконуватися на боці Vidiome до 5 хвилин. Дуже довгі відео можуть не вкластися в цей час; розділіть процес або використовуйте для них вебзастосунок.
    • Кредити: API тарифікується так само, як вебзастосунок, за поточною ставкою 4 кредити за хвилину відео з мінімумом 20 кредитів (10-хвилинне відео витрачає 40 кредитів, 60-хвилинне — 240). У кожній відповіді вказано creditsUsed і creditsRemaining. Тарифи й пакети кредитів — на сторінці цін.

    Обробка помилок

    Помилки повертаються у форматі JSON із полем error.

    Статус error Що робити
    400 Invalid request body або invalid-youtube-url Перевірте посилання та код мови
    401 Missing API key / Invalid or revoked API key Перевірте заголовок x-api-key
    402 insufficient-credits (з required і available) Поповніть кредити або перейдіть на вищий тариф
    403 api_access_requires_paid_plan Перейдіть на платний тариф
    404 no-captions Відео не має розшифровки; спробуйте інше відео
    429 ліміт запитів або transcript_provider_rate_limited Дочекайтеся Retry-After і повторіть
    500 article_generation_failed Повторіть один раз; якщо помилка не зникає, зв'яжіться з нами
    502 transcript_provider_unavailable / llm_provider_error Тимчасова помилка: повторіть із затримкою

    Поширені запитання

    Чи можна надіслати відеофайл замість посилання на YouTube?

    Ні. API приймає лише посилання на YouTube, і відео повинно мати розшифровку. Для файлів MP4, MOV або WebM використовуйте вебзастосунок: він розшифровує звук і до того ж робить скриншот для кожного розділу.

    Чи є вебхук або ендпоінт для перевірки статусу?

    Ні. Запит синхронний і повертає готову статтю. Якщо ви обробляєте багато відео, помістіть виклики у власну чергу завдань (cron job, n8n, Make.com, воркер) і зберігайте результати в міру їх надходження.

    Куди потрапляють статті, створені через API?

    Вони зберігаються у вашому обліковому записі Vidiome, тож ви знайдете їх на панелі керування. Це найпростіший спосіб додати скриншоти, виправити фрагмент за допомогою ШІ-переписування або експортувати статтю в HTML чи Markdown.


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

    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 швидшим і точнішим вибором.

    Читати далі →