Ein Hochformatvideo, vierzig Konten: So verteilt ein Agent Reels und Shorts über Shager

Ein Praxis-Playbook für Agenten mit Kurzvideos: Formatprüfung, Metadaten für Reels und Shorts, Texte pro Konto, versetzter Versand und echte MCP-Aufrufe.

Ein Agent kann ein kurzes Hochformatvideo an Dutzende Instagram-, Facebook- und YouTube-Konten verteilen: Er lädt es einmal mit Abmessungen und Dauer hoch, legt einen einzigen Beitrag an, der das Format pro Netzwerk festlegt, und schreibt für jedes Konto einen eigenen Text. Shager prüft die Datei gegen die Regeln jedes Netzwerks, bevor irgendetwas rausgeht, und versendet dann Konto für Konto mit einer zufälligen Pause dazwischen. Die eigentliche Arbeit des Agenten sind die Metadaten, nicht der Upload.

Dieser letzte Satz ist die ganze Lektion. Kurzvideo-Durchläufe scheitern selten am Video selbst. Sie scheitern, weil der Agent nicht weiß, dass der Clip 3 Minuten und 4 Sekunden lang ist, oder weil vierzig Konten denselben Text Wort für Wort bekommen.

Was muss der Agent vor dem Upload über die Datei wissen?

Drei Zahlen: Breite, Höhe und Dauer. Danach ordnen die Netzwerke Kurzvideos ein und nehmen sie an oder nicht. Ein Agent, der rät, produziert Beiträge, die im falschen Format landen oder abgelehnt werden.

Die Regel von YouTube lässt sich am klarsten formulieren. Laut Googles eigener Hilfeseite zu dreiminütigen YouTube Shorts werden Videos, die seit dem 15. Oktober 2024 hochgeladen wurden und ein quadratisches oder vertikales Seitenverhältnis sowie eine Länge von bis zu drei Minuten haben, als Shorts eingeordnet. Ein Clip von 3:04 in 9:16 ist also ein normales Video und kein Short, ganz gleich, was der Agent vorhatte.

Instagram ist beim Seitenverhältnis großzügiger, hat aber klare Vorstellungen. Metas Dokumentation zum Content Publishing für die Instagram Platform nennt die akzeptierten Container und Codecs für Reels und empfiehlt 9:16, um Beschnitt oder leere Flächen zu vermeiden. Das Video muss beim Veröffentlichen unter einer öffentlich erreichbaren URL liegen, weil Meta es von dort abholt.

Deshalb nimmt upload_media_from_url in Shager die optionalen Felder width, height und duration_ms entgegen. Gibst du sie mit, findet die Prüfung für Reels, Shorts und Storys beim Upload und noch einmal vor dem Planen statt – statt als gescheiterter Beitrag bei Konto Nummer 23 aufzutauchen.

Hat der Agent die Zahlen nicht, sollte er sie vor dem Upload ermitteln. In Claude Code oder Codex ist das ein einziger ffprobe-Aufruf:

ffprobe -v error -select_streams v:0 \
  -show_entries stream=width,height:format=duration \
  -of json launch-teaser.mp4
Diagramm: dasselbe Video im Hochformat 9:16 für Reels, Shorts und Storys und im Querformat 16:9 für ein normales YouTube-Video.
Shager prüft Seitenverhältnis und Länge vor dem Senden, nicht erst nach einem Fehler.

Die Reihenfolge der MCP-Aufrufe

Das ist die Abfolge, die ein Agent für einen Kunden mit 38 verbundenen Konten über den MCP-Server von Shager unter https://app.shager.ai/api/mcp durchläuft. Die Tool-Namen sind echt, die IDs Platzhalter.

  1. whoami, um zu prüfen, zu welcher Organisation der Schlüssel gehört und ob er veröffentlichen darf.
  2. list_workspaces, um den Workspace des Kunden zu finden.
  3. list_channels für diesen Workspace, um Netzwerke, Status und unterstützte Formate zu sehen.
  4. list_groups, um die Gruppe mit den Konten für diese Kampagne zu finden.
  5. upload_media_from_url mit Abmessungen und Dauer.
  6. create_post als Entwurf, mit Texten pro Konto und Format pro Netzwerk.
  7. request_approval, wenn der Kunde Videos freigibt, sonst schedule_post.
  8. get_post nach dem geplanten Zeitpunkt, um den Status jedes Kontos zu prüfen.

Der Upload-Aufruf:

{
  "tool": "upload_media_from_url",
  "arguments": {
    "workspace_id": "ws_example",
    "url": "https://cdn.example-agency.com/clients/aurora/launch-teaser.mp4",
    "file_name": "launch-teaser.mp4",
    "width": 1080,
    "height": 1920,
    "duration_ms": 42000
  }
}

Der Beitragsentwurf. Achte darauf, dass format pro Kanal gesetzt ist, weil dieselbe Datei auf Instagram und Facebook ein REEL und auf YouTube ein SHORT ist:

{
  "tool": "create_post",
  "arguments": {
    "workspace_id": "ws_example",
    "caption": "Aurora opens its new showroom on Thursday. 42 seconds inside.",
    "media_ids": ["med_teaser"],
    "youtube_title": "Inside the new Aurora showroom",
    "youtube_privacy": "public",
    "cta_url": "https://aurora-example.com/showroom",
    "campaign": "showroom-launch",
    "label": "Showroom teaser, week 38",
    "per_channel": [
      { "channel_id": "ch_ig_downtown", "format": "REEL",
        "caption": "Downtown team here. Thursday we open the doors, and this is what you'll see first." },
      { "channel_id": "ch_fb_northside", "format": "REEL",
        "caption": "Northside customers asked for a showroom. Here's a 42 second look before Thursday." },
      { "channel_id": "ch_yt_main", "format": "SHORT",
        "caption": "A first look at the new Aurora showroom, opening Thursday." }
    ],
    "stagger_seconds": [45, 120]
  }
}

In einem echten Durchlauf hat per_channel einen Eintrag für jedes Konto, nicht nur drei. Die schreibt der Agent – nicht ein Mensch.

Warum braucht jedes Konto einen eigenen Text?

Weil vierzig Seiten, die innerhalb einer Stunde denselben Text veröffentlichen, genau das Muster sind, auf das Spam-Systeme ausgelegt sind. Und weil es für alle, die zwei dieser Seiten folgen, schlecht aussieht. Die auth.md von Shager weist Agenten ausdrücklich an, Texte pro Konto über per_channel zu variieren.

Gute Variation heißt nicht, Synonyme auszutauschen. Der Agent sollte jeden Text an etwas festmachen, das für dieses Konto stimmt: den Standort, das Team, die Zielgruppe. Die Methode beschreiben wir ausführlich in Textvariation pro Konto mit KI, einschließlich der Frage, wie die Markenstimme stabil bleibt, während sich die Formulierungen ändern.

Speziell bei Kurzvideos gilt: Halte die Texte kurz. Die Botschaft steckt im Video. Ein Text, der nur das Voiceover wiederholt, verschenkt Platz.

Wohin gehört der Link bei Kurzvideos?

Hier liegen Agenten am häufigsten daneben, weil sie eine Regel auf alle Netzwerke anwenden.

Für YouTube schreibt Google in seiner Hilfe, dass URLs in Kommentaren und Beschreibungen von Shorts nicht anklickbar sind, um Spam zu reduzieren. Ein Lead-Link im ersten Kommentar eines Shorts ist Text, kein Link. Auf Instagram werden URLs in Texten und Kommentaren ebenfalls nicht als Links dargestellt. Bei Beiträgen auf Facebook-Seiten verhält sich ein Link im ersten Kommentar so, wie man es erwartet.

Bei einem Kurzvideo-Durchlauf sollte der Agent first_comment also pro Kanal nur dort setzen, wo es etwas bringt, und bei Shorts leer lassen. Shager erzeugt aus cta_url trotzdem pro Konto einen getrackten Kurzlink, sodass die Klickdaten überall dort, wo der Link auftaucht, pro Konto erhalten bleiben. Das komplette Playbook dazu steht in Lead-Links im ersten Kommentar mit Agenten.

Zeitleiste: Beiträge an verschiedene Konten verteilen sich über Minuten, mit einer eigenen Spur pro Netzwerk, statt alle in derselben Sekunde rauszugehen.
Die Staffelung hält das Tempo jedes Netzwerks ein und wirkt nicht wie Spam. Standard: 30 bis 90 Sekunden zwischen Konten im selben Netzwerk.

Taktung: Was stagger_seconds wirklich macht

stagger_seconds ist eine zufällige Pause in Sekunden zwischen Konten desselben Netzwerks. Der Standard ist [30, 90]. Bei 38 Konten auf drei Netzwerken läuft die Warteschlange jedes Netzwerks für sich: Instagram-Konten haben Abstand zueinander, YouTube-Kanäle ebenso.

Bei Videos ziehe ich den Bereich meist weiter auf. Ein Durchlauf mit 38 Konten bei [45, 120] dauert länger, aber die Beiträge verteilen sich über einen Zeitraum, der nach Menschen aussieht, die veröffentlichen, und nicht nach einem Skript. Wenn der Kunde Wert darauf legt, dass alles vor einer bestimmten Uhrzeit live ist, sollte der Agent früher planen, statt die Abstände zu verkürzen. Mehr zum Timing findest du in Planungsstrategie für Agenten.

Das Ergebnis prüfen

Nach dem geplanten Zeitpunkt ruft der Agent get_post auf. Das liefert den Gesamtstatus des Beitrags und den Status jedes Kontos: Veröffentlichungszeit, Live-URL oder den Fehler. Zu den Beitragsstatus gehören unter anderem PUBLISHED, PARTIALLY_PUBLISHED und FAILED; die übrigen stehen im OpenAPI-Dokument.

Ein PARTIALLY_PUBLISHED ist bei großen Durchläufen normal. Bei einem Konto ist der Token abgelaufen, eine Seite hat eine Berechtigung verloren. Die Aufgabe des Agenten ist, diese Konten dem Menschen namentlich zu melden, nicht blind neu zu versuchen. Oft reicht ein neuer Verbindungslink für genau dieses eine Konto.

Eine REST-Version für Skripte

Läuft die Pipeline aus einem Skript statt aus einem Chat-Agenten, sehen dieselben zwei Schritte per REST so aus:

curl -s https://app.shager.ai/api/v1/workspaces/ws_example/media \
  -H "Authorization: Bearer $SHAGER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://cdn.example-agency.com/clients/aurora/launch-teaser.mp4",
       "file_name":"launch-teaser.mp4","width":1080,"height":1920,"duration_ms":42000}'

curl -s https://app.shager.ai/api/v1/workspaces/ws_example/posts \
  -H "Authorization: Bearer $SHAGER_API_KEY" \
  -H "Content-Type: application/json" \
  -d @teaser-post.json

Antworten kommen als { "data": ... } zurück, Fehler als { "error": { "code", "message" } }. Das Limit liegt bei 120 Anfragen pro Minute und Schlüssel – davon ist ein einzelner Videodurchlauf weit entfernt.

FAQ

Kann der Agent ein Querformatvideo als Short veröffentlichen?

Nein. YouTube ordnet Shorts nach Seitenverhältnis und Länge ein, ein Querformatvideo erscheint also als normales Video, egal welches format du anforderst. Bitte den Editor um einen Hochformatschnitt oder veröffentliche die Querformatversion auf YouTube mit format auf VIDEO und nutze die Hochformatversion für Reels.

Sollte dasselbe Video am selben Tag an alle Konten gehen?

Das geht, mit variierten Texten und großzügigen Abständen. Bei großen Gruppen teilen viele Agenturen den Durchlauf auf zwei oder drei Tage auf, damit das Publikum eines Kontos nicht zur selben Stunde denselben Clip auch bei einer benachbarten Seite sieht. Der Agent kann das umsetzen, indem er pro Gruppe separate Beiträge mit unterschiedlichen schedule_at-Werten anlegt.

Was passiert, wenn ein Konto das Video ablehnt?

Shager prüft jedes Konto vor dem Versand gegen die Regeln seines Netzwerks, die meisten Probleme zeigen sich also schon beim Planen mit einer klaren Begründung. Scheitert trotzdem etwas beim Veröffentlichen, zeigt get_post, welches Konto betroffen ist und warum – der Rest des Durchlaufs bleibt davon unberührt.

Wie es weitergeht

Ist dein Agent noch nicht verbunden, fang beim Einstiegspunkt für Agenten an, der den MCP-Server, die REST-API und den Self-Signup abdeckt. Schick dann ein einzelnes Kurzvideo an eine kleine Gruppe, bevor du den Agenten auf die ganze Kundenliste ansetzt.

Probier’s aus – mit deinen eigenen Konten.

Kostenlos in der Launch-Phase, ohne Karte. Verbinden, einmal schreiben, und Shager veröffentlicht und misst.