Create Video


Videos are generated from one or more templates used as clips, filling their layers with your data.

Endpoint

Method URI
POST https://api.placid.app/api/rest/videos

Request

{
  "webhook_success": "https://webhook.url",
  "passthrough": null,

  "clips": [
    {
        "template_uuid": "<template_uuid>",
        "layers": {
            "video": {
                "video": "https://videourl.mp4"
            },
            "img": {
                "image": "https://imageurl.jpg"
            },
            "subtitle": {
                "hide": true
            },
            "title": {
                "text": "Lorem Ipsum"
            }
            ...
        },
    },
    // ...
  ],

  "modifications": {
     "width": "<width>",
     "height": "<height>",
     "fps": "<fps>",
     "filename": "<filename>",
     "canvas_background": "blur"
  },
  "transfer": {
     "to": "s3",
     "key": "<your key>",
     "secret": "<your secret>",
     "region": "<region name>",
     "bucket": "<bucket name>",
     "visibility": "public",
     "path": "videos/video.mp4",
     "endpoint": "https://exampleendpoint.com"
  }
}
Field Values Description
webhook_success Webhook URL After the image is created Placid will POST the response to this Webhook URL
passthrough string or array Any data added to this parameter will be saved and sent in any subsequent webhooks and requests for this video (max-length is 1024 characters)
clips array of clip objects Your desired clips/templates; Add multiple templates to get a merged video
transfer Additionally transfer the generated image to your storage

Video content

The content of your video will be defined by an array of templates in your clips object.

Field Values
clips.*.template_uuid The ID of the template used for your clip
clips.*.layers View Layer Properties Dynamically change the content and properties of your template layers

Get your {template_uuid} from the template overview in the Templates tab of your Placid API project.

https://placid.app/images/placid-template-id.jpg

  • The API allows you to create a video from one or more clips / templates, merged in the order you define
  • You can fill one or more picture layers in your template with video files
  • The longest video file you fill in one of your layers will define the total clip length
  • If you fill a clip with > 1 video, the shorter videos will loop automatically until the longest is finished
  • Audio tracks are taken from your source video (the video will be muted if you use > 1 video files)
  • Current max video length is 3 minutes (= 180 seconds)
  • If you do not define any width and height modifications, the video will be sized according to your first clip template's size
  • Differently sized clips will be set on a canvas background customizable via modifications below

Export / transfer

To transfer the generated video to your storage use the transfer object.

Field Values
transfer.to s3
transfer.key, transfer.secret Your credentials (Placid never stores them)
transfer.bucket Your bucket name
transfer.visibility public or private
transfer.path File path (Define the full video path starting from the root directory of your bucket, including filename and file extension. Placid will overwrite existing files in the specified directory!)

File modifications

To modify the generated video use the modifications object.

Field Values
modifications.format mp4
modifications.width Video width
Empty = auto
modifications.height Video height
Empty = auto
modifications.canvas_background Defaults to #000000; Enter hexcode or blur for blurred
modifications.fps Defaults to 25 fps; min 1 max 30
modifications.filename Filename of the generated video

Response

By default all videos are created async. Define a webhook_success URL or poll the polling_url of the response until the status of the response is finished.

{
    "id": 1,
    "status": "queued",
    "video_url": null,
    "polling_url": null
}
Field Values
id Unique video id for internal reference
status queued The request has been put into the queue.
finished The video has been created successfully.
error There was an error.
video_url URL to created video or null
polling_url Endpoint that you can GET poll for status updates

{info} We recommend storing created videos on your servers, as we only store them for a limited time.