curl --request POST \
--url https://api.vidbeo.com/v2/videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Example",
"input": "vidbeo://uploads/abcde12345abcdee12345a",
"description": "Example description",
"privacy": "private",
"password": "Example123",
"spherical": false,
"projection": "equirectangular",
"language": "en-US",
"tags": [
"example"
]
}
'import requests
url = "https://api.vidbeo.com/v2/videos"
payload = {
"name": "Example",
"input": "vidbeo://uploads/abcde12345abcdee12345a",
"description": "Example description",
"privacy": "private",
"password": "Example123",
"spherical": False,
"projection": "equirectangular",
"language": "en-US",
"tags": ["example"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Example',
input: 'vidbeo://uploads/abcde12345abcdee12345a',
description: 'Example description',
privacy: 'private',
password: 'Example123',
spherical: false,
projection: 'equirectangular',
language: 'en-US',
tags: ['example']
})
};
fetch('https://api.vidbeo.com/v2/videos', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vidbeo.com/v2/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Example',
'input' => 'vidbeo://uploads/abcde12345abcdee12345a',
'description' => 'Example description',
'privacy' => 'private',
'password' => 'Example123',
'spherical' => false,
'projection' => 'equirectangular',
'language' => 'en-US',
'tags' => [
'example'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vidbeo.com/v2/videos"
payload := strings.NewReader("{\n \"name\": \"Example\",\n \"input\": \"vidbeo://uploads/abcde12345abcdee12345a\",\n \"description\": \"Example description\",\n \"privacy\": \"private\",\n \"password\": \"Example123\",\n \"spherical\": false,\n \"projection\": \"equirectangular\",\n \"language\": \"en-US\",\n \"tags\": [\n \"example\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vidbeo.com/v2/videos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Example\",\n \"input\": \"vidbeo://uploads/abcde12345abcdee12345a\",\n \"description\": \"Example description\",\n \"privacy\": \"private\",\n \"password\": \"Example123\",\n \"spherical\": false,\n \"projection\": \"equirectangular\",\n \"language\": \"en-US\",\n \"tags\": [\n \"example\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vidbeo.com/v2/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Example\",\n \"input\": \"vidbeo://uploads/abcde12345abcdee12345a\",\n \"description\": \"Example description\",\n \"privacy\": \"private\",\n \"password\": \"Example123\",\n \"spherical\": false,\n \"projection\": \"equirectangular\",\n \"language\": \"en-US\",\n \"tags\": [\n \"example\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"id": "abcde12345abcde12345a",
"type": "vod",
"name": "Example",
"description": "Example description",
"outputs": [
{
"label": "hls",
"url": "https://example.com/path/to/file.m3u8"
}
],
"thumbnail": "https://example.com/path/to/file.jpg",
"sprite": "https://example.com/path/to/file.jpg",
"duration": 30,
"privacy": "private",
"tracks": [
{
"id": "abcde12345abcde12345a",
"language": "en-US",
"label": "English",
"kind": "subtitles",
"url": "<string>"
}
],
"categories": [
"example"
],
"enabled": true,
"transcoder": "abcde12345abcde12345a",
"content_rating": "all",
"spherical": false,
"projection": "equirectangular",
"language": "en-US",
"cards": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"show_at": "00:00:05",
"hide_at": "00:00:05",
"skip": false,
"top_text": "Example text",
"bottom_text": "Example text",
"link": "https://example.com"
}
],
"gates": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"show_at": "00:00:05",
"skip": false,
"top_text": "Example text",
"bottom_text": "Example text",
"fields": [
{
"label": "Email",
"value": "email"
}
],
"connect_service_id": "abcde12345abcde12345a",
"connect_list_id": "abcde"
}
],
"hotspots": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"show_at": "00:00:05",
"hide_at": "00:00:05",
"x": 25,
"y": 25,
"action": "link",
"link": "https://example.com",
"target": "_parent",
"opacity": "translucent"
}
],
"chapters": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"start": "00:00:05"
}
],
"page_url": "https://example.com/page",
"progress": 100,
"status": "ready",
"tags": [
"example"
],
"scheduled_time": "2024-01-01T00:00:00.000Z",
"clip": false,
"clip_from": "abcde12345abcde12345a",
"clip_start": "00:00:30",
"clip_end": "00:01:30",
"created_by": "abcde12345abcde12345a",
"created_time": "2024-01-01T00:00:00.000Z",
"updated_by": "abcde12345abcde12345a",
"updated_time": "2024-01-01T00:00:00.000Z"
},
"links": {},
"errors": []
}{
"success": false,
"result": {},
"links": {},
"errors": [
{
"message": "Invalid data sent"
}
]
}Create video
Create a new video
curl --request POST \
--url https://api.vidbeo.com/v2/videos \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Example",
"input": "vidbeo://uploads/abcde12345abcdee12345a",
"description": "Example description",
"privacy": "private",
"password": "Example123",
"spherical": false,
"projection": "equirectangular",
"language": "en-US",
"tags": [
"example"
]
}
'import requests
url = "https://api.vidbeo.com/v2/videos"
payload = {
"name": "Example",
"input": "vidbeo://uploads/abcde12345abcdee12345a",
"description": "Example description",
"privacy": "private",
"password": "Example123",
"spherical": False,
"projection": "equirectangular",
"language": "en-US",
"tags": ["example"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Example',
input: 'vidbeo://uploads/abcde12345abcdee12345a',
description: 'Example description',
privacy: 'private',
password: 'Example123',
spherical: false,
projection: 'equirectangular',
language: 'en-US',
tags: ['example']
})
};
fetch('https://api.vidbeo.com/v2/videos', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.vidbeo.com/v2/videos",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Example',
'input' => 'vidbeo://uploads/abcde12345abcdee12345a',
'description' => 'Example description',
'privacy' => 'private',
'password' => 'Example123',
'spherical' => false,
'projection' => 'equirectangular',
'language' => 'en-US',
'tags' => [
'example'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.vidbeo.com/v2/videos"
payload := strings.NewReader("{\n \"name\": \"Example\",\n \"input\": \"vidbeo://uploads/abcde12345abcdee12345a\",\n \"description\": \"Example description\",\n \"privacy\": \"private\",\n \"password\": \"Example123\",\n \"spherical\": false,\n \"projection\": \"equirectangular\",\n \"language\": \"en-US\",\n \"tags\": [\n \"example\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.vidbeo.com/v2/videos")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Example\",\n \"input\": \"vidbeo://uploads/abcde12345abcdee12345a\",\n \"description\": \"Example description\",\n \"privacy\": \"private\",\n \"password\": \"Example123\",\n \"spherical\": false,\n \"projection\": \"equirectangular\",\n \"language\": \"en-US\",\n \"tags\": [\n \"example\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vidbeo.com/v2/videos")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Example\",\n \"input\": \"vidbeo://uploads/abcde12345abcdee12345a\",\n \"description\": \"Example description\",\n \"privacy\": \"private\",\n \"password\": \"Example123\",\n \"spherical\": false,\n \"projection\": \"equirectangular\",\n \"language\": \"en-US\",\n \"tags\": [\n \"example\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"result": {
"id": "abcde12345abcde12345a",
"type": "vod",
"name": "Example",
"description": "Example description",
"outputs": [
{
"label": "hls",
"url": "https://example.com/path/to/file.m3u8"
}
],
"thumbnail": "https://example.com/path/to/file.jpg",
"sprite": "https://example.com/path/to/file.jpg",
"duration": 30,
"privacy": "private",
"tracks": [
{
"id": "abcde12345abcde12345a",
"language": "en-US",
"label": "English",
"kind": "subtitles",
"url": "<string>"
}
],
"categories": [
"example"
],
"enabled": true,
"transcoder": "abcde12345abcde12345a",
"content_rating": "all",
"spherical": false,
"projection": "equirectangular",
"language": "en-US",
"cards": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"show_at": "00:00:05",
"hide_at": "00:00:05",
"skip": false,
"top_text": "Example text",
"bottom_text": "Example text",
"link": "https://example.com"
}
],
"gates": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"show_at": "00:00:05",
"skip": false,
"top_text": "Example text",
"bottom_text": "Example text",
"fields": [
{
"label": "Email",
"value": "email"
}
],
"connect_service_id": "abcde12345abcde12345a",
"connect_list_id": "abcde"
}
],
"hotspots": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"show_at": "00:00:05",
"hide_at": "00:00:05",
"x": 25,
"y": 25,
"action": "link",
"link": "https://example.com",
"target": "_parent",
"opacity": "translucent"
}
],
"chapters": [
{
"id": "abcde12345abcde12345a",
"name": "Example",
"start": "00:00:05"
}
],
"page_url": "https://example.com/page",
"progress": 100,
"status": "ready",
"tags": [
"example"
],
"scheduled_time": "2024-01-01T00:00:00.000Z",
"clip": false,
"clip_from": "abcde12345abcde12345a",
"clip_start": "00:00:30",
"clip_end": "00:01:30",
"created_by": "abcde12345abcde12345a",
"created_time": "2024-01-01T00:00:00.000Z",
"updated_by": "abcde12345abcde12345a",
"updated_time": "2024-01-01T00:00:00.000Z"
},
"links": {},
"errors": []
}{
"success": false,
"result": {},
"links": {},
"errors": [
{
"message": "Invalid data sent"
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The title of the video
1 - 100"Example"
Either a full URL we can fetch the video file from, or a reference to a previously completed upload
"vidbeo://uploads/abcde12345abcdee12345a"
A short description for the video
200"Example description"
If authenticated, the viewer will need to provide either a cookie or JWT when requesting a landing page, embed code or HLS manifest URL
public, private, password, authenticated "private"
If you set the value of privacy as password you will need to send that password. This value should be at least 8 characters. It should contain at least one letter and at least one number
8 - 20"Example123"
Is the video in 360?
false
For 360 videos we currently support equirectangular
equirectangular "equirectangular"
The audio language
de-DE, en-AU, en-GB, en-US, es-ES, fr-FR, it-IT "en-US"
An array of up to ten tags
10["example"]