Documentación de sintaxis de cadena de consulta

Los parámetros se escriben en la cadena de consulta, separados por comas y corchetes. Esta sintaxis se introdujo en 2017 para admitir completamente las funcionalidades de PlayReady 3:

  • Similar a una sintaxis JSON (sin embargo, no json real)
  • Fácil de leer y editar
  • No incluye caracteres no seguros (como ampersand) y no debe requerir escape a ninguno de ellos.
  • Nota: la cadena de consulta no debe incluir ningún carácter de espacio (' ')
  • Nota: Los caracteres '+' son aceptables en los argumentos codificados en base64
  • Permite solicitar varias licencias en una respuesta de licencia y establecer parámetros para cada una de ellas.
  • Ejemplo: pista de vídeo cifrada con un conjunto de claves en SL3000 y pista de audio cifrada con otro conjunto de claves en SL2000.
  • Nuevo formato de fecha yyyymmddd (ejemplo: 20171231) y permite establecer horas, minutos y segundos: aaaammdd[hhmmss] (ejemplo: 20171231235959)

Nota: Los parámetros deben incluir persist:true si desea recibir licencias persistentes.

Examples

LAURL (https://test.playready.microsoft.com/service/) Description
rightsmanager.asmx Devolver una licencia no persistente con un derecho PLAY y un nivel de seguridad de 150 para el niño encontrado en el WRMHEADER, usando la inicialización de clave de prueba
rightsmanager.asmx?cfg=(ckt:aes128bitcbc) NUEVO EN PLAYREADY 4.0. Devolver una licencia no persistente con un derecho PLAY para el niño que se encuentra en WRMHEADER, con un tipo de clave de contenido establecido para el cifrado AESCBC (en lugar de AESCTR)
rightsmanager.asmx?cfg=(begindate:20170101,expiration:20170101010000) Devolver una licencia no persistente con un derecho PLAY para el niño encontrado en WRMHEADER, utilizando la inicialización de clave de prueba, con una fecha de inicio del 1 de enero de 2017 0:00, y una expiración fija del 1 de enero de 2017 1:00am
rightsmanager.asmx?cfg=(persist:true,begindate:20170101,expiration:20170201,firstexp:60) Devuelve una licencia persistente con fechas de inicio y finalización fijas y una expiración relativa de 60 segundos después de la primera reproducción. Nota: Tiene que llamar explícitamente a persist:true para recibir licencias persistentes.
rightsmanager.asmx?cfg=(kid:B6E39626-1CFB-4AA1-BCBD-4EF1ABA7843A,sl:3000),(kid:7C9484BA-C238-467A-869C-CDD8C7167712,sl:2000) Devuelve dos licencias no persistentes con derechos PLAY, uno con un nivel de seguridad de 3000, uno con un nivel de seguridad de 2000. Nota: estos dos KID deben coincidir con los KID en el WRMHEADER

Parámetros

Parámetro Meaning Valores Comentarios, ejemplos, valor predeterminado
Sl Establecer el nivel de seguridad mínimo para una licencia 150, 2000, 3000 Ejemplo: sl:3000
El valor predeterminado es 150.
Nota: la clave de vídeo se puede establecer en sl:3000, pero en general, los clientes solo admiten claves de audio para establecerse en sl:2000 maximum
keyseed Use la inicialización de clave proporcionada para generar la clave de contenido en las licencias. Matriz de bytes base64 Ejemplo: keyseed:Wdkg2jsl3djgqSFer26XVBoVVRPzVEggUOSKSQaz
El valor predeterminado es la inicialización de clave de prueba que se proporciona aquí.
cabrito Se usa en un grupo de propiedades para asociar estas propiedades a un KID 'header', o Guid en formato del Registro o cadena base64 Ejemplo 1: kid:header
Ejemplo 2: kid:e13a7861-d8cc-4284-9245-7c835ebde9f0
Ejemplo 3: kid:YXg64czYhEKSRXyDXr3p8A==
En el caso de kid:header, el servidor de licencias usa el KID encontrado en EL WRMHEADER que viene junto con la solicitud de licencia. En este caso, WRMHEADER tiene que incluir solo un KID
contentkey Establecimiento de la clave de contenido Matriz de bytes base64 Ejemplo: contentkey:eNqVnXrElmo2NSsn7IXeEA==
El valor predeterminado es key(TestKeySeed, kid)
ckt Especifica el tipo de cifrado de clave de contenido (CTR o CBC) aes128bitctr , aes128bitcbc , keyexchange Ejemplo: ckt:aes128bitcbc
El valor predeterminado es aes128bitctr
La licencia incluirá un conjunto de claves de contenido para el cifrado AESCBC.
NOVEDADES DE PLAYREADY 4.0
tid Establecimiento de un TransactionId en la respuesta de licencia guid (arbitrario) Ejemplo: tid:3033E8F0-FB1B-4170-AD5C-60549AAB2C79
Agrega el valor proporcionado a la propiedad LicenseResponse.TransactionId, que requerirá que el cliente publique un desafío de confirmación de licencia mediante el identificador de transacción especificado al servidor de licencias.
 
playright Agregar una reproducción a la derecha falso, verdadero Ejemplo: playright:true
El valor predeterminado es true
Nota: una licencia devuelta sin derecho no permitirá al cliente consumir el contenido.
readright Agregar un derecho de lectura falso, verdadero Ejemplo: readright:true
El valor predeterminado es false.
executeright Agregar un comando Ejecutar a la derecha falso, verdadero Ejemplo: executeright:true
El valor predeterminado es false.
extendedright Agregar un derecho extendido Entero. Consulte el ejemplo. Ejemplo: (extendedright:(type:500,extended:(type:400, mustunderstand:true,besteffort:false,data:Ah==))
persist Establecer la licencia como persistente o no falso, verdadero Ejemplo: persist:true
El valor predeterminado es Falso.
Si la licencia se establece no persistente, se almacena en el cliente solo en RAM, en el contexto del reproductor multimedia.
simple Uso de SimpleNonPersistentLicense falso, verdadero Ejemplo: simple:true
El valor predeterminado es Falso.
Usa una clase SimpleNonPersistentLicense específica para emitir la respuesta de licencia. Esta clase se admite en versiones anteriores de Silverlight.
 
begindate Establecer una fecha y hora antes de la cual la licencia está deshabilitada aaaammdd[hhmmss] (GMT) Ejemplo: begindate:20170101
La licencia no permitirá reproducir antes del 1 de enero de 2017 00:00:00 GMT
enddate o expiration Establecer una fecha y hora después de la cual la licencia está deshabilitada aaaammdd[hhmmss] (GMT) Ejemplo 1: enddate:20170131
Ejemplo 2: enddate:20170131235959: la licencia no permitirá reproducirse después del 31 de enero de 2017 23:59:59 GMT
firstplayexpiration o firstexp Establecer una expiración relativa después de la primera reproducción segundos en entero Ejemplo: firstexp:60
La licencia no permitirá iniciar una reproducción exactamente 60 segundos después de que se haya iniciado una primera reproducción con esa misma licencia.
en tiempo real Agregar una restricción de expiración en tiempo real falso, verdadero Ejemplo: realtime:true
El valor predeterminado es false.
Si se establece esta propiedad, el cliente requiere que el cliente aplique expiraciones durante una sesión de reproducción en tiempo real.
Nota: Esto solo es compatible con los clientes de PlayReady 3.
removaldate Establecer una fecha en la que se puede eliminar la licencia en el cliente (GMT) aaaammdd[hhmmss] Ejemplo: removaldate:20170228
Tenga en cuenta que es opcional para que los clientes quiten licencias basadas en esta propiedad. Sin embargo, Windows ejecuta este proceso de eliminación en cada adquisición de licencias.
Consulte la documentación del SDK de servidor para obtener restricciones adicionales sobre cómo establecer esta propiedad.
 
isroot Requiere que la licencia solicitada sea una licencia raíz con el KID raíz definido. falso, verdadero Ejemplo: cfg=(isroot:true,kid:3C6F3C13-6207-4916-867C-8252B3993638)
rootid Establecer el KID raíz para una licencia hoja guid Ejemplo: cfg=(rootid:3C6F3C13-6207-4916-867C-8252B3993638,kid:header),(isroot:true,kid:3C6F3C13-6207-4916-867C-8252B3993638)
 
sourceid Establecimiento de la restricción sourceID o de identificador de origen restringido int Ejemplo: sourceid:267
Compruebe los valores permitidos en la sección 6.12 de las RS.
 
caopl Establecimiento de una restricción de nivel de protección de salida de audio digital comprimido entero Ejemplo: caopl:200
El valor predeterminado es 0
Normalmente, para requerir controladores de audio seguros para el audio comprimido.
Compruebe los valores permitidos en la sección 6.7 y 3.6.2 de las RS.
Código del SDK del servidor:
right.CompressedDigitalAudioOPL = 200;
ucaopl Establecer una restricción de nivel de protección de salida de audio digital sin comprimir entero Ejemplo: ucaopl:300
El valor predeterminado es 0
Normalmente, para requerir HDCP o DTCP para audio sin comprimir.
Compruebe los valores permitidos en la sección 6.7 y 3.6.3 de las RS.
Código del SDK del servidor:
right.UncompressedDigitalAudioOPL = 300;
cvopl Establecimiento de una restricción de nivel de protección de salida de vídeo digital comprimido entero Ejemplo: cvopl:500
Todos los valores permitidos tienen el mismo significado que un producto playReady no debe pasar la parte de vídeo del contenido descifrado comprimido a cualquier salida de vídeo.
Compruebe los valores permitidos en la sección 6.7 y 3.6.4 de las RS.
Código del SDK del servidor:
right.CompressedDigitalVideoOPL = 500;
ucvopl Establecer una restricción de nivel de protección de salida de vídeo digital sin comprimir entero Ejemplo: ucvopl:300
El valor predeterminado es 0
Normalmente, para requerir HDCP en HDMI para vídeo sin comprimir.
Comprobación de los valores permitidos en la sección 6.7 y 3.6.5
Código del SDK del servidor:
right.UncompressedDigitalVideoOPL = 300;
avopl Establecimiento de una restricción de nivel de protección de salida de vídeo analógico entero Ejemplo: avopl:200 para requerir CGMS-A copia nunca
Compruebe los valores permitidos en la sección 6.7 y 3.6.6
Código del SDK del servidor:
right.AnalogVideoOPL = 200;
dvop Adición de una protección explícita de salida de vídeo digital guid y datos opcionales codificados en cadena base 64 Ejemplo: dvop:(guid:ABB2C6F1-E663-4625-A945-972D17B231E7,data:AAAAAQ==) para requerir el tipo 1 de HDCP.
Consulte la sección 3.6.5.7 de LASR.
Código del SDK del servidor:
right.AddDigitalVideoOutputProtection(new Guid("", 1))
daop Agregar una protección explícita de salida de audio digital guid y datos opcionales codificados en cadena base 64 Ejemplo: daop:(guid:6D5CFA59-C250-4426-930E-FAC72C8FCFA6,data:AAAAAQ==) para requerir SCMS.
Consulte la sección 3.6.3.8 de LASR.
Código del SDK del servidor:
right.AddDigitalAudioOutputProtection(new Guid("{6D5CFA59-C250-4426-930E-FAC72C8FCFA6}", 1))
avop Agregar una protección explícita de salida de vídeo analógico guid y datos codificados en la cadena base 64 Ejemplo: avop:(guid:760AE755-682A-41E0-B1B3-DCDF836A7306,data:AAAAAQ==) a
Compruebe los valores permitidos en la sección 6.5 de las RS.
Código del SDK del servidor:
right.AddAnalogVideoOutputProtection(new Guid("{760AE755-682A-41E0-B1B3-DCDF836A7306}", 1)
 
extendedrestrictions Agregar una o varias restricciones extendidas a la derecha entero y propiedades, consulte el ejemplo Ejemplo: (extendedrestrictions:((type:400, mustunderstand:true,besteffort:false,data:Ah==),(type:401, mustunderstand:true,besteffort:false,data:Ah==)))
Asume que es aplicable al derecho De reproducción si no se establece ningún otro derecho.
playenablers Agregar uno o varios habilitadores de reproducción a la licencia guid o grupo de guides Ejemplo 1: playenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7) (permitir salidas desconocidas).
Ejemplo 2: playenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7,5ABF0F0D-DC29-4B82-9982-FD8E57525BFC) (permitir salidas desconocidas y AirPlay).
Consulte las solicitudes de incorporación de cambios para todos los habilitadores de reproducción.
 
 
  Los parámetros siguientes son abreviados para determinadas combinaciones de restricciones y habilitadores de reproducción descritos anteriormente.
 
explicitacp Establecer una restricción de control de ganancia automática y franja de color para vídeo analógico entero 0,1,2,3 Ejemplo: explicitacp:2
Equivalente a: avop(guid:C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA,data:AgAAAA==)
Consulte la sección 6.5.1 y 3.6.7.2 de LASR.
Código del SDK del servidor:
right.AddAnalogVideoOutputProtection(new ExplicitOutputProtection(new Guid("C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA"), HeightBytes.Concat(WidthBytes).ToArray()))
maxres Establecer una restricción de tamaño de descodificación de resolución máxima efectiva entero x entero Ejemplo: maxres:1920x1080
Equivalente a: dvop:(guid:9645E831-E01D-4FFF-8342-0A720E3E028F,data:AAAEOAAAB4A=)
Consulte la sección 6.5 y 3.6.5.7.1 de LASR.
Código del SDK del servidor:
right.AddDigitalVideoOutputProtection(new ExplicitOutputProtection(new Guid("9645E831-E01D-4FFF-8342-0A720E3E028F"), BitConverter.GetBytes((int)value))
allowunknownsd Agregar un control de salida para la salida desconocida para la resolución restringida falso, verdadero Ejemplo: allowunknownsd:true
Equivalente a: playenablers:(B621D91F-EDCC-4035-8D4B-DC71760D43E9)
Consulte la sección 3.9.2 de LASR.
Código del SDK del servidor:
right.AddPlayEnabler(new PlayEnabler(new Guid("B621D91F-EDCC-4035-8D4B-DC71760D43E9")))
allowunknownhd Agregar un control de salida para la salida desconocida para cualquier resolución falso, verdadero Ejemplo: allowunknownhd:true
Equivalente a: playenablers:(786627D8-C2A6-44BE-8F88-08AE255B01A7)
Consulte la sección 3.9.1 de lasRS.
Código del SDK del servidor:
right.AddPlayEnabler(new PlayEnabler(new Guid("786627D8-C2A6-44BE-8F88-08AE255B01A7")))
 
clientinfo Característica de reflexión especial. Consulte esta página para obtener más detalles.
revocado Simular la revocación de dispositivos para esta solicitud falso, verdadero Ejemplo: revoked:true