Esta función del API le permite asociar la información de medios para un Clip, en la base de datos.
soporte, ws.webtv, api, clips, modificar, set_media_info, medios
Variables GET específicas para esta solicitud:
Var | Valor | Descripción |
go | clips | La sección del API |
do | set_media_info | La acción del API |
iq | ID Clip | ID del Clip |
URL Resultante:
La URL de solicitud resultante sería similar a la siguiente (no se olvide de añadir la información requerida key, timestamp, salt and signature):
https://....../api.php?go=clips&do=set_media_info&iq={id_clip}&{información requerida}
*** Cada tipo de Clip requiere de un conjunto de medios diferente ***
Caso Clip "Estándar" (Clip tipo 0)
NOTAS:
1. Los archivos de medios deben encontrarse en la ubicación de almacenamiento, de acuerdo a los especificado en Configuración > Vídeo > Almacenamiento:
- En el caso de usar almacenamiento local, los archivos deben haber sido subidos a la carpeta uploads/movies.
- En el caso de usar almacenamiento AWS, los archivos deben haber sido subidos al bucker S3 correspondiente.
- En el caso de usar almacenamiento externo (FTP), los archivos deben haber sido subidos al FTP.
2. Esta función de API solamente asocia información en la base de datos, no realiza ningún reemplazo o eliminación de archivos en la ubicación de almacenamiento. Si está asignando medios a una calidad, se reemplazará cualquier asociación de archivos anterior pero los archivos anteriores no serán eliminados o reemplazados en la ubicación de almacenamiento; por lo tanto, debe manejar esas tareas con otros procedimientos implementados por Ud.
Var | Valor | Descripción |
*** Medios bitrate-único *** | ||
id_quality | (int) ID Calidad | [Requerido] El ID de la calidad al que se están asociando los medios. NOTA: Puede utilizar la llamada config > get_video_qualities para obtener la lista de calidades. |
vod_flash | (string) Nombre archivo MP4 | Nombre del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo Flash. |
vod_html5_h264 | (string) Nombre archivo MP4 | Nombre del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo HTML5. |
vod_html5_webm | (string) Nombre archivo WebM | [Sólo si WebM está habilitado] Nombre del archivo .webm que será reproducido cuando se use el reproductor de vídeo HTML5. |
Los siguientes campos solamente aplican si está presente la extensión Tienda y el "Trailer" está habilitado en el Clip. | ||
vod_flash_trailer | (string) Nombre archivo MP4 | Nombre del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo Flash. |
vod_html5_h264_trailer | (string) Nombre archivo MP4 | Nombre del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo HTML5. |
vod_html5_webm_trailer | (string) Nombre archivo WebM | [Sólo si WebM está habilitado] Nombre del archivo .webm que será reproducido cuando se use el reproductor de vídeo HTML5. |
NOTA: No suministre la URL de los vídeos, únicamente suministre el nombre de los archivos. |
Caso "StreamClip VOD" (Clip tipo 1)
NOTAS:
- Para más información sobre el soporte de medios y protocolos, lea el tutorial StreamClip VOD.
- Para más información sobre cómo asociar medios usando Amazon S3/CloudFront, lea este tutorial
- Para más información sobre cómo asociar medios usando URLs firmadas de CloudFront, lea este tutorial.
- Para más información sobre cómo asociar medios usando URLs con tokens (usando un script externo generador de tokens), lea este tutorial.
Var | Valor | Descripción |
*** Medios bitrate-múltiple *** (Los medios bitrate-múltiple no están asociados a una calidad específica). |
||
mbr_flash | (string) URL HLS o F4M | La URL bitrate-múltiple para Flash (puede ser F4M o HLS/.m3u8) |
mbr_html5 | (string) URL HLS o DASH | La URL bitrate-múltiple para HTML5 (HLS/.m3u8 o DASH/.mdp) |
*** Medios bitrate-único *** | ||
id_quality | (int) ID Calidad | [Requerido para asignar medios bitrate-único] El ID de la calidad al que se están asociando los medios. NOTA: Puede utilizar la llamada config > get_video_qualities para obtener la lista de calidades. |
vod_flash | (string) URL archivo MP4 | URL del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo Flash. |
vod_html5_h264 | (string) URL archivo MP4 | URL del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo HTML5. |
vod_html5_webm | (string) URL archivo WebM | [Sólo si WebM está habilitado] URL del archivo .webm que será reproducido cuando se use el reproductor de vídeo HTML5. |
Los siguientes campos solamente aplican si está presente la extensión Tienda y el "Trailer" está habilitado en el Clip. | ||
vod_flash_trailer | (string) URL archivo MP4 | URL del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo Flash. |
vod_html5_h264_trailer | (string) URL archivo MP4 | URL del archivo .mp4 que será reproducido cuando se use el reproductor de vídeo HTML5. |
vod_html5_webm_trailer | (string) URL archivo WebM | [Sólo si WebM está habilitado] URL del archivo .webm que será reproducido cuando se use el reproductor de vídeo HTML5. |
Caso "StreamClip Live" (Clip tipo 2)
NOTA: Para más información sobre el soporte de medios y protocolos, lea el tutorial StreamClip Live.
Var | Valor | Descripción |
*** Medios bitrate-múltiple *** (Los medios bitrate-múltiple no están asociados a una calidad específica). |
||
mbr_flash | (string) URL HLS o F4M | La URL bitrate-múltiple para Flash (puede ser F4M o HLS/.m3u8) |
mbr_html5 | (string) URL HLS o DASH | La URL bitrate-múltiple para HTML5 (HLS/.m3u8 o DASH/.mdp) |
*** Medios bitrate-único *** | ||
id_quality | (int) ID Calidad | [Requerido para asignar medios bitrate-único] El ID de la calidad al que se están asociando los medios. NOTA: Puede utilizar la llamada config > get_video_qualities para obtener la lista de calidades. |
live_flash | (string) URL live stream MP4 | URL del live stream (RTMP or HLS) |
live_ios | (string) URL live stream MP4 | URL del live stream (HLS) |
live_rtsp | (string) URL live stream MP4 | URL del live stream (RTSP) |
dash | (string) URL live stream MP4 | URL del live stream (DASH) |
Los siguientes campos solamente aplican si está presente la extensión Tienda y el "Trailer" está habilitado en el Clip. | ||
vod_flash_trailer | (string) → | Leer caso Clip "estándar" |
vod_html5_h264_trailer | (string) → | Leer caso Clip "estándar" |
vod_html5_webm_trailer | (string) → | Leer caso Clip "estándar" |
Caso "EmbedClip" (Clip tipo 3)
NOTA: Para más información sobre cómo funciona este tipo de Clip, lea los tutoriales EmbedClip.
Var | Valor | Descripción |
id_quality | (int) ID Calidad | [Requerido para asignar medios bitrate-único] El ID de la calidad al que se están asociando los medios. NOTA: Puede utilizar la llamada config > get_video_qualities para obtener la lista de calidades. |
embed_flash | (string) Código embed para Flash | Código embed HTML (o URL de portal de vídeo soportado) usado en el caso del reproductor de vídeo Flash |
embed_html5 | (string) Código embed para HTML5 | Código embed HTML (o URL de portal de vídeo soportado) usado en el caso del reproductor de vídeo HTML5 |
Los siguientes campos solamente aplican si está presente la extensión Tienda y el "Trailer" está habilitado en el Clip. | ||
vod_flash_trailer | (string) → | Leer caso Clip "estándar" |
vod_html5_h264_trailer | (string) → | Leer caso Clip "estándar" |
vod_html5_webm_trailer | (string) → | Leer caso Clip "estándar" |
Caso Clip "Auto-Compresión" (Clip tipo 4)
NOTAS:
[Para más información sobre cómo funciona este tipo de Clip, lea el tutorial Clip Auto-Compresión]
1. El archivo de medios "fuente" debe haber sido subido a la carpeta uploads/movies.
2. [En el caso de asociar los archivos de medios resultantes] Los archivos de medios resultantes deben encontrarse en la ubicación de almacenamiento, de acuerdo a los especificado en Configuración > Vídeo > Almacenamiento:
- En el caso de usar almacenamiento local, los archivos deben haber sido subidos a la carpeta uploads/movies.
- En el caso de usar almacenamiento AWS, los archivos deben haber sido subidos al bucker S3 correspondiente.
- En el caso de usar almacenamiento externo (FTP), los archivos deben haber sido subidos al FTP.
3. Esta función de API solamente asocia información en la base de datos, no realiza ningún reemplazo o eliminación de archivos en la ubicación de almacenamiento. Si está asignando medios a una calidad, se reemplazará cualquier asociación de archivos anterior pero los archivos anteriores no serán eliminados o reemplazados en la ubicación de almacenamiento; por lo tanto, debe manejar esas tareas con otros procedimientos implementados por Ud.
Var | Valor | Descripción |
*** Archivo fuente para compresión *** (El archivo fuente para compresión no está asociado a una calidad específica) |
||
encoding_source | (string) Nombre archivo de vídeo | Nombre del archivo de vídeo que será utilizado como fuente para comprimir los archivos resultantes. |
*** Single-bitrate media *** (En el caso de asociar los archivos de medios resultantes, consulte el caso de Clip "estándar") |
||
NOTA: No suministre la URL de los vídeos, únicamente suministre el nombre de los archivos. |
Si la solicitud es exitosa, recibirá una respuesta conteniendo:
• ok: Si los medios del Clip fueron asignados exitosamente.
Ejemplo:
{ "ok": "The Clip media was correctly set" }
Si la solicitud no es exitosa (por ejemplo, si el ID del Clip no es válido), recibirá una respuesta como la siguiente:
{ "error": "CLIP_NOT_FOUND", "error_long": "It was not possible to find a Clip with the supplied ID" }
Posibles Mensajes de Error
Además de los errores generales, esta solicitud puede devolver los siguientes errores:
• REQUEST_ERROR | Invalid Clip ID:
El ID del Clip no es válido.
• REQUEST_ERROR | Invalid Quality ID:
El ID de la Calidad no es válido.
• CLIP_NOT_FOUND | It was not possible to find a Clip with the supplied ID:
No se encontró el Clip con el ID especificado.
• MODIFICATION_ERROR_MBR | It was not possible to set the Multi-Bitrate media for the Clip
No fue posible asignar los medios bitrate-múltiple para el Clip.
• MODIFICATION_ERROR_ENCODING_SOURCE | It was not possible to set the encoding_source for the Clip
No fue posible asignar el archivo "fuente" para el Clip.
• MODIFICATION_ERROR_MEDIA | It was not possible to set the Clip media
No fue posible asignar los medios para el Clip.
Preparando los datos GET y POST.
// The GET vars $GET_VARS = array( "go" => "clips", "do" => "set_media_info", "iq" => 700 ); // The POST vars $POST_VARS = array( // setting media for quality ID 1 on a standard clip... "id_quality" => 1, "vod_flash" => "myvideo.mp4", "vod_html5_h264" => "myvideo.mp4", "vod_html5_webm" => "myvideo.webm" );
Generando salt, timestamp, signature y enviando la solicitud
*** El siguiente bloque de código es común para todas las solicitudes firmadas ***
// Recopilando la información del API y URL Base $API_URL = "https://www.midominiowebtv.tv/api.php"; $API_KEY_ID = "1b323a1cb879fd4e66530fbad07a32ee"; $API_SHARED_SECRET = "MWIzMjNhMWNiODc5ZmQ0ZTY2NTMwZmJhZDA3YTMyZWViOTQ3MDJiOGM2ZTU2NjE3"; // Mantenga esto en un lugar seguro!!! // Generando salt y timestamp $salt = md5(mt_rand()); $timestamp = time(); // Generando la firma de validación // - Método por defecto: usando base64_encode(hash_hmac(...)) $signature = base64_encode(hash_hmac('sha256', $salt.$timestamp, $API_SHARED_SECRET, true)); // comentar esta línea si se utiliza el otro método // - Método simplificado - disponible desde v60: usando md5(). // Este método requiere que la variable $API_SIGNATURE_GENERATION_MODE = 1; en el archivo config/Config.inc.php.
// $signature = md5($salt."-".$timestamp."-".$API_SHARED_SECRET); // debe "des-comentar" esta línea si se utiliza el método simplificado // Añadiendo timestamp, salt, key y signature a las variables GET $GET_VARS["timestamp"] = $timestamp; // UTC timestamp $GET_VARS["salt"] = $salt; $GET_VARS["key"] = $API_KEY_ID ; // The API Key ID: This is public and is used by the API to identify the application; $GET_VARS["signature"] = $signature; // Creando la URL de la solicitud. Tenga presente que si no utiliza la función interna de PHP // para crear la solicitud HTTP entonces no se olvide de codificar los valores con URL Encode $REQUEST_URL = $API_URL."?".http_build_query($GET_VARS); // Lo anterior construirá una URL del como .../api.php?go=api_subject&do=api_action&etc... // Creando un recurso cURL con las opciones apropiadas $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $REQUEST_URL); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, $POST_VARS); // If your PHP host does not have a valid SSL certificate, you will need to turn off SSL // Certificate Verification. This is dangerous (!), and should only be done temporarily // until a valid certificate has been installed curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // Turns off verification of the SSL certificate. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Turns off verification of the SSL certificate. // Enviando la solicitud al API $response = curl_exec($ch); // Procesando la respuesta if (!$response) { echo 'Llamada al API falló'; } else { print_r(json_decode($response,true)); }