So verwenden Sie die API von Vidiome, um die Artikelerstellung aus Videos zu automatisieren

    ·8 Min. Lesezeit·Von Vidiome Team
    Vidiome APIArticle AutomationDeveloper TutorialContent Automation

    Technisches Tutorial für Entwickler: Verwenden Sie den POST /api/v1/articles-Endpunkt von Vidiome, um die Video-zu-Artikel-Generierung im großen Maßstab zu automatisieren. Curl + Node.js-Beispiele enthalten.

    Die REST-API von Vidiome verwandelt ein YouTube-Video mit einer einzigen Anfrage in einen strukturierten Blogartikel. Sie senden eine YouTube-URL, Vidiome liest das Transkript des Videos, schreibt den Artikel mit einem LLM und liefert ihn als JSON zurück: einen Titel und eine Liste von Abschnitten, jeder mit eigenem H2-Titel, Inhalt und Zeitstempeln.

    Dieses Tutorial behandelt die Authentifizierung, das Anfrage- und Antwortformat, Beispiele mit curl und Node.js, die Stapelverarbeitung, die Veröffentlichung in WordPress und die Limits, die Sie einplanen sollten.

    Für wen ist dieses Tutorial?

    • SaaS-Entwickler, die Funktionen zur Content-Automatisierung für Kunden oder interne Tools bauen
    • Content-Agenturen, die jede Woche viele Videos verarbeiten und sich die manuellen Schritte sparen wollen
    • Plattform-Teams, die die Umwandlung von Video zu Artikel in ein bestehendes CMS oder einen Content-Workflow einbinden

    Wenn Sie eher Creator als Entwickler sind, ist die Vidiome-Web-App der schnellere Weg. Sie erstellt außerdem für jeden Abschnitt einen Screenshot, was die API nicht tut.

    Vidiome

    Turn your videos into SEO traffic machines

    Meinen ersten Artikel generieren

    Keine Kreditkarte erforderlich · 120 Gratis-Credits

    Voraussetzungen

    • Ein Vidiome-Konto mit einem kostenpflichtigen Tarif (Starter, Pro oder Business). API-Anfragen von kostenlosen Konten werden mit 403 abgelehnt.
    • Ein API-Schlüssel, den Sie in der App unter Profil → API-Schlüssel erstellen. Schlüssel beginnen mit vdm_live_. Halten Sie sie geheim: Wer den Schlüssel hat, kann Ihre Credits ausgeben.
    • Ein YouTube-Video mit Transkript (manuelle oder automatische Untertitel). Die API arbeitet mit diesem Transkript.

    Neue Konten erhalten 120 kostenlose Credits, um die Web-App auszuprobieren, bevor sie sich für einen Tarif entscheiden.


    Endpunkt: POST /api/v1/articles

    Anfrage

    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 funktioniert ebenfalls.

    Anfragetext

    {
      "youtubeUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
      "language": "de"
    }
    
    Feld Typ Pflicht Beschreibung
    youtubeUrl string Ja Vollständige URL eines YouTube-Videos
    language string Nein Sprache, in der der Artikel geschrieben wird: en, fr, es, pt, de, ru, hi, uk, id oder tr. Geben Sie sie immer an: Ohne diesen Wert wird keine Sprache vorgegeben

    Das ist die gesamte Anfrage. Es gibt keinen Parameter für Datei-Uploads, Ausgabeformate oder Keywords.

    Antwort

    Der Aufruf ist synchron: Die Verbindung bleibt offen, während Vidiome den Artikel erstellt, dann kommt das vollständige Ergebnis zurück. Rechnen Sie je nach Videolänge mit einigen Sekunden bis zu einigen Minuten.

    {
      "id": "5b0c9c2e-6f1d-4d8a-9a57-2f1f3c1e8b21",
      "title": "Wie Sie aus einem Video einen Monat voller Inhalte machen",
      "sections": [
        {
          "id": "a3f1…",
          "title": "Einleitung: ein Video, viele Formate",
          "content": "Die meisten Creator veröffentlichen ein Video und machen dann weiter…\n\n### Warum das Transkript nur ein Ausgangspunkt ist\n\n…",
          "startTime": 0,
          "endTime": 74,
          "images": []
        }
      ],
      "videoUrl": "https://www.youtube.com/watch?v=XXXXXXXXXXX",
      "videoId": "XXXXXXXXXXX",
      "language": "de",
      "creditsUsed": 40,
      "creditsRemaining": 460,
      "createdAt": "2026-09-26T10:23:41.000Z"
    }
    

    Einige Punkte, die Sie zur Antwort wissen sollten:

    • sections stehen in Lesereihenfolge: eine Einleitung, die Hauptabschnitte, dann ein Fazit. title ist die H2 des Abschnitts. content ist Text mit ### -Zeilen für H3-Zwischenüberschriften, Leerzeilen zwischen Absätzen, **Fettdruck** und - -Listenpunkten.
    • startTime / endTime sind in Sekunden angegeben und zeigen auf die Stelle im Video, aus der der jeweilige Abschnitt stammt. Praktisch, um das Video an der richtigen Stelle einzubetten.
    • images ist über die API immer leer. Screenshots werden von der Web-App im Browser aufgenommen. Um welche hinzuzufügen, öffnen Sie den Artikel in Vidiome und wählen sie dort aus, oder verwenden Sie eigene Bilder.
    • Der Artikel wird in Ihrem Konto gespeichert (id). Er erscheint in Ihrem Vidiome-Dashboard, wo Sie ihn bearbeiten können.

    Codebeispiele

    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": "de"
      }'
    

    Node.js (fetch)

    const VIDIOME_API_KEY = process.env.VIDIOME_API_KEY;
    
    async function generateArticle(youtubeUrl, language = 'de') {
      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 }),
        // Die Generierung kann einige Minuten dauern: Der Client darf nicht vorher aufgeben.
        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;
    }
    
    // Wandelt die Abschnitte in Markdown um (oder übergeben Sie sie Ihrem eigenen Renderer).
    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}`);
    

    Automatisierungs-Workflow

    ┌─────────────────────────────────────────────────────────┐
    │                       VIDEOQUELLEN                      │
    │  YouTube-Playlist / -Kanal / URL-Liste                  │
    └──────────────────────┬──────────────────────────────────┘
                           │  YouTube-URLs
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                      ORCHESTRIERUNG                     │
    │  Cronjob / n8n / Make.com / eigene Warteschlange        │
    │  - Bereits verarbeitete URLs überspringen               │
    │  - Unter 10 Anfragen pro Minute und Schlüssel bleiben   │
    │  - Bei 429 / 502 nach Retry-After erneut versuchen      │
    └──────────────────────┬──────────────────────────────────┘
                           │  POST /api/v1/articles
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                       VIDIOME-API                       │
    │  1. Transkript des YouTube-Videos abrufen               │
    │  2. Artikel mit einem LLM schreiben                     │
    │  3. Im Konto speichern, Titel + Abschnitte              │
    │     zurückgeben                                         │
    └──────────────────────┬──────────────────────────────────┘
                           │  Artikel-JSON
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                     NACHBEARBEITUNG                     │
    │  - Abschnitte in HTML oder Markdown umwandeln           │
    │  - Menschliche Prüfung (empfohlen)                      │
    │  - Bilder, interne Links, Meta-Description, Schema      │
    └──────────────────────┬──────────────────────────────────┘
                           │  Veröffentlichungsreifer Artikel
                           ▼
    ┌─────────────────────────────────────────────────────────┐
    │                     CMS / PLATTFORM                     │
    │  WordPress / Ghost / Webflow / Contentful / Sanity      │
    └─────────────────────────────────────────────────────────┘
    

    Anwendungsfälle

    Einen YouTube-Kanal im Stapel verarbeiten

    Jeder API-Schlüssel ist auf 10 Anfragen pro Minute begrenzt. Da jede Anfrage offen bleibt, bis ihr Artikel fertig ist, reichen wenige parallele Anfragen völlig aus:

    async function processVideos(urls, { language = 'de', 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); // später erneut versuchen
            } else {
              results.push({ url, error: error.message });
            }
          }
        }
      }
    
      await Promise.all(Array.from({ length: concurrency }, worker));
      return results;
    }
    

    Brechen Sie den Stapel ab, sobald Sie ein 402 erhalten: Ihr Credit-Guthaben reicht für das nächste Video nicht aus.

    In WordPress veröffentlichen

    Vidiome liefert Abschnitte, kein HTML, also wandeln Sie sie zuerst um. Eine Markdown-Bibliothek wie marked erledigt das, oder Sie halten die Umwandlung minimal:

    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', // vor dem Veröffentlichen prüfen
        }),
      });
    
      return response.json();
    }
    

    Ein Video, mehrere Sprachen

    Senden Sie eine Anfrage pro Sprache. Jede ist eine eigene Generierung und kostet Credits wie jede andere:

    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;
    }
    

    Limits und Credits

    • Rate-Limit: 10 Anfragen pro Minute und API-Schlüssel, in allen kostenpflichtigen Tarifen. Darüber hinaus erhalten Sie 429 mit einem Retry-After-Header (in Sekunden).
    • Dauer: Jede Anfrage kann auf Vidiome-Seite bis zu 5 Minuten laufen. Sehr lange Videos passen eventuell nicht in dieses Zeitfenster; teilen Sie Ihren Workflow auf oder nutzen Sie für sie die Web-App.
    • Credits: Die API kostet genauso viel wie die Web-App, zum aktuellen Satz von 4 Credits pro Videominute mit einem Minimum von 20 Credits (ein 10-minütiges Video verbraucht 40 Credits, ein 60-minütiges 240). Jede Antwort nennt creditsUsed und creditsRemaining. Tarife und Credit-Pakete finden Sie unter Preise.

    Fehlerbehandlung

    Fehler werden als JSON mit einem error-Feld zurückgegeben.

    Status error Was tun
    400 Invalid request body oder invalid-youtube-url URL und Sprachcode prüfen
    401 Missing API key / Invalid or revoked API key Header x-api-key prüfen
    402 insufficient-credits (mit required und available) Credits aufladen oder Tarif upgraden
    403 api_access_requires_paid_plan Zu einem kostenpflichtigen Tarif wechseln
    404 no-captions Das Video hat kein Transkript; ein anderes Video versuchen
    429 Rate-Limit oder transcript_provider_rate_limited Retry-After abwarten, dann erneut versuchen
    500 article_generation_failed Einmal erneut versuchen; wenn der Fehler bleibt, kontaktieren Sie uns
    502 transcript_provider_unavailable / llm_provider_error Vorübergehend: nach einer Pause erneut versuchen

    Häufig gestellte Fragen

    Kann ich statt einer YouTube-URL eine Videodatei senden?

    Nein. Die API akzeptiert nur YouTube-URLs, und das Video braucht ein Transkript. Für MP4-, MOV- oder WebM-Dateien nutzen Sie die Web-App: Sie transkribiert den Ton und erstellt zusätzlich für jeden Abschnitt einen Screenshot.

    Gibt es einen Webhook oder einen Status-Endpunkt?

    Nein. Die Anfrage ist synchron und liefert den fertigen Artikel zurück. Wenn Sie viele Videos verarbeiten, legen Sie die Aufrufe in Ihre eigene Job-Warteschlange (ein Cronjob, n8n, Make.com, ein Worker) und speichern Sie die Ergebnisse, sobald sie eintreffen.

    Wo landen die über die API erstellten Artikel?

    Sie werden in Ihrem Vidiome-Konto gespeichert, Sie finden sie also in Ihrem Dashboard. So fügen Sie am einfachsten Screenshots hinzu, korrigieren eine Passage mit der KI-Umformulierung oder exportieren den Artikel als HTML oder Markdown.


    Nächste Schritte

    Vidiome

    Turn your videos into SEO traffic machines

    Meinen ersten Artikel generieren

    Keine Kreditkarte erforderlich · 120 Gratis-Credits