Video

API zur Videoerstellung

Generieren Sie Immobilien-Anzeigenvideos aus Fotos. Fügen Sie Untertitel, Musik, Immobilienmerkmale und individuelles Branding hinzu — alles aus einem einzigen synchronen JSON-Aufruf.

POST/api/create_video

Erstellt ein MP4-Video aus einer Liste von Bildern mit Bewegungseffekten, optionalen Untertiteln, Hintergrundmusik, Immobilienmerkmal-Overlays und Endkarten. Der Endpunkt ist synchron: Er blockiert, bis das Video gerendert ist, und gibt dann HTTP 200 mit der finalen videoUrl zurück.

Beispiele für Walkthrough-Videos
Sehen Sie echte Anzeigenvideos, generiert aus wenigen Fotos — vertikal und horizontal.
Beispiele ansehen →

Synchron, mit langem Timeout

Der Endpunkt blockiert bis zu 10 Minuten während des Video-Renderings und gibt dann die abspielbare URL zurück. Setzen Sie das Timeout Ihres HTTP-Clients auf mindestens 11 Minuten — die Standard-30–60 Sekunden der meisten HTTP-Bibliotheken werden vor Pedras Antwort abbrechen.

Wenn das Rendering 10 Minuten überschreitet, gibt der Endpunkt 500 mit {"error": "Video processing timeout after 10 minutes..."} zurück. Das Video kann im Hintergrund noch fertig werden — kontaktieren Sie den Support mit dem Request-Body, falls das passiert.

Parameter auf oberster Ebene

apiKeystringerforderlich
Ihr API-Schlüssel.
imagesarrayerforderlich
Geordnete Liste von Image-Objekten. Jedes wird zu einem Frame/Clip im Video. Siehe "Image-Objekt" unten.
isVerticalboolean
9:16 vertikales Format für Instagram Reels / TikTok. Standard ist 16:9 horizontal.
Default: false
propertyCharacteristicsarray
Array von {label, value}-Paaren (Bedrooms, Bathrooms, Surface, Price, etc). Nur sichtbar, wenn ein Bild characteristics.enabled = true hat.
musicobject
Hintergrundmusik. Objekt: { enabled: boolean, track: string }.
voiceobject
Voiceover. Objekt: { enabled: boolean, audioUrl: string }.
brandingobject
Individuelles Logo, Agentenfoto und Markenfarben-Overlay. Siehe Abschnitt "Branding".
endingTitlestring
Überschrift, die auf der Endkarte angezeigt wird.
endingSubtitlestring
Untertitel auf der Endkarte (normalerweise ein CTA oder Kontaktinformationen).

Image-Objekt

Jeder Eintrag in images beschreibt einen Frame:

imageUrlstringerforderlich
URL des Fotos (oder base64 data URI).
effectstringerforderlich
Bewegungseffekt für diesen Frame.
Values: zoom-in zoom-out static transition
secondImageUrlstring
Erforderlich, wenn effect = "transition". Das Zielbild für den Übergang.
subtitlestring
Beschriftung über diesem Frame.
titlestring
Großer Titel-Overlay (z. B. "Living Room", "Kitchen").
watermarkobject
Wasserzeichen-Konfiguration: { enabled, position, opacity }. Standardmäßig bottom-right mit opacity 1.0. Setzen Sie { enabled: false } zum Deaktivieren.
characteristicsobject
Zeigt das propertyCharacteristics-Overlay auf diesem Frame: { enabled: true }.

Wasserzeichen-Optionen

enabledboolean
Zeigt das Pedra-Wasserzeichen.
Default: true
positionstring
Wo das Wasserzeichen erscheint.
Values: top-left top top-right left center right bottom-left bottom bottom-right
Default: bottom-right
opacitynumber
Von 0.0 (unsichtbar) bis 1.0 (vollständig deckend).
Default: 1

Musiktitel

enabledbooleanerforderlich
Hintergrundmusik einschalten.
trackstringerforderlich
Musikstil.
Values: calm uplifting corporate piano

Branding

showWatermarkboolean
Zeigen Sie Ihr individuelles Logo als Wasserzeichen anstelle des Pedra-Logos.
watermarkUrlstring
URL Ihres Logos (PNG mit Transparenz empfohlen).
showProfessionalPictureboolean
Zeigt das Foto des Agenten auf der Endkarte.
professionalPictureUrlstring
URL des Agentenfotos.
primaryColorstring
Markenfarbe für Overlays als Hex-String (z. B. "#007BFF").

Beispiel: minimales Video

curl -X POST https://app.pedra.ai/api/create_video \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_API_KEY",
    "images": [
      { "imageUrl": "https://example.com/img1.jpg", "effect": "zoom-in" },
      { "imageUrl": "https://example.com/img2.jpg", "effect": "zoom-out" }
    ],
    "isVertical": false,
    "endingTitle": "Contact us!",
    "endingSubtitle": "Visit our website"
  }'

Beispiel: vollständiges Produktions-Anzeigenvideo

7-Frame-Walkthrough mit gemischten Effekten (zoom-in / zoom-out / transition / static), individuelles Wasserzeichen + Agentenfoto + Markenfarbe, Musik, Voiceover, Untertitel pro Frame, Overlay mit Immobilienmerkmalen und Endkarte. Entspricht dem typischen realen Payload-Muster, das Pedras eigene App verwendet.

curl -X POST https://app.pedra.ai/api/create_video \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_API_KEY",
    "images": [
      {
        "imageUrl": "https://example.com/exterior.jpg",
        "effect": "zoom-in",
        "subtitle": "Renovated 2-bedroom in Barcelona",
        "watermark": {"enabled": true, "position": "bottom-right", "opacity": 0.75},
        "characteristics": {"enabled": true}
      },
      {
        "imageUrl": "https://example.com/living-room.jpg",
        "effect": "zoom-out",
        "subtitle": "Bright, open-plan living space",
        "watermark": {"enabled": true, "position": "bottom-right", "opacity": 0.75}
      },
      {
        "imageUrl": "https://example.com/before.jpg",
        "secondImageUrl": "https://example.com/after.jpg",
        "effect": "transition",
        "title": "Before & After"
      }
    ],
    "isVertical": false,
    "propertyCharacteristics": [
      {"label": "Price", "value": "€450,000"},
      {"label": "Bedrooms", "value": "2"},
      {"label": "Bathrooms", "value": "1"},
      {"label": "Surface", "value": "85 m²"}
    ],
    "music": {"enabled": true, "track": "uplifting"},
    "voice": {"enabled": true, "audioUrl": "https://example.com/voiceover.mp3"},
    "branding": {
      "showWatermark": true,
      "watermarkUrl": "https://example.com/agency-logo.png",
      "showProfessionalPicture": true,
      "professionalPictureUrl": "https://example.com/agent-photo.jpg",
      "primaryColor": "#000000"
    },
    "endingTitle": "Felix Ingla",
    "endingSubtitle": "felix@pedra.ai"
  }'

Antwort

JSON
{
  "message": "Video created successfully",
  "videoId": "<uuid>",
  "videoUrl": "https://pedraimages.s3.eu-west-3.amazonaws.com/<uuid>"
}

Credits

Jeder Frame kostet 5 Credits — außer Frames mit effect: "static", die kostenlos sind. Ein Video mit 5 Bildern und allen zoom-in/zoom-out-Effekten zieht 25 Credits ab. Siehe Preise.

Validierungsfehler

HTTP 400 wird zurückgegeben bei:

  • Fehlendes oder leeres images-Array.
  • Jedes Bild ohne imageUrl (der Fehler nennt den fehlerhaften Index).
  • effect nicht in [zoom-in, zoom-out, transition, static].
  • effect: "transition" ohne secondImageUrl.

Verfügbare Merkmalsbezeichnungen

Bei Verwendung von propertyCharacteristics werden die folgenden Etikett-Schlüssel mit passenden Symbolen im Overlay gerendert: Bedrooms, Bathrooms, Surface, Price, Location, Parking, Heating, Outdoor. Benutzerdefinierte Etiketten sind erlaubt, werden aber ohne Symbol gerendert.

Weiter

Siehe Fehler und Limits für Fehlermodi und Timeout-Verhalten bei Video-Jobs.