Buffer Shorts
Wandelt eine Anweisung wie "veröffentliche dieses Video in meinen Netzwerken" in einen konkreten Plan und eine überprüfbare Veröffentlichung um. Führt scripts/buffer_shorts.py aus diesem Verzeichnis aus. Die CLI verwendet standardmäßig Python 3.9+, gibt JSON zurück und benötigt weder Content Publisher, Server, Browser noch externe Python-Abhängigkeiten.
Erster Kontakt
- Lokalisiere dieses Verzeichnis, ohne einen absoluten Pfad oder einen Benutzernamen anzunehmen.
- Lies die README.md für Installation und Einschränkungen nur, wenn nötig.
- Führe
channelsaus, um bereits konfigurierte Konten zu sehen. Beachte die Berechtigungs- und Terminalregeln des Workspace. Die Hilfe anzuzeigen veröffentlicht nichts. - Wenn keine Konten vorhanden sind, leite den folgenden Onboarding-Prozess ein. Wenn bereits welche existieren, verwende sie wieder.
Conversational Onboarding
Frage nur nach dem, was fehlt: Name des Kontos und wie der Schlüssel übergeben werden soll. Erkläre: "Verbinde deine Netzwerke in Buffer und erstelle deinen API-Schlüssel unter Einstellungen → API. Ich erkenne die Kanäle und speichere die Konfiguration; du musst keine IDs suchen". URL: https://publish.buffer.com/settings/api Wenn sich der Pfad ändert, gehe zu Buffer → Settings → API.
Beispiel für eine Unterhaltung:
- Benutzer: "Richte mir Buffer ein, dieses Konto heißt Meine Marke".
- Agent: "Verbinde die Netzwerke in Buffer. Du kannst den Schlüssel in der versteckten lokalen Eingabeaufforderung eingeben, in einer lokalen Datei hinterlegen oder hier teilen, wenn du akzeptierst, dass er im Chatverlauf bleibt".
- Benutzer übergibt den Schlüssel mit der gewählten Methode.
- Agent konfiguriert, erkennt Kanäle und gibt deren Namen aus; wiederholt den Schlüssel nicht.
- Agent: "Ich habe YouTube Mein Kanal, TikTok Mein Kanal und Instagram Mein Kanal gefunden. Soll ich sie in der Gruppe Meine Marke speichern?" Wenn der Benutzer die Gruppe/die Ziele bereits angegeben hat, erstelle sie direkt.
Für die versteckte lokale Eingabe:
python scripts/buffer_shorts.py accounts add --label "Meine Marke"
Dies erfordert ein interaktives Terminal, in dem der Benutzer mit getpass schreibt. Führe es nicht in einem Tool ohne interaktive Eingabe aus, in dem erwartet wird, dass der Benutzer dort schreiben kann.
Für eine vom Benutzer vorbereitete lokale Datei:
python scripts/buffer_shorts.py accounts add --label "Meine Marke" --key-file ".local/key-input.txt"
Wenn der Schlüssel im Chat übergeben wurde, erstelle zuerst .local/ und schreibe nur den Schlüssel in .local/key-input.txt mit dem Datei-Tool des Agenten. Führe den obigen Befehl aus, überprüfe den Erfolg und lösche diese temporäre Datei mit dem Datei-Tool. Der Schlüssel bleibt in .local/config.json. Interpoliere den Schlüssel nicht in Shell-Befehle, Argumente, Dokumente, Beispiele oder Nachrichten.
Es wird auch --key-env VARIABLENNAME oder --key-stdin unterstützt. Erfinde keine Schlüssel und kopiere keine von anderen Projekten. Zeige kein config.json an; accounts list und channels sind so konzipiert, dass sie Ergebnisse ohne Geheimnisse anzeigen.
Mehrere Konten
Wenn der Benutzer "ein weiteres Konto hinzufügen" sagt, wiederhole accounts add mit einem anderen Namen und seinem Schlüssel. Die Kanäle werden hinzugefügt, ohne die vorherigen zu ersetzen. Wenn der Benutzer Verbindungen in Buffer hinzugefügt hat, führe accounts refresh aus, optional mit --account ID.
Der Free-Plan jedes Kontos bietet bis zu drei Kanäle gemäß den aktuellen Buffer-Grenzen. Mehrere Schlüssel desselben Kontos vervielfachen diese Grenze nicht. Diese Skill verwaltet unabhängige Konten, erkennt deren tatsächliche Verbindungen und erzwingt kein Maximum von drei: Sie dient auch für Pläne mit mehr Kanälen. Versprich keine unbegrenzten Verbindungen oder dass Buffer eine Multi-Account-Strategie autorisiert; dokumentiere die aktuellen Bedingungen wie die des Anbieters.
Jeder Kanal hat eine Referenz: KONTEN_ID:KANAL_ID. Behalte diese Identitäten bei, auch wenn zwei Netzwerke denselben Namen haben. Wenn "youtube" mit zwei Kanälen übereinstimmt, frage nach, welcher gemeint ist, und verwende dessen Referenz; veröffentliche nicht in allen und wähle nicht den ersten aus.
Eine Gruppe kann Ziele aus mehreren Konten kombinieren:
python scripts/buffer_shorts.py group "Meine Marke" --targets "REF_1,REF_2,REF_3"
Ein Video vorbereiten
-
Ermittle den Pfad der MP4-Datei und das/die Ziel(e), entweder nach Gruppe oder Referenz. Verwende
channels; erfinde nichts. -
Verwende die Transkription/den Kontext des Benutzers oder die Inspektion des Videos, um seinen Inhalt zu verstehen. Wenn du es nicht inspizieren kannst, bitte um eine kurze Erklärung. Leite keine Fakten, Ergebnisse, Millionen von Aufrufen oder Marken aus dem Dateinamen ab.
-
Bevor du Texte verfasst, führe eine kurze Websuche zu Titeln/Bildunterschriften für die ausgewählten Netzwerke durch: bis zu 3 gruppierte Suchanfragen und 3 Seiten, etwa 60 Sekunden als Richtwert. Priorisiere offizielle Quellen; wende maximal 3 nützliche Verbesserungen an. Lies
references/copy-refresh.mdfür das Verfahren. Verwende am selben Tag für dasselbe Veröffentlichungspaket bereits überprüfte Informationen wieder. Speichere Datum, Quellen und Regeln in.local/copy-research.json; niemals in öffentlichen Dateien. Suche nicht nach Schlüsseln, Konto-IDs oder privaten Texten des Benutzers. Wenn du nicht surfen kannst, verwende grundlegende Prinzipien und gib an, dass keine aktuelle Recherche stattfand; erfinde keine Algorithmus-Neuigkeiten und stoppe die Veröffentlichung nicht. -
Verfasse präzise, kurze Texte, die für jedes Netzwerk geeignet sind. YouTube trennt Titel und Beschreibung; TikTok verwendet eine Bildunterschrift, keinen unabhängigen Videotitel.
-
Bereite bei Bedarf ein lokales JSON mit Einstellungen pro Dienst oder Referenz vor:
{ "youtube": {"title": "Konkreter Titel", "description": "Nützliche Beschreibung", "category_id": "27"}, "tiktok": {"caption": "Aufhänger und Kontext #Thema"}, "instagram": {"caption": "Kontext und Handlungsaufforderung"}, "facebook": {"caption": "Text für das Reel"}, "linkedin": {"title": "Lernerfahrung", "caption": "Professioneller Kontext"} }
Ein Eintrag pro Referenz hat Vorrang vor dem Eintrag pro Dienst. Der Basistitel und die Basisbeschreibung sind obligatorisch. Füge nicht automatisch ein Emoji oder #youtube/#tiktok hinzu. Setze ai_generated nur, wenn du Informationen dafür hast; es wegzulassen bedeutet nicht, dass das Video keine KI verwendet. Wenn der Benutzer die Privatsphäre oder die Kindersicherung anpassen möchte, erfordert diese Version eine Überprüfung dieser Optionen in Buffer vor dem Senden; versprich nicht, dass die CLI sie konfiguriert.
python scripts/buffer_shorts.py prepare "video.mp4" --group "Meine Marke" --title "Titel" --description "Beschreibung" --copy-file ".local/copy.json"
Alternative zu --group: --targets "REF_1,REF_2". prepare ist lokal: lädt das Video nicht hoch und veröffentlicht nicht. Gibt den Pfad eines Plans mit Konten, Texten und Prüfsumme des Videos zurück. Zeige dem Benutzer die Ziele und den endgültigen Text in einfacher Sprache.
Veröffentlichen und überprüfen
Wenn der Benutzer bereits die Veröffentlichung dieses Videos auf diesen Zielen angefordert hat, autorisiert die Anweisung die Veröffentlichung. Wenn er nur die Vorbereitung, Textvorschläge oder Konfiguration angefordert hat, warte auf seine Autorisierung zur Veröffentlichung. Beachte zusätzliche lokale Berechtigungen. Bitte nicht um erneute Bestätigung einer Aktion, die bereits klar autorisiert ist.
python scripts/buffer_shorts.py publish "PLAN_PFAD" --yes
python scripts/buffer_shorts.py status "PLAN_PFAD"
Erkläre vor dem ersten Versand, dass das Video auf einem temporären öffentlichen Host gehostet wird, damit Buffer es herunterladen kann. Verwende diese Option für die sofortige Veröffentlichung; verwende sie nicht für die Planung. --media-url URL ermöglicht eine eigene öffentliche MP4-Datei. Es werden keine "Anti-Ban"-, Reichweiten- oder Viralitätsvorteile angekündigt.
Die CLI protokolliert jeden Versand, bevor sie ihn bei Buffer anfordert. Sie führt keine blinden Wiederholungen durch. Wenn eine Anfrage unterbrochen wird, blockiert der Status unknown/submitting das erneute Senden: Konsultiere Buffer und den Verlauf, bevor du eine Entscheidung triffst. --republish nur bei einer ausdrücklichen Bitte um erneute Veröffentlichung; verwende es nicht zur Fehlerbehebung.
Um einen unsicheren Versand nach Überprüfung wiederherzustellen, verwende recover PLAN --target REF --post-id ID --yes, wenn du den Beitrag in Buffer gefunden hast. Überprüfe, ob der Inhalt übereinstimmt; die CLI prüft, ob die ID zum ausgewählten Kanal gehört. Wenn der Benutzer überprüft hat, dass kein Beitrag erstellt wurde, ermöglicht recover PLAN --target REF --not-sent --yes einen neuen Versuch. Behaup nicht, dass ein Beitrag aufgrund eines Timeouts nicht vorhanden ist. Ein Lock nach einer Unterbrechung erfordert die Überprüfung, dass der Prozess beendet ist, und die Überprüfung des Verlaufs, bevor nur .local/publish.lock entfernt wird.
sent: veröffentlicht; gibtexternal_linkzurück, falls verfügbar.sending/scheduled/accepted: Buffer hat es erhalten, noch nicht als veröffentlicht bestätigt.error: meldet den Fehler; ermöglicht einen erneuten Versuch nach Behebung.needs_approval/draft: erfordert die Vervollständigung des ausstehenden Schritts in Buffer.skipped: bereits gesendet; überprüfe den im Ergebnis angegebenen ursprünglichen Plan.unknown/blocked: Überprüfung erforderlich, nicht automatisch erneut senden.not_submitted: Dieses Ziel wurde noch nicht gesendet.
Wenn es aussteht, frage den Status in angemessenen Abständen erneut ab. Ein PostActionSuccess oder eine ID beweist keine Veröffentlichung. Melde pro Ziel: Kontoname/Netzwerk, Status, Post-ID, Link und Fehler, falls vorhanden.
Umfang
Hauptadapter: YouTube, TikTok, Instagram, Facebook und LinkedIn.
Es gibt auch einen grundlegenden Video-Adapter für X (service=twitter), Threads, Bluesky und Mastodon; unterliegt deren Grenzen. channels markiert supported=false für erkannte Dienste ohne Adapter. Behaup nicht "alle Netzwerke".
Verwende ein vertikales oder quadratisches MP4 mit bis zu 180 Sekunden und maximal 150 MB. Optionales ffprobe überprüft Abmessungen/Dauer; ohne es gibt die CLI an, dass es nicht überprüft wurde, und es muss vor der Veröffentlichung überprüft werden. Die spezifischen Grenzen jedes Netzwerks können strenger sein. Konvertiere keine Videos und installiere kein ffmpeg automatisch.
Installiere diese Skill nicht global, es sei denn, der Benutzer fordert es an. Um sie in jedem Agenten zu verwenden, reicht es, diese SKILL.md zu lesen und Python ausführen zu können.