Widevine lisans şablonuyla Media Services v3'e genel bakış

Azure Media Services, içeriğinizi Google Widevine ile şifrelemenize olanak tanır. Media Services ayrıca Widevine lisansları teslim etmek için bir hizmet sağlar. Widevine lisanslarını yapılandırmak için Azure Media Services API'lerini kullanabilirsiniz. Bir oyuncu Widevine korumalı içeriğinizi oynatmaya çalıştığında, lisansı almak için lisans teslim hizmetine bir istek gönderilir. Lisans hizmeti isteği onaylarsa, hizmet lisansı sağlar. İstemciye gönderilir ve belirtilen içeriğin şifresini çözmek ve oynatmak için kullanılır.

Not

Widevine, GovCloud bölgesinde kullanılamaz.

Widevine lisans isteği JSON iletisi olarak biçimlendirilir.

{
    "payload":"<license challenge>",
    "content_id": "<content id>"
    "provider": "<provider>"
    "allowed_track_types":"<types>",
    "content_key_specs":[
        {
            "track_type":"<track type 1>"
        },
        {
            "track_type":"<track type 2>"
        },
        …
    ],
    "policy_overrides":{
        "can_play":<can play>,
        "can persist":<can persist>,
        "can_renew":<can renew>,
        "rental_duration_seconds":<rental duration>,
        "playback_duration_seconds":<playback duration>,
        "license_duration_seconds":<license duration>,
        "renewal_recovery_duration_seconds":<renewal recovery duration>,
        "renewal_server_url":"<renewal server url>",
        "renewal_delay_seconds":<renewal delay>,
        "renewal_retry_interval_seconds":<renewal retry interval>,
        "renew_with_usage":<renew with usage>
    }
}

Not

Değer içermeyen boş bir ileti oluşturabilirsiniz, yalnızca "{}." Ardından varsayılan değerlerle bir lisans şablonu oluşturulur. Varsayılan değer çoğu durumda çalışır. Microsoft tabanlı lisans teslim senaryoları her zaman varsayılan değerleri kullanmalıdır. "Sağlayıcı" ve "content_id" değerlerini ayarlamanız gerekiyorsa, bir sağlayıcı Widevine kimlik bilgileriyle eşleşmelidir.

JSON iletisi

Name Değer Açıklama
yük Base64 ile kodlanmış dize İstemci tarafından gönderilen lisans isteği.
content_id Base64 ile kodlanmış dize Her content_key_specs.track_type için anahtar kimliğini ve içerik anahtarını türetmek için kullanılan tanımlayıcı.
Sağlayıcı string İçerik anahtarlarını ve ilkelerini aramak için kullanılır. Widevine lisans teslimi için Microsoft anahtar teslimi kullanılıyorsa, bu parametre yoksayılır.
policy_name string Daha önce kaydedilmiş bir ilkenin adı. İsteğe bağlı.
allowed_track_types enum SD_ONLY veya SD_HD. Lisansa hangi içerik anahtarlarının dahil olduğunu denetler.
content_key_specs JSON yapıları dizisi, "İçerik anahtarı özellikleri" bölümüne bakın. Hangi içerik anahtarlarının döndürüleceği hakkında daha ayrıntılı bir denetim. Daha fazla bilgi için "İçerik anahtarı özellikleri" bölümüne bakın. allowed_track_types ve content_key_specs değerlerinden yalnızca biri belirtilebilir.
use_policy_overrides_exclusively Boole, true veya false policy_overrides tarafından belirtilen ilke özniteliklerini kullanın ve önceden depolanan tüm ilkeyi atlar.
policy_overrides JSON yapısı, "İlke geçersiz kılmaları" bölümüne bakın. Bu lisans için ilke ayarları. Bu varlığın önceden tanımlanmış bir ilkesi olması durumunda, bu belirtilen değerler kullanılır.
session_init JSON yapısı, "Oturum başlatma" bölümüne bakın. İsteğe bağlı veriler lisansa geçirilir.
parse_only Boole, true veya false Lisans isteği ayrıştırılır, ancak lisans verilmez. Ancak, lisans isteğindeki değerler yanıtta döndürülür.

İçerik anahtarı özellikleri

Önceden var olan bir ilke varsa, içerik anahtarı belirtimindeki değerlerden herhangi birini belirtmeniz gerekmez. Bu içerikle ilişkili önceden var olan ilke, yüksek bant genişliğine sahip Dijital İçerik Koruması (HDCP) ve Genel Yönetim Sistemini Kopyala (CGMS) gibi çıkış korumasını belirlemek için kullanılır. Önceden var olan bir ilke Widevine lisans sunucusuna kaydedilmediyse, içerik sağlayıcısı değerleri lisans isteğine ekleyebilir.

her content_key_specs değeri, use_policy_overrides_exclusively seçeneğinden bağımsız olarak tüm parçalar için belirtilmelidir.

Name Değer Açıklama
content_key_specs. track_type string İz türü adı. Lisans isteğinde content_key_specs belirtilirse, tüm izleme türlerini açıkça belirttiğinizden emin olun. Bunun yapılmaması, son 10 saniye içinde oynatılamamasına neden olur.
content_key_specs
security_level
uint32 Kayıttan yürütme için istemci sağlamlığı gereksinimlerini tanımlar.
- Yazılım tabanlı beyaz kutu şifrelemesi gereklidir.
- Yazılım şifrelemesi ve karartılmış kod çözücü gereklidir.
- Anahtar malzeme ve şifreleme işlemleri donanım destekli güvenilir yürütme ortamında gerçekleştirilmelidir.
- İçeriğin şifrelenmesi ve kodunun çözülmesi, donanım destekli güvenilir bir yürütme ortamında gerçekleştirilmelidir.
- Şifreleme, kod çözme ve medyanın tüm işlemesi (sıkıştırılmış ve sıkıştırılmamış) donanım destekli güvenilir yürütme ortamında işlenmelidir.
content_key_specs
required_output_protection.hdc
dize, HDCP_NONE biri, HDCP_V1 HDCP_V2 HDCP'nin gerekli olup olmadığını gösterir.
content_key_specs
anahtar
Base64-
kodlanmış dize
Bu parça için kullanılacak içerik anahtarı. Belirtilirse, track_type veya key_id gereklidir. İçerik sağlayıcısı, Widevine lisans sunucusunun bir anahtar oluşturmasına veya aramasına izin vermek yerine bu parçanın içerik anahtarını eklemek için bu seçeneği kullanabilir.
content_key_specs.key_id Base64 ile kodlanmış dize ikilisi, 16 bayt Anahtarın benzersiz tanımlayıcısı.

İlke geçersiz kılmaları

Name Değer Açıklama
policy_overrides.can_play Boole, true veya false İçeriğin kayıttan yürütülmesine izin verildiğini gösterir. Varsayılan değer false’tur.
policy_overrides.can_persist Boole, true veya false Lisansın çevrimdışı kullanım için kalıcı olmayan depolamada kalıcı olabileceğini gösterir. Varsayılan değer false’tur.
policy_overrides.can_renew Boole, true veya false Bu lisansın yenilenmesine izin verildiğini gösterir. Doğruysa, lisansın süresi sinyalle uzatılabilir. Varsayılan değer false’tur.
policy_overrides.license_duration_seconds int64 Bu belirli lisansın zaman penceresini gösterir. 0 değeri, süre sınırı olmadığını gösterir. Varsayılan değer 0'dır.
policy_overrides.rental_duration_seconds int64 Kayıttan yürütmeye izin verilirken zaman penceresini gösterir. 0 değeri, süre sınırı olmadığını gösterir. Varsayılan değer 0'dır.
policy_overrides.playback_duration_seconds int64 Lisans süresi içinde kayıttan yürütme başlatıldıktan sonraki zaman görüntüleme penceresi. 0 değeri, süre sınırı olmadığını gösterir. Varsayılan değer 0'dır.
policy_overrides.renewal_server_url string Bu lisans için tüm sinyal (yenileme) istekleri belirtilen URL'ye yönlendirilir. Bu alan yalnızca can_renew doğru olduğunda kullanılır.
policy_overrides.renewal_delay_seconds int64 yenileme denenmeden önce license_start_time sonra kaç saniye. Bu alan yalnızca can_renew doğru olduğunda kullanılır. Varsayılan değer 0'dır.
policy_overrides.renewal_retry_interval_seconds int64 Hata durumunda sonraki lisans yenileme istekleri arasındaki gecikmeyi saniye olarak belirtir. Bu alan yalnızca can_renew doğru olduğunda kullanılır.
policy_overrides.renewal_recovery_duration_seconds int64 Yenileme denenirken kayıttan yürütmenin devam ettiği, ancak lisans sunucusundaki arka uç sorunları nedeniyle başarısız olduğu zaman penceresi. 0 değeri, süre sınırı olmadığını gösterir. Bu alan yalnızca can_renew doğru olduğunda kullanılır.
policy_overrides.renew_with_usage Boole, true veya false Kullanım başladığında lisansın yenileme için gönderildiğini gösterir. Bu alan yalnızca can_renew doğru olduğunda kullanılır.

Oturum başlatma

Name Değer Açıklama
provider_session_token Base64 ile kodlanmış dize Bu oturum belirteci lisansa geri geçirilir ve sonraki yenilemelerde bulunur. Oturum belirteci oturumların ötesinde kalıcı olmaz.
provider_client_token Base64 ile kodlanmış dize Lisans yanıtını geri göndermek için istemci belirteci. Lisans isteği bir istemci belirteci içeriyorsa, bu değer yoksayılır. İstemci belirteci lisans oturumlarının ötesinde kalır.
override_provider_client_token Boole, true veya false False ise ve lisans isteği bir istemci belirteci içeriyorsa, bu yapıda bir istemci belirteci belirtilmiş olsa bile istekteki belirteci kullanın. True ise, her zaman bu yapıda belirtilen belirteci kullanın.

Ek notlar

  • Widevine, Google Inc. tarafından sağlanan ve Google, Inc.'in hizmet koşullarına ve Gizlilik Politikası'na tabi olan bir hizmettir.

Yardım ve destek alma

Sorularınız için Media Services ile iletişime geçebilir veya aşağıdaki yöntemlerden birini kullanarak güncelleştirmelerimizi izleyebilirsiniz: