Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Shotstack PHP Examples

Video examples

  • text.php - Create a HELLO WORLD video title against black background with a zoom in motion effect and soundtrack.

  • images.php - Takes an array of image URLs and creates a video with a soundtrack and simple zoom in effect.

  • titles.php - Create a video to demo titles using the available preset font styles, a soundtrack, zoom in motion effect and wipe right transition.

  • trim.php - Trim the start and end of a video clip to output a shortened video.

  • filters.php - Applies filters to a video clip, including a title with the name of the filter and a soundtrack.

  • captions.php - Parse an SRT transcript file and apply the captions to a video.

  • layers.php - Layer a title over a background video using tracks. The title includes a zoom effect and is semi-transparent.

  • luma.php - Create animated transition effects using a luma matte and the luma matte asset type.

  • merge.php - Merge data in to a video using merge fields.

  • transform.php - Apply transformations (rotate, skew and flip) to a video clip.

Image examples

  • border.php - Add a border frame around a background photo.

  • gif.php - Create an animated gif that plays once.

Polling example

  • status.php - Shows the status of a render task and the output video URL. Run this after running one of the render examples.

Probe example

  • probe.php - Fetch metadata for any media asset on the internet such as width, height, duration, etc...

Asset management examples

  • serve-api/renderId.php - Fetch all assets associated with a render ID. Includes video or image and thumbnail and poster.

  • serve-api/assetId.php - Fetch an individual asset by asset ID.

  • serve-api/destination.php - Shows how to exclude a render from being sent to the Shotstack hosting destination.

  • s3.js - Sends a rendered video to an S3 bucket and excludes it from Shotstack. Requires an AWS account and S3 bucket.

Template examples

  • templates/create.php - Create a reusable template with a placeholder that can be rendered with different merge field values.

  • templates/get.php - Get a stored template by template ID.

  • templates/render.php - Render the template created using templates/create.php using its ID and merge field.


  • PHP 7.3+
  • Composer


Install the required dependencies including the Shotstack SDK

composer install

Set your API key

The demos use the staging endpoint by default so use your provided staging key:

export SHOTSTACK_KEY=your_key_here

Windows users (Command Prompt):

set SHOTSTACK_KEY=your_key_here

You can get an API key via the Shotstack web site.

Run an example

The examples directory includes a number of examples demonstrating the capabilities of the Shotstack API.


To run a rendering/editing example run the examples at the root of the examples folder, e.g. to run the images video example:

php examples/images.php


To check the status of a render, similar to polling run the status.php example with the render ID, e.g.:

php examples/status.php 8b844085-779c-4c3a-b52f-d79deca2a960

Asset management

To look up assets hosted by Shotstack run the examples in the examples/serve-api directory.

Find assets by render ID:

php examples/serve-api/renderId.php 8b844085-779c-4c3a-b52f-d79deca2a960


Find an asset by asset ID:

php examples/serve-api/assetId.php 3f446298-779c-8c8c-f253-900c1627b776


Documentation and reference guides for the Shotstack video editing API


Shotstack PHP demos - Edit videos in the cloud with PHP and the Shotstack Video Editing API







No releases published


No packages published