/** * @covers WindowsAzure\MediaServices\Models\AssetDeliveryPolicyConfigurationKey::strignifyAssetDeliveryPolicyConfiguartionKey * @covers WindowsAzure\MediaServices\Models\AssetDeliveryPolicyConfigurationKey::parseAssetDeliveryPolicyConfiguartionKey */ public function testStrignifyParseDeliveryPolicyConfiguartionKey() { // Setup $configuration = [AssetDeliveryPolicyConfigurationKey::ENVELOPE_KEY_ACQUISITION_URL => 'http://testurl/path', AssetDeliveryPolicyConfigurationKey::ENVELOPE_ENCRYPTION_IV_AS_BASE64 => 'base64=']; // Test $json = AssetDeliveryPolicyConfigurationKey::stringifyAssetDeliveryPolicyConfiguartionKey($configuration); $result = AssetDeliveryPolicyConfigurationKey::parseAssetDeliveryPolicyConfiguartionKey($json); // Assert $this->assertEquals($configuration, $result); }
function createAssetDeliveryPolicy($restProxy, $encodedAsset, $contentKey, $fairPlayIV) { // 5.1 Get the acquisition URL $acquisitionUrl = $restProxy->getKeyDeliveryUrl($contentKey, ContentKeyDeliveryType::FAIRPLAY); $acquisitionUrl = str_replace_first("https", "skd", $acquisitionUrl); // remove query string if (strpos($acquisitionUrl, '?') !== false) { $acquisitionUrl = substr($acquisitionUrl, 0, strrpos($acquisitionUrl, "?")); } // 5.2 Generate the AssetDeliveryPolicy Configuration Key $configuration = [AssetDeliveryPolicyConfigurationKey::FAIRPLAY_BASE_LICENSE_ACQUISITION_URL => $acquisitionUrl, AssetDeliveryPolicyConfigurationKey::COMMON_ENCRYPTION_IV_FOR_CBCS => $fairPlayIV]; $confJson = AssetDeliveryPolicyConfigurationKey::stringifyAssetDeliveryPolicyConfiguartionKey($configuration); // 5.3 Create the AssetDeliveryPolicy $adpolicy = new AssetDeliveryPolicy(); $adpolicy->setName('Asset Delivery Policy'); $adpolicy->setAssetDeliveryProtocol(AssetDeliveryProtocol::HLS); $adpolicy->setAssetDeliveryPolicyType(AssetDeliveryPolicyType::DYNAMIC_COMMON_ENCRYPTION_CBCS); $adpolicy->setAssetDeliveryConfiguration($confJson); $adpolicy = $restProxy->createAssetDeliveryPolicy($adpolicy); // 5.4 Link the AssetDeliveryPolicy to the Asset $restProxy->linkDeliveryPolicyToAsset($encodedAsset, $adpolicy->getId()); echo "Added Asset Delivery Policy: name={$adpolicy->getName()} id={$adpolicy->getId()}" . PHP_EOL; }
function createAssetDeliveryPolicy($restProxy, $encodedAsset, $contentKey) { // 5.1 Get the acquisition URL $acquisitionUrl = $restProxy->getKeyDeliveryUrl($contentKey, ContentKeyDeliveryType::BASELINE_HTTP); // 5.2 Generate the AssetDeliveryPolicy Configuration Key $randomKey = Utilities::generateCryptoKey(16); $configuration = [AssetDeliveryPolicyConfigurationKey::ENVELOPE_KEY_ACQUISITION_URL => $acquisitionUrl, AssetDeliveryPolicyConfigurationKey::ENVELOPE_ENCRYPTION_IV_AS_BASE64 => base64_encode($randomKey)]; $confJson = AssetDeliveryPolicyConfigurationKey::stringifyAssetDeliveryPolicyConfiguartionKey($configuration); // 5.3 Create the AssetDeliveryPolicy $adpolicy = new AssetDeliveryPolicy(); $adpolicy->setName('Asset Delivery Policy'); $adpolicy->setAssetDeliveryProtocol(AssetDeliveryProtocol::SMOOTH_STREAMING | AssetDeliveryProtocol::DASH | AssetDeliveryProtocol::HLS); $adpolicy->setAssetDeliveryPolicyType(AssetDeliveryPolicyType::DYNAMIC_ENVELOPE_ENCRYPTION); $adpolicy->setAssetDeliveryConfiguration($confJson); $adpolicy = $restProxy->createAssetDeliveryPolicy($adpolicy); // 5.4 Link the AssetDeliveryPolicy to the Asset $restProxy->linkDeliveryPolicyToAsset($encodedAsset, $adpolicy->getId()); print "Added Asset Delivery Policy: name={$adpolicy->getName()} id={$adpolicy->getId()}\r\n"; }
$ckapolicy = new ContentKeyAuthorizationPolicy(); $ckapolicy->setName('ContentKey Authorization Policy'); $ckapolicy = $restProxy->createContentKeyAuthorizationPolicy($ckapolicy); // 4.4 Link the ContentKeyAuthorizationPolicyOption to the ContentKeyAuthorizationPolicy $restProxy->linkOptionsToContentKeyAuthorizationPolicy($option, $ckapolicy); // 4.5 Associate the ContentKeyAuthorizationPolicy with the ContentKey $contentKey->setAuthorizationPolicyId($ckapolicy->getId()); $restProxy->updateContentKey($contentKey); print "Added Content Key Authorization Policy: name={$ckapolicy->getName()} id={$ckapolicy->getId()}\r\n"; // Phase 5 - Create the AssetDeliveryPolicy // 5.1 Get the acquisition URL $acquisitionUrl = $restProxy->getKeyDeliveryUrl($contentKey, ContentKeyDeliveryType::BASELINE_HTTP); // 5.2 Generate the AssetDeliveryPolicy Configuration Key $randomKey = Utilities::generateCryptoKey(16); $configuration = [AssetDeliveryPolicyConfigurationKey::ENVELOPE_KEY_ACQUISITION_URL => $acquisitionUrl, AssetDeliveryPolicyConfigurationKey::ENVELOPE_ENCRYPTION_IV_AS_BASE64 => base64_encode($randomKey)]; $confJson = AssetDeliveryPolicyConfigurationKey::stringifyAssetDeliveryPolicyConfiguartionKey($configuration); // 5.3 Create the AssetDeliveryPolicy $adpolicy = new AssetDeliveryPolicy(); $adpolicy->setName('Asset Delivery Policy'); $adpolicy->setAssetDeliveryProtocol(AssetDeliveryProtocol::SMOOTH_STREAMING | AssetDeliveryProtocol::DASH | AssetDeliveryProtocol::HLS); $adpolicy->setAssetDeliveryPolicyType(AssetDeliveryPolicyType::DYNAMIC_ENVELOPE_ENCRYPTION); $adpolicy->setAssetDeliveryConfiguration($confJson); $adpolicy = $restProxy->createAssetDeliveryPolicy($adpolicy); // 5.4 Link the AssetDeliveryPolicy to the Asset $restProxy->linkDeliveryPolicyToAsset($encodedAsset, $adpolicy->getId()); print "Added Asset Delivery Policy: name={$adpolicy->getName()} id={$adpolicy->getId()}\r\n"; // Phase 6 - Publish // 6.1 Get the .ISM AssetFile $files = $restProxy->getAssetFileList(); $manifestFile = null; foreach ($files as $file) {
function createAssetDeliveryPolicy($restProxy, $encodedAsset, $contentKey) { // 5.1 Get the acquisition URL $acquisitionUrl = $restProxy->getKeyDeliveryUrl($contentKey, ContentKeyDeliveryType::PLAYREADY_LICENSE); $widevineURl = $restProxy->getKeyDeliveryUrl($contentKey, ContentKeyDeliveryType::WIDEVINE); // 5.2 Generate the AssetDeliveryPolicy Configuration Key $configuration = [AssetDeliveryPolicyConfigurationKey::PLAYREADY_LICENSE_ACQUISITION_URL => $acquisitionUrl, AssetDeliveryPolicyConfigurationKey::WIDEVINE_LICENSE_ACQUISITION_URL => $widevineURl]; $confJson = AssetDeliveryPolicyConfigurationKey::stringifyAssetDeliveryPolicyConfiguartionKey($configuration); // 5.3 Create the AssetDeliveryPolicy $adpolicy = new AssetDeliveryPolicy(); $adpolicy->setName('Asset Delivery Policy'); $adpolicy->setAssetDeliveryProtocol(AssetDeliveryProtocol::DASH); $adpolicy->setAssetDeliveryPolicyType(AssetDeliveryPolicyType::DYNAMIC_COMMON_ENCRYPTION); $adpolicy->setAssetDeliveryConfiguration($confJson); $adpolicy = $restProxy->createAssetDeliveryPolicy($adpolicy); // 5.4 Link the AssetDeliveryPolicy to the Asset $restProxy->linkDeliveryPolicyToAsset($encodedAsset, $adpolicy->getId()); print "Added Asset Delivery Policy: name={$adpolicy->getName()} id={$adpolicy->getId()}\r\n"; }
function createAssetDeliveryPolicy($restProxy, $encodedAsset, $contentKey) { // 5.1 Get the acquisition URL $acquisitionUrl = $restProxy->getKeyDeliveryUrl($contentKey, ContentKeyDeliveryType::PLAYREADY_LICENSE); $widevineUrl = $restProxy->getKeyDeliveryUrl($contentKey, ContentKeyDeliveryType::WIDEVINE); // remove query string if (strpos($widevineUrl, '?') !== false) { $widevineUrl = substr($widevineUrl, 0, strrpos($widevineUrl, "?")); } // 5.2 Generate the AssetDeliveryPolicy Configuration Key $configuration = [AssetDeliveryPolicyConfigurationKey::PLAYREADY_LICENSE_ACQUISITION_URL => $acquisitionUrl, AssetDeliveryPolicyConfigurationKey::WIDEVINE_BASE_LICENSE_ACQUISITION_URL => $widevineUrl]; $confJson = AssetDeliveryPolicyConfigurationKey::stringifyAssetDeliveryPolicyConfiguartionKey($configuration); // 5.3 Create the AssetDeliveryPolicy $adpolicy = new AssetDeliveryPolicy(); $adpolicy->setName('Asset Delivery Policy'); $adpolicy->setAssetDeliveryProtocol(AssetDeliveryProtocol::DASH); $adpolicy->setAssetDeliveryPolicyType(AssetDeliveryPolicyType::DYNAMIC_COMMON_ENCRYPTION); $adpolicy->setAssetDeliveryConfiguration($confJson); $adpolicy = $restProxy->createAssetDeliveryPolicy($adpolicy); // 5.4 Link the AssetDeliveryPolicy to the Asset $restProxy->linkDeliveryPolicyToAsset($encodedAsset, $adpolicy->getId()); echo "Added Asset Delivery Policy: name={$adpolicy->getName()} id={$adpolicy->getId()}" . PHP_EOL; }