api.video
  1. Videos
api.video
  • Account
    • Show account
      GET
  • Analytics
    • List live stream player sessions
      GET
    • List player session events
      GET
    • List video player sessions
      GET
  • Authentication
    • Authenticate
      POST
    • Refresh token
      POST
  • Live
    • List all live streams
      GET
    • Create live stream
      POST
    • Delete a live stream
      DELETE
    • Show live stream
      GET
    • Update a live stream
      PATCH
    • Delete a thumbnail
      DELETE
    • Upload a thumbnail
      POST
  • Players
    • List all players
      GET
    • Create a player
      POST
    • Delete a player
      DELETE
    • Show a player
      GET
    • Update a player
      PATCH
    • Delete logo
      DELETE
    • Upload a logo
      POST
  • Videos - Delegated upload
    • Upload with an upload token
    • List all active upload tokens.
    • Generate an upload token
    • Delete an upload token
    • Show upload token
  • Videos
    • List all videos
      GET
    • Create a video
      POST
    • Delete a video
      DELETE
    • Show a video
      GET
    • Update a video
      PATCH
    • Upload a video
      POST
    • Show video status
      GET
    • Pick a thumbnail
      PATCH
    • Upload a thumbnail
      POST
  • Captions
    • List video captions
    • Delete a caption
    • Show a caption
    • Update caption
    • Upload a caption
  • Chapters
    • List video chapters
    • Delete a chapter
    • Show a chapter
    • Upload a chapter
  • Webhooks
    • List all webhooks
    • Create Webhook
    • Delete a Webhook
    • Show Webhook details
  1. Videos

Upload a video

POST
/videos/{videoId}/source
Videos
To upload a video to the videoId you created. Replace {videoId} with the id you'd like to use, {access_token} with your token, and /path/to/video.mp4 with the path to the video you'd like to upload. You can only upload your video to the videoId once.
Tutorials using video upload.
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://ws.api.video/videos/vi4k0jvEUuaTdRAEjQ4Jfrgz/source' \
--form 'file=@"@/path/to/video.mp4"'
Response Response Example
201 - response
{
  "assets": {
    "hls": "https://cdn.api.video/stream/831a9bd9-9f50-464c-a369-8e9d914371ae/hls/manifest.m3u8",
    "iframe": "<iframe src=\"//embed.api.video/vi4k0jvEUuaTdRAEjQ4Jfrgz?token=831a9bd9-9f50-464c-a369-8e9d914371ae\" width=\"100%\" height=\"100%\" frameborder=\"0\" scrolling=\"no\" allowfullscreen=\"\"></iframe>",
    "mp4": "https://cdn.api.video/vod/vi4k0jvEUuaTdRAEjQ4Jfrgz/token/8fd70443-d9f0-45d2-b01c-12c8cfc707c9/mp4/720/source.mp4",
    "player": "https://embed.api.video/vi4k0jvEUuaTdRAEjQ4Jfrgz?token=831a9bd9-9f50-464c-a369-8e9d914371ae",
    "thumbnail": "https://cdn.api.video/stream/831a9bd9-9f50-464c-a369-8e9d914371ae/thumbnail.jpg"
  },
  "description": "An amazing video explaining the string theory.",
  "metadata": [
    {
      "key": "Author",
      "value": "John Doe"
    },
    {
      "key": "Format",
      "value": "Tutorial"
    }
  ],
  "mp4Support": true,
  "panoramic": false,
  "playerId": "pl45KFKdlddgk654dspkze",
  "public": false,
  "publishedAt": "4665-07-14T23:36:18.598Z",
  "source": {
    "uri": "/videos/vi4k0jvEUuaTdRAEjQ4Jfrgz/source"
  },
  "tags": [
    "maths",
    "string theory",
    "video"
  ],
  "title": "Maths video",
  "videoId": "vi4k0jvEUuaTdRAEjQ4Jfrgz"
}

Request

Path Params
videoId
string 
required
Enter the videoId you want to use to upload your video.
Example:
vi4k0jvEUuaTdRAEjQ4Jfrgz
Header Params
Content-Range
string 
optional
Content-Range represents the range of bytes that will be returned as a result of the request. Byte ranges are inclusive, meaning that bytes 0-999 represents the first 1000 bytes in a file or object.
Example:
Content-Range: bytes 200-100/5000
Body Params multipart/form-data
file
file 
required
The path to the video you would like to upload. The path must be local. If you want to use a video from an online source, you must use the "/videos" endpoint and add the "source" parameter when you create a new video.
Example:
@/path/to/video.mp4

Responses

🟢201Created
application/json
Body
assets
object (videoAssets) 
optional
Collection of details about the video object that you can use to work with the video object.
hls
string <uri>
optional
This is the manifest URL. For HTTP Live Streaming (HLS), when a HLS video stream is initiated, the first file to download is the manifest. This file has the extension M3U8, and provides the video player with information about the various bitrates available for streaming.
iframe
string 
optional
Code to use video from a third party website
Example:
<iframe src="//embed.api.video/c188ed58-3403-46a2-b91b-44603d10b2c9?token=831a9bd9-9f50-464c-a369-8e9d914371ae" width="100%" height="100%" frameborder="0" scrolling="no" allowfullscreen=""></iframe>
mp4
string <uri>
optional
Available only if mp4Support is enabled. Raw mp4 url.
Example:
https://cdn.api.video/vod/vi4k0jvEUuaTdRAEjQ4Jfrgz/token/8fd70443-d9f0-45d2-b01c-12c8cfc707c9/mp4/720/source.mp4
player
string <uri>
optional
Raw url of the player.
Example:
https://embed.api.video/1b9d6ae8-8f57-4b6d-8552-d636926b4f5f?token=831a9bd9-9f50-464c-a369-8e9d914371ae
thumbnail
string <uri>
optional
Poster of the video.
Example:
https://cdn.api.video/stream/831a9bd9-9f50-464c-a369-8e9d914371ae/thumbnail.jpg
description
string 
optional
A description for the video content.
Example:
An amazing video explaining string theory.
metadata
array[object (metadata) {2}] 
optional
Metadata you can use to categorise and filter videos. Metadata is a list of dictionaries, where each dictionary represents a key value pair for categorising a video. Dynamic Metadata allows you to define a key that allows any value pair.
Example:
[{"key":"Author", "value":"John Doe"}, {"key":"Format", "value":"Tutorial"}]
key
string 
optional
The constant that defines the data set.
Example:
Color
value
string 
optional
A variable which belongs to the data set.
Example:
Green
mp4Support
boolean 
optional
This lets you know whether mp4 is supported. If enabled, an mp4 URL will be provided in the response for the video.
Example:
true
panoramic
boolean 
optional
Defines if video is panoramic.
Example:
false
playerId
string 
optional
The id of the player that will be applied on the video.
Example:
pl45KFKdlddgk654dspkze
public
boolean 
optional
Defines if the content is publicly reachable or if a unique token is needed for each play session. Default is true. Tutorials on private videos.
Example:
false
publishedAt
string 
optional
The date and time the API created the video. Date and time are provided using ISO-8601 UTC format.
Example:
2019-12-16T08:25:51.000Z
source
object (videoSource) 
optional
Source information about the video.
liveStream
object (video_source_live_stream) 
optional
This appears if the video is from a Live Record.
type
string 
optional
uri
string 
optional
The URL where the video is stored.
Example:
/videos/vi4k0jvEUuaTdRAEjQ4Prklg/source
tags
array
optional
One array of tags (each tag is a string) in order to categorize a video. Tags may include spaces.
Example:
"tags": ["maths", "string theory", "video"]
title
string 
optional
The title of the video content.
Example:
Maths video
updatedAt
string <date-time>
optional
The date and time the video was updated. Date and time are provided using ISO-8601 UTC format.
Example:
2019-12-16T08:15:51.000Z
videoId
string 
optional
The unique identifier of the video object.
Example:
vi4k0jvEUuaTdRAEjQ4Prklg
🟠400Bad Request
🟠404Not Found
Modified at 2023-08-15 05:52:15
Previous
Update a video
Next
Show video status
Built with