Time-to-live for OTP Validity
By default the OTP validity is set to 6 hours. You can create shorter lived URLs by passing ttl
parameter. This value is to be set in seconds.
The ttl value is relevant when there is a time-gap between the website backend requesting the OTP, and the video player loading on client-side. Such a scenario is relevant for users watching videos on very slow connections. We recommend a minimum ttl of 5 minutes. It is unrealistic for any user to be waiting for more than 5 minutes for video player load. Please note that a new OTP is generated when a page is refreshed.
By setting a very long ttl (30 years) you can create a static video URL, that you may use as part of your home page and for non-premium content.
This code below sets the ttl to 5 minutes.
{ "ttl": 300}
#
Get OTP Sample CodeThe sample videoID is 1234567890
and the API Secret Key is a1b2c3d4e5
. The time-to-live for OTP validity is set to 300s in the sample code.
The sample code only passes the OTP time-to-live as parameter.
- CURL
- NODE
- PHP
- C#
- Python
- Ruby
curl -X POST \ https://dev.vdocipher.com/api/videos/1234567890/otp \ -H 'Accept: application/json' \ -H 'Authorization: Apisecret a1b2c3d4e5' \ -H 'Content-Type: application/json' \ -d '{ "ttl":300}'
var request = require("request");
var options = { method: "POST", url: "https://dev.vdocipher.com/api/videos/1234567890/otp", headers: { Accept: "application/json", "Content-Type": "application/json", Authorization: "Apisecret a1b2c3d4e5", }, body: { ttl: 300 }, json: true,};
request(options, function (error, response, body) { if (error) throw new Error(error);
console.log(body);});
$curl = curl_init();
curl_setopt_array($curl, array( CURLOPT_URL => "https://dev.vdocipher.com/api/videos/1234567890/otp", 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([ "ttl" => 300, ]), CURLOPT_HTTPHEADER => array( "Accept: application/json", "Authorization: Apisecret a1b2c3d4e5", "Content-Type: application/json" ),));
$response = curl_exec($curl);$err = curl_error($curl);
curl_close($curl);
if ($err) { echo "cURL Error #:" . $err;} else { echo $response;}
var client = new RestClient("https://dev.vdocipher.com/api/videos/1234567890/otp");var request = new RestRequest(Method.POST);request.AddHeader("Accept", "application/json");request.AddHeader("Content-Type", "application/json");request.AddHeader("Authorization", "Apisecret a1b2c3d4e5");request.AddParameter("undefined", "{\n\t\"ttl\":300\n}", ParameterType.RequestBody);IRestResponse response = client.Execute(request);
import requestsimport json
url = "https://dev.vdocipher.com/api/videos/1234567890/otp"
payload = json.dumps({'ttl': 300})headers = { 'Authorization': "Apisecret a1b2c3d4e5", 'Content-Type': "application/json", 'Accept': "application/json" }
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
require 'uri'require 'json'require 'net/http'
url = URI("https://dev.vdocipher.com/api/videos/1234567890/otp")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)request["Authorization"] = 'Apisecret a1b2c3d4e5'request["Content-Type"] = 'application/json'request["Accept"] = 'application/json'request.body = ({:ttl => 300}).to_json
response = http.request(request)puts response.read_body