API-Doku

Videos erzeugen

POST /v1/video/generations

Reicht einen Videoauftrag ein und antwortet sofort mit einer task_id. Das Rendern dauert je nach Modell, Länge und Auflösung meist ein bis fünf Minuten. Pfad und Antwortform entsprechen dem Video-Kanal von new-api, sodass Relay-Gateways diese Plattform unverändert als Video-Anbieter einbinden können.

Parameter

ParameterTypBeschreibung
promptstringPflicht. Was gerendert werden soll
modelstringModell-id aus /v1/models. Ohne Angabe das Standardmodell
modestringtext (Standard) oder image
durationintegerSekunden. Wird auf min_sec – max_sec der gewählten Stufe begrenzt
resolutionstring480p | 720p | 1080p | 4k. Wird von spec überschrieben
ratiostringadaptive | landscape | portrait | 16:9 | 9:16 | 4:3 | 3:4 | 1:1 | 21:9. Ohne Angabe entscheiden width/height über die Ausrichtung, fehlen beide, gilt adaptive. Alles andere ist ein Fehler. Welche davon das gewählte Modell annimmt, steht in aspect_ratios aus /v1/models
width / heightintegerPixelangabe, nur genutzt wenn ratio fehlt, um Quer- oder Hochformat zu bestimmen. Gleiche Werte fallen auf adaptive zurück
specstringStufenschlüssel. Bestimmt Auflösung und Sekundenpreis
imagestringURL des ersten Frames, genutzt bei mode=image
image_laststringURL des letzten Frames. Zusammen mit image ergibt das den Erst-/Letztframe-Modus
reference_imagesstring[]Referenzbilder für konsistente Motive
reference_videosstring[]Öffentliche Referenzvideo-URLs; positionsgleich mit reference_video_durations
reference_video_durationsnumber[]Dauer jedes Referenzvideos in Sekunden; jeder Wert muss eine ermittelbare positive Zahl sein
reference_audiosstring[]Öffentliche Referenzaudio-URLs; positionsgleich mit reference_audio_durations
reference_audio_durationsnumber[]Dauer jedes Referenzaudios in Sekunden; jeder Wert muss eine ermittelbare positive Zahl sein
Bei mode=image muss image oder reference_images gesetzt sein; beides leer ist ein Fehler. Referenzvideo und -audio hängen von den Modellfähigkeiten ab. Ist reference_media_max_sec>0, braucht jedes zugehörige Medium eine ermittelbare positive Dauer; bei sekundengenauer Referenzvideo-Abrechnung ist reference_video_durations ebenfalls Pflicht. Nicht unterstützte oder zu lange Eingaben werden ausdrücklich abgelehnt. n größer 1 wird ebenfalls abgelehnt – Videos werden pro Clip abgerechnet und begrenzt, reiche daher getrennte Anfragen ein.

Anfrage

bash
curl https://open.pikpikgo.com/v1/video/generations \
  -H "Authorization: Bearer $PIKPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "langsame Kamerafahrt nach vorn, ein Mädchen dreht sich um und lächelt",
    "mode": "text",
    "duration": 5,
    "resolution": "720p"
  }'

Antwort

json
{
  "task_id": "2608101915300490318827",
  "id": "2608101915300490318827",
  "object": "video",
  "model": "video-pro-1",
  "created_at": 1786000530,
  "status": "processing",
  "url": "",
  "format": "",
  "metadata": {
    "duration": 5,
    "resolution": "720p",
    "ratio": "adaptive"
  },
  "error": null,
  "credits": 60,
  "prompt": "langsame Kamerafahrt nach vorn, ein Mädchen dreht sich um und lächelt"
}

status processing heißt, der Auftrag hat den Renderer erreicht. Polle den Endpunkt unten mit der zurückgegebenen task_id. Scheitert das Rendern, werden die Credits automatisch erstattet.

Videoauftrag abrufen

GET /v1/video/generations/{task_id} – Videoaufträge werden hier gepollt, nicht unter /v1/tasks/{id} (der bedient nur Bilder). Die Form entspricht der Antwort beim Einreichen; ist der Auftrag fertig, ist url der gerenderte Clip und format sein Container.

bash
curl https://open.pikpikgo.com/v1/video/generations/2608101915300490318827 \
  -H "Authorization: Bearer $PIKPIK_API_KEY"
json
{
  "task_id": "2608101915300490318827",
  "id": "2608101915300490318827",
  "object": "video",
  "model": "video-pro-1",
  "created_at": 1786000530,
  "status": "succeeded",
  "url": "https://cdn.pikpikgo.com/video/2608101915300490318827.mp4",
  "format": "mp4",
  "metadata": {
    "duration": 5,
    "resolution": "720p",
    "ratio": "adaptive"
  },
  "error": null,
  "credits": 60,
  "prompt": "langsame Kamerafahrt nach vorn, ein Mädchen dreht sich um und lächelt"
}
error ist bei Erfolg null, kein leerer String – prüfe auf Fehlschlag mit status oder error !== null. Ein Auftrag ist nur für das Konto lesbar, das ihn erstellt hat; fremde und nie existierende Aufträge liefern exakt denselben 404.