Skip to content

DocsGet started

Playground

Build a request in the dashboard, see the command it compiles to and what it may cost, then run it on your account and get the outputs.

The playground is in the dashboard under Playground. It builds the same requests your code sends, shows what they compile to, and runs them as real jobs on your account, so you can try an operation, a preset or a command before you write any code.

Describe the job#

Pick how to describe it:

  • Operation: one input and one output through a per-operation endpoint (/v1/transcode, /v1/thumbnails, /v1/storyboard, /v1/gif, /v1/audio, /v1/concat, /v1/slideshow, /v1/scenes).
  • Preset: a named set of options (web-720p, poster, ...), with your own fields over it.
  • Several outputs: named inputs and outputs in one POST /v1/jobs, each with a type or a preset.
  • Raw ffmpeg: a command with its input_files and output_files maps.

The form shows the available options, defaults and valid ranges of each output type. Fields you leave empty show the value the job will use in grey: the preset's value or the default.

Inputs#

Each input is one of:

  • a file you upload from the browser (up to 100 MB and your plan's input limit), kept for 24 hours; the playground shows its SHA-256 once it arrives;
  • an http or https URL;
  • one of your uploads from the last 24 hours.

Uploads use the same one-time upload links as Files. Larger files are given by URL.

Before you run#

While you edit, the playground compiles the request on the server and shows it in five forms, each with Copy:

  • JSON: the body, exactly as it is sent.
  • curl and JavaScript: the same request with your key read from $VIDEXO_API_KEY. The playground never shows or sends an API key.
  • Command body: the compiled command, input_files and output_files.
  • ffmpeg: a command line for a local ffmpeg; an upload appears as ./<input name>.upload.

Validation errors identify the fields or command options to change: an invalid field is marked with its message, from the errors of the problem details, and an invalid command lists its problems, as command_invalid does. Every refusal shows its code, its reason when it has one, and the request id to quote to support.

It also estimates the credits with the function that prices a real job: an image costs its rate, and video, audio and GIF outputs cost by their length, quality and codec, using the sizes and ffmpeg times of the pricing calculator. A frame rate it cannot read counts as 30 fps or less. When the playground cannot know a number (the length or size of a URL, a storyboard or a scene list), it says "not estimated". It always shows what the job holds when it starts, which can grow while it runs (Billing). The job's usage after it ends is what is billed.

Compiling, uploading and running count against a rate limit of your plan's size, as they would for one more API key of your account.

Run#

Run job creates a real job on your account: it uses your credits (the free ones too) and follows the same validation, plan limits, rate limit and idempotency as a request with an API key. The playground then shows its state every 2 seconds, the error's code, reason and message and the command that ran if it fails, and each output with a preview (video, audio or image) and a download. Both make a fresh link valid for up to one hour.

Jobs from the playground carry metadata.playground and appear on the jobs page with your other jobs; the playground lists your latest ten.