Vualto

Table of Contents

Vualto provides Adobe Pimetime DRM, Microsoft PlayReady and Widevine Modular DRM to support delivery to PC/MAC, iOS, Android, XBOX, Windows 8 and SmartTV.

There are the following possibilities:

Format DRM Description
Smooth PlayReady PlayReady using the Vualto license server
HDS Adobe Primetime DRM Access using the Vualto license server
DASH Widevine, PlayReady PlayReady or Widevine using the Vualto license server

The following sections describe howto use the DRM API.

DRM API

The following script shows how to use the Vualto's DRM API in order to get key id and content key.

The script can be used to fetch keys to encrypt files or create server manifests, both for VOD or Live.

#!/bin/bash

client=YOUR_VUALTO_CLIENT_ID
secret=YOUR_VUALTO_SHARED_SECRET

contentid=`uuidgen`

ekey=`curl -v \
  -H content-type:charset=utf-8 \
  -H accept:application/json \
  "http://keyprovider.drm.technology:9293/playready/$client/$contentid"`

key=`ruby -r "./encryption.rb" -e "Encryption.new(\"$client\", \"$secret\").decrypt \"$ekey\""`

kid16=`echo $key | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["key_id_hex"]'`
cek16=`echo $key | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["content_key_hex"]'`
la=`echo $key | python -c 'import json,sys;obj=json.load(sys.stdin);print obj["laurl"]'`

mp4split -o $1 --iss.key=${kid16}:${cek16} --iss.license_server_url=${la} $2

token=`ruby -r "./token_gen.rb" -e "TokenGen.new(\"$client\", \"$secret\").make_token"`
echo $token

The client id and shared secret needed to decrypt the response from the license server are linked to your Vualto account.

The content id is an arbitrary unique string generated here as a UUID. The token printed at the end of the script needs to be presented to the Vualto license server.

The encryption script can be downloaded as vualto/encryption.rb and the token generator can be downloaded as vualto/token_gen.rb.