Kommandozeile (CLI)

CLI-Beispiele pro Plattform

Fertige Befehle für Beiträge auf X, YouTube, TikTok, Instagram und mehreren Kanälen gleichzeitig.

Einfache Planung

posty posts:create \
  -c "Hallo zusammen! Heute haben wir eine neue Funktion veröffentlicht." \
  -s "2026-12-31T12:00:00Z" \
  -i "<kanal-id>"

Für einen Entwurf füge -t draft hinzu, für sofortige Veröffentlichung -t now. Ein Datum brauchst du dafür nicht.

X: Thread und Antworteinstellung

posty posts:create \
  -c "1/3 Starten wir mit einem kurzen Thread." \
  -c "2/3 Der zweite Teil." \
  -c "3/3 Und der Abschluss." \
  -d 2 \
  -s "2026-12-31T12:00:00Z" \
  --settings '{"who_can_reply_post":"everyone"}' \
  -i "<x-kanal-id>"

Bei X ist who_can_reply_post Pflicht. Die möglichen Werte listet die X-Plattformseite auf.

YouTube: Video

VIDEO=$(posty upload ./video.mp4 | jq -r '.path')

posty posts:create \
  -c "Die Beschreibung des Videos." \
  -m "$VIDEO" \
  -s "2026-12-31T12:00:00Z" \
  --settings '{"title":"Der Titel des Videos","type":"public"}' \
  -i "<youtube-kanal-id>"
Titel und Sichtbarkeit sind Pflicht

Bei YouTube lässt sich ein Beitrag ohne title (2 bis 100 Zeichen) und type (public, unlisted oder private) nicht planen. Standardwerte gibt es absichtlich nicht.

TikTok: Video

VIDEO=$(posty upload ./video.mp4 | jq -r '.path')

posty posts:create \
  -c "Die Beschreibung des Videos." \
  -m "$VIDEO" \
  -s "2026-12-31T12:00:00Z" \
  --settings '{
    "content_posting_method": "DIRECT_POST",
    "privacy_level": "PUBLIC_TO_EVERYONE",
    "title": "Der Titel des Videos",
    "duet": true,
    "stitch": true,
    "comment": true,
    "autoAddMusic": "no",
    "brand_content_toggle": false,
    "brand_organic_toggle": false
  }' \
  -i "<tiktok-kanal-id>"

DIRECT_POST veröffentlicht das Video tatsächlich. UPLOAD schickt es nur in den TikTok-Posteingang des Nutzers. Dort muss er es innerhalb von 24 Stunden von Hand fertigstellen. TikTok verwirft alle Einstellungen außer dem Titel. Mehr dazu auf der TikTok-Plattformseite.

Pinterest: Pinnwand

# die IDs der Pinnwände
posty integrations:trigger <pinterest-kanal> boards

BILD=$(posty upload ./bild.png | jq -r '.path')

posty posts:create \
  -c "Die Beschreibung des Pins." \
  -m "$BILD" \
  -s "2026-12-31T12:00:00Z" \
  --settings '{"board":"<board-id>","title":"Der Titel des Pins"}' \
  -i "<pinterest-kanal>"

board erwartet eine ID, keinen Pinnwandnamen. Dasselbe gilt für das Discord- und Slack-Feld channel.

Mehrere Kanäle, anderer Text

Wenn Text oder Einstellungen je Kanal anders sind, übergib die Anfrage als Datei. Der Dateiinhalt entspricht dem POST /posts Request-Body.

{
  "type": "schedule",
  "date": "2026-12-31T12:00:00Z",
  "shortLink": false,
  "posts": [
    {
      "integration": { "id": "<x-kanal>" },
      "value": [{ "content": "<p>Kurze Version für X.</p>", "image": [] }],
      "settings": { "__type": "x", "who_can_reply_post": "everyone" }
    },
    {
      "integration": { "id": "<linkedin-kanal>" },
      "value": [{ "content": "<p>Längere Version für LinkedIn.</p>", "image": [] }],
      "settings": { "__type": "linkedin" }
    }
  ]
}
posty posts:create --json ./beitrag.json
Fehlt etwas auf dieser Seite? Schreib eine E-Mail an [email protected] oder nutze auf der Hilfeseite das Formular.