Skip to content

MP4 downloads

Besides HLS streaming, a video is also available as a progressive MP4 file, useful as a download link for viewers or as a plain <video src="…"> source where HLS is inconvenient.

Request the video with its presets (renditions) embedded:

GET /api/v1/project/<project_id>/video/<video_id>?include=presets

The best video rendition carries the static_mp4_link field (it is null on the other presets, and until the rendition is ready). Each alternate audio track likewise exposes the link on its own best preset. See the video API ⧉ for the full response shape.

static_mp4_link is a signed URL. How long it stays valid depends on the video's visibility:

Visibility The link works for
Public about 30 days
Private 24 hours

A public video's link is long-lived because it is meant to be published: put it behind a download button, and the CDN serves and caches the file for anyone who follows it, with no token of your own to manage. Read the field again before the month is out, or whenever you rebuild the page, and never build the path by hand: you cannot compute the signature yourself.

For private videos you can also build the URL yourself with a JWT token instead of reading this field; see Secure video playback.

Revoking a link

Making a public video private shortens the expiry of links minted from that point on. It does not cut off a link already handed out: a signed URL cannot be recalled, so it keeps working until it expires. Changing the video's password does not affect MP4 links either. Delete the video if you need its downloads to stop immediately, and note that an already-cached file can still be served by the CDN for a short propagation delay after that.

Changed in July 2026

A public video's static_mp4_link used to be a permanent URL that never expired. It is now a signed link with the 30-day window above. If you stored one in your own database or pasted one into a page, re-read the field to get a fresh link.

Downloading the original upload

The original uploaded file (not a rendition) is available at the video's asset.original_link (a signed, expiring URL), from the dashboard's video edit page, or via the signed original-download URL; see Secure video playback.

Warning

The project's keep_originals setting must be true (the default) for original downloads to work. With it disabled, originals are deleted after encoding and asset.original_link becomes null. The setting cannot be re-enabled once disabled.