Error message

User warning: The following module is missing from the file system: fast_404. For information about how to fix this, see the documentation page. in _drupal_trigger_error_with_delayed_logging() (line 1143 of /mnt/www/html/ooyala/docroot/includes/bootstrap.inc).

API de autorización del reproductor

La consulta de la API de autorización constituye un elemento clave en las funciones de protección de contenido de Ooyala.

Una consulta a la API de autorización tiene la siguiente sintaxis:
[GET] /sas/player_api/v1/authorization/embed_code/pcode/ListOfCommaSeparatedEmbedCodes?query_string_paramters		
		

Ejemplo:

http://player.ooyala.com/sas/player_api/v1/authorization/embed_code/R0Y3Y6HtBEQtRUoC55GY8DTF4pGA/44azdwNDpSWUvfd8F30d55tXY0YH9njH?device=html5&domain=www.ooyala.com&supportedFormats=m3u8%2Cmp4		
	

Atributos de ruta

La tabla siguiente describe todos los atributos de la ruta.
Propiedad Descripción
pcode Su código de proveedor
ListOfCommaSeparatedEmbedCodes Los códigos embebidos (ID de contenido o ID de vídeos) deben estar separados por comas en esta lista.
Note: No puede utilizar identificadores externos aquí. Los valores deben ser códigos embebidos reales (ID de vídeos).

Parámetros de la cadena de consulta

En la siguiente tabla se describen los parámetros de la cadena de consulta de las rutas. La solicitud puede tener varios parámetros adicionales de cadena de consulta que se muestran a continuación. El único parámetro obligatorio es domain.
Parámetro Descripción ¿Obligatorio?
domain Dominio del embebido del reproductor.
timestamp Marca de hora a la que se realizó la solicitud (tiempo de epoch).

Por defecto: Solicitud de tiempo recibida por servidor

No
supported_formats Lista de valores separados por comas que indican los formatos admitidos. El valor de este parámetro se vincula normalmente con el tipo de dispositivo, ya que los formatos admitidos están limitados por el dispositivo.

Valores válidos: Mostrados en la siguiente tabla

No
device Lista separada por comas de los dispositivos de reproducción.

Valores válidos: Consulte la siguiente tabla

No
jsonp El valor de este parámetro se utilizará como wrapper al devolver JSONP.

Por defecto: JSON

No
embed_token Presentado en la sección "Token del reproductor de Ooyala" en la Guía del desarrollador de Ooyala. No
auth_token Token de autorización, discutido en Aplicación de límites de streams simultáneos para cada espectador No

Formatos y dispositivos admitidos

El parámetro supported_formats puede ser una lista de alguno de los siguientes valores, separados por comas.
Formato Valor
HDS hds
RTMP RTMP
HLS m3u8
MP4 mp4
Akamai HD akamai_hd
Widevine HLS wv_hls
Widevine MP4 wv_mp4
Widevine WVM wv_wvm
Adobe Access HLS faxs_hls
Microsoft Smooth Streaming.
Note: Para Smooth Streaming, device (véase más abajo) debe ser GENERIC.
smooth
El parámetro device puede ser una lista de alguno de los siguientes valores, separados por comas:
  • IPHONE
  • IPAD
  • APPLE_TV
  • ANDROID_SDK
  • ANDROID_3PLUS_SDK
  • ANDROID_HLS_SDK
  • HTML5
  • GENERIC_FLASH
  • GENERIC

Respuesta de la API de autorización

Cuando el llamador realiza una solicitud de autorización, la API de autorización responde aI llamador con una matriz JSON que indica el estado de autorización para cada uno de los códigos embebidos incluidos en la lista en cuestión. A continuación se muestra un ejemplo de respuesta de la API de autorización:

	{
	"debug_data": {
		"server_latency": "21.919",
		"request_id": "domU-12-31-39-0B-D2-11_1346804527_57",
		"user_info": {
			"ip_address": "204.124.203.201",
			"continent": "NORTH AMERICA",
			"country": "US",
			"request_timestamp": "1346804527",
			"language": "es-es",
			"device": "html5",
			"timezone": -7,
			"domain": "www.ooyala.com"
		}
	},
	"signature": "0pobcTRSLoiSZchrMI7Aeoub05/OKRIavq36BgW74lU=\n",
	"authorization_data": {
		"44azdwNDpSWUvfd8F30d55tXY0YH9njH": {
			"authorized": true,
			"message": "authorized",
			"code": "0",
			"request_timestamp": "1346804527",
			"retry": null,
			"streams": [
				{
					"delivery_type": "hls",
					"url": {
    					"data": "aHR0cDovL3BsYXllci5vb3lhbGEuY29tL3BsYXllci9pcGhvbmUvNDRhemR3TkRwU1dVdmZkOEYzMGQ1NXRYWTBZSDluakgubTN1OA==",
						"format": "encoded"
					}
				}
			]
		}
	}
}
		
	

Elementos de la respuesta

Las partes importantes de la respuesta aparecen en negrita en el ejemplo. Estas partes de la respuesta son las siguientes:

  1. debug_data solo se utiliza para depurar datos. Puede cambiar en cualquier momento.
  2. signature en la respuesta (discutida en la sección siguiente, Cómo se firma la salida) se utiliza para garantizar que la respuesta no ha sido manipulada por un tercero. El hash más importante es el hash “authorization-data”, que incluye el resultado de la solicitud de autorización. A continuación se muestran todas las enumeraciones para las posibles parejas de códigos:mensaje (authorized tiene un valor binario true/false). Esta lista puede seguir cambiando a medida que agregamos parámetros adicionales a la autorización, obteniendo mayor visibilidad en el sistema en caso de posible fallo.
  3. los streams se incluyen si el código embebido ha sido autorizado, incluyendo la URL codificada con base64 para acceder a dichos streams. Cada stream puede devolver un resultado de autorización de:
    • "autorizado"
    • "padre no autorizado"
    • "dominio no autorizado"
    • "ubicación no autorizada"
    • "dispositivo no autorizado"
    • "hora actual es anterior a la hora de inicio de vuelo" (antes de la hora de inicio de vuelo)
    • "hora actual es posterior a la hora de finalización de vuelo" (después de la hora de finalización de vuelo)
    • "hora actual se encuentra fuera de cualquier período de disponibilidad" (fuera de las horas de vuelo recurrentes)
    • "este no es un código embebido reconocido"
    • "firma no válida" (firma no válida en la solicitud, probablemente al utilizar la reproducción basada en token)
    • "faltan parámetros" (faltan parámetros obligatorios)
    • "falta conjunto de reglas" (al autorizar con un conjunto de reglas en lugar de un grupo de sindicación)
    • "no autorizado" (este mensaje se utiliza rara vez o nunca, en favor de mensajes más específicos)
    • "falta pcode",
    • "token no válido" (código de error para la reproducción basada en token y Adobe Pass)

Para una respuesta que incluye un stream Widevine, se devuelve la propiedad adicional widevine_server_path. Este valor se debe pasar junto con la URL del stream a los SDK de reproducción para obtener la licencia de Widevine y descifrar el token.

{
  "authorization_data":{
     "huNWp2NjoCaCKrsV_wqBdcSw9P1XmlwW":{
        ...
        "streams":[
           {
              "delivery_type":"wv_wvm",
              "url":{
                 ...
              },
              "widevine_server_path":"http://player.ooyala.com/sas/drm2/lvcjAxOj82_rjlIAJ6Jr8ZZqGP-s/huNWp2NjoCaCKrsV_wqBdcSw9P1XmlwW/widevine/ooyala"
           }
        ]
     }
  },
  "debug_data": ...,
  "signature":"Fo6ewzq2tTrLJrFmjo5eQpeKUOoLvhSen7KLjrFU1YQ=\n"
}

En el caso de los límites de streams simultáneos para cada espectador, se devuelven propiedades adicionales, tal como se detalla en Aplicación de límites de streams simultáneos para cada espectador.