Video Canvas (Beta)
Last updated: Jul-23-2026
Video Canvas is a visual, node-based editor for building video transformation pipelines in the Console. Instead of writing a transformation URL by hand, you drag blocks onto a canvas, connect them into a flow that goes from an input, through one or more transformation steps, to an output, and preview the result live as you work.
When you're happy with a flow, you save it as an applet: a reusable, named pipeline backed by a named transformation. Anything that can reference a named transformation, such as a delivery URL or an SDK call, can then use your applet.
How Video Canvas works
Video Canvas has three core concepts:
- Canvas: The workspace where you compose a pipeline. It's a directed flow of blocks connected by wires that carry media (and, for advanced flows, values) from one block to the next.
- Block: A single step in the pipeline. An input block seeds the flow with a video, action blocks transform it (resize, trim, add effects, adjust encoding, and more), and an output block determines what's delivered.
- Applet: A canvas saved as a reusable pipeline with a defined interface: the inputs a caller provides and the output they get back. A named transformation backs each saved applet, so you can apply it anywhere you use named transformations.
Because an applet is based on a named transformation, delivering through it uses the familiar t_<name> syntax. For example, once you save an applet that produces a square, watermarked clip, you can add its transformation to a URL and reuse it across as many assets as you like.
Opening Video Canvas
Video Canvas is available from the Video section of the Console, listed as Video Canvas (Beta).
From the Video Applets landing page, you can start from a preset or blank canvas, open a saved applet, or import an exported applet.
Building a transformation
To build a transformation, open a blank canvas and assemble a flow from left to right:
- Add an input block. From the block palette, add a Video input block and set its Public ID to the video you want to transform. Enter a public ID or click Browse to select an asset from your product environment.
- Add action blocks. Add one or more transformation blocks (for example, Resize, then Format) and configure each block's settings.
- Add an output block. Add a Video output block to complete the flow.
- Connect the blocks. Draw wires from each block's output port to the next block's input port so the media flows input to output. A valid derived flow is a single chain from a video input to one output.
As you build, Video Canvas continuously compiles the flow into a Cloudinary delivery URL and shows validation hints (for example, if the flow is missing an output block).
The block palette
Open the palette from the canvas toolbar to browse the available blocks, grouped by purpose. You can also search across block names and their settings.
- Inputs: Video input, Text input. (Image input is coming soon.)
- Optimization & Normalization: Resize, Pad, Crop, Smart crop, Rotate, Format, Quality, DPR, Color space, HDR, Trim, Video summarization, Audio volume, Video codec, Audio codec, Bitrate, FPS, Audio frequency, and keyframe interval.
- Effects & Enhancements: Color adjustments, Blur effect, Visual noise effect, Vignette effect, Deshake, Fade in, Fade out, Loop, Accelerate, Boomerang effect, Reverse effect, Border, Round corners, Make transparent, Progress bar, and Text overlay.
- Tools: Metadata variable, Calculator, If / Else, End If, Custom transformation, and Preview.
- Outputs: Video output. (Image output is coming soon.)
e_sepia) and adds it to the flow as-is.The Tools blocks add dynamic behavior to a flow: Metadata variable and Calculator produce values from an asset's characteristics (such as duration or width), and If / Else with End If branch the pipeline on a condition. These build on Cloudinary's user-defined variables and arithmetic transformations and conditional transformations.
Previewing your flow
Add a Preview block anywhere in the chain to inspect the media at that point, or use the Video output block's preview to see the final result. The preview plays the compiled delivery so you can confirm the transformation before saving.
Saving an applet
When your flow is ready, save it as an applet. Saving creates a named transformation from the flow (with an automatically generated name that begins with vc_), so the applet is immediately usable in delivery URLs and SDKs.
A few things to know about saving:
- A complete flow runs from an input block, through your transform blocks, to a single output block. While a flow is incomplete, the canvas shows an advisory hint (for example, Graph must have exactly one input block).
- You can rename an applet from the editable title at the top of the editor. This changes the display name only; the named transformation keeps its original
vc_name, so existing delivery URLs and SDK calls keep working. - The canvas is the source of truth: edit the flow and save again to update the applet.
Defining your applet's interface
Switch to the Applet view to define the interface your applet exposes to callers. This is where a canvas becomes a reusable, parameterized pipeline:
- Description: A short summary of what the applet does.
- Parameters: The inputs a caller provides, derived from the input blocks in your flow. Each parameter has a kind (its value type: video, image, or text). You must set the base video, which is the asset the transformation applies to. All other inputs are optional; if the caller doesn't provide a value, the applet uses the default value set in the canvas.
- Result: The output the applet returns, taken from its output block.
Use Try it out to fill the parameters with real values and run the applet to preview its output. Enter a public ID or click Browse to select one, then click Run: Video Canvas plays the result and returns its delivery URL. Running requires a saved applet with at least one input and an output block.
Managing and reusing applets
From the landing page, the Applets list shows every applet saved in your product environment. You can search applets by name and description, reopen one to keep editing, and start new applets from templates. The same browser is available inside the editor from the menu in the top-left corner.
From the applets browser you can also export an applet to a JSON file (the download icon on each row), delete an applet (the trash icon), and import a previously exported .json applet (the import icon at the top of the panel). Deleting an applet removes only the applet itself; the named transformation it created stays in place, so any delivery URLs or SDK calls that already reference it keep working. To stop delivering the transformation, remove the named transformation separately (see Named transformations).
Within an open applet, use Save as to save the current flow as a new, separately named applet (you're prompted for the name).
Delivering with an applet
Because a named transformation backs each saved applet, you deliver through it the same way you'd use any named transformation, by adding the applet's transformation to a delivery URL. A basic delivery URL has this structure:
For example, this applet, saved for the Cloudinary demo product environment, crops the source video to a square, keeping the main subject in view:
Where an applet takes a caller-supplied input, that value appears in the URL. This applet overlays a line of text (here, Cloudinary), passed as a user-defined variable ($inputText_!...!) that the applet's transformation references:
The Applet view's API & SDK panel gives you ready-to-use integration options, with tabs for the delivery URL, server SDKs (Node, Python), the Cloudinary Video Player, and an Embed snippet, so you can copy the exact form you need for your code.
For more on how named transformations work in delivery URLs, see Named transformations.
Managing applets via the API
In addition to building applets in the Console, you can use the Video Canvas API to list, create, retrieve, replace, and delete applets programmatically. When you create or replace an applet, Cloudinary compiles its inputs, blocks, connections, and outputs into a named transformation.
The API uses Basic Authentication with your Cloudinary API Key and API Secret, and its base URL is https://api.cloudinary.com/v2/video/{cloudName}.
For the full list of endpoints, request and response payloads, and interactive examples, see the Video Canvas API reference.



