Get started with the VIDIO API

Use the VIDIO API to upload raw footage, generate highlight reels, and render final videos programmatically.

API access is currently available for Studio plan and above.

Overview

The VIDIO API allows you to automatically turn raw video into highlight reels. The workflow is simple: upload → generate → render.

Set your API key

Generate your API key in the developers page and store it securely as an environment variable.

$ VIDIO_API_KEY=<your_vidio_api_key_here>

Install FFmpeg

For media uploads, install FFmpeg to enable automatic media detection.

$ brew install ffmpeg

Install the Python SDK

The VIDIO API currently supports Python. Install the official SDK and dotenv to get started.

$ pip install vidio-ai
$ pip install python-dotenv

Create your first highlight reel

For API uses other than highlight reel creation, please request access here.

Upload a video, create a highlight reel job, wait for processing, and render the final output.

from vidio import VidioClient import os from dotenv import load_dotenv load_dotenv() client = VidioClient(api_key=os.getenv("VIDIO_API_KEY")) # 1. Upload inputs u1 = client.upload("clip1.mp4") u2 = client.upload("clip2.mp4") u3 = client.upload("cover.jpg") # 2. Create highlight reel job = client.create_highlight_reel( input_keys=[u1.input_key, u2.input_key, u3.input_key], video_category="ball-sports", output_length=30, aspect_ratio="portrait" ) # 3. Wait for processing job = client.wait_for_job(job.job_id) # 4. Render output job = client.render(job.job_id) job = client.wait_for_render(job.job_id) print(job.output_url)

Stitch videos together

Use cut_method="no-cut" when you want to stitch clips together without AI trimming. In this mode, output_length is optional.

Upload your clips, create a highlight reel job with cut_method="no-cut" to preserve each clip as-is, then render the stitched output.

from vidio import VidioClient import os from dotenv import load_dotenv load_dotenv() client = VidioClient(api_key=os.getenv("VIDIO_API_KEY")) # 1. Upload inputs u1 = client.upload("clip1.mp4") u2 = client.upload("clip2.mp4") u3 = client.upload("cover.jpg") # 2. Stitch videos together job = client.create_highlight_reel( input_keys=[u1.input_key, u2.input_key, u3.input_key], aspect_ratio="landscape", cut_method="no-cut" ) # 3. Wait for processing job = client.wait_for_job(job.job_id) # 4. Render output job = client.render(job.job_id) job = client.wait_for_render(job.job_id) print(job.output_url)