CMS / API de reproducción: Búsqueda de vídeos v1

En este tema, aprenderá cómo buscar videos en su cuenta usando la API de CMS. La CMS API proporciona una forma programática de buscar videos en su biblioteca de Video Cloud. Este tema proporciona detalles sobre la sintaxis de búsqueda. Nota: esta es la sintaxis de búsqueda original; le recomendamos que utilice la más simple Sintaxis de búsqueda de video v2 Para la API de reproducción, debe usar Esta versión.

Introducción

En este tema, aprenderá a hacer lo siguiente:

  • Cree y limite una búsqueda básica usando el q parámetro
  • Ordenar resultados de búsqueda
  • Buscar utilizando términos obligatorios y excluidos
  • Utilice una búsqueda entre comillas para hacer coincidir términos exactos y varias palabras
  • Buscar en campos personalizados
  • Buscar campos de fecha con una fecha específica y con rangos
  • Combinar criterios de búsqueda

Uso de API

La función de búsqueda se puede utilizar con el CMS API o la API de reproducción.

API de CMS

Al utilizar la búsqueda con la API de CMS, se aplica lo siguiente:

  • Todas las solicitudes (incluida la búsqueda) requieren un encabezado de autorización que contiene sus tokens de acceso. Para obtener detalles sobre cómo obtener credenciales de cliente y usarlas para recuperar tokens de acceso, consulte la Descripción general de Brightcove OAuth.
  • No hay límite en la cantidad máxima de videos devueltos de una búsqueda, pero se aplica una limitación de velocidad.
  • Los resultados de la búsqueda incluyen todos los videos de su cuenta, ya sean reproducibles o no, y / o restringidos geográficamente.

Para obtener detalles sobre la solicitud / respuesta de la API, consulte la Obtener videos sección de la Referencia de la API de CMS.

API de reproducción

Cuando se utiliza la búsqueda con la API de reproducción, se aplica lo siguiente:

  • Las solicitudes de búsqueda con la API de reproducción requieren una clave de política que sea habilitado para búsqueda.
  • Hay un límite en el número máximo de videos devueltos de una búsqueda.
  • Los resultados de la búsqueda solo mostrarán videos que se puedan reproducir (videos con state:inactive será ignorado).
  • Las búsquedas hacen cumplir las restricciones de la política de reproducción, como la omisión de videos restringidos geográficamente de los resultados.
  • El almacenamiento en caché de los resultados proporciona tasas de solicitud más altas y respuestas más rápidas, y no hay limitación de velocidad.

Para obtener detalles sobre la solicitud / respuesta de la API, consulte la Obtener videos sección de la Referencia de la API de reproducción.

Para realizar una búsqueda de términos en su biblioteca de medios, use el q parámetro.

      q={search terms}

Los términos de búsqueda que especifique deben ser una lista de términos codificados en URL separados por un espacio.

Soportes de búsqueda derivando. La derivación es el mapeo de una palabra a la raíz de la palabra y otras palabras que provienen de la misma raíz. Por ejemplo, una búsqueda en "ejecutar" debe coincidir con los videos que tienen "en ejecución" o "en ejecución" en los campos especificados. Sería no coincide con "runa" porque "runa" no tiene "ejecutar" como raíz.

Cuando no proporciona ningún calificador para un término de búsqueda, como q=bird , la solicitud buscará ese valor en los siguientes campos:

  • id [1-1]
  • name
  • description
  • long_description
  • text(no es un campo de metadatos real, sino un pseudo-campo que puede usar para buscar el name , description , y long_description - p.ej q=text:bird)
  • tags
  • reference_id
  • custom_fields(busca todos los campos personalizados)
  • custom_field_name(busca un campo personalizado con nombre específico)[1-2]

Notas

[1-1] Nota: la búsqueda por id se incluye por coherencia, pero una búsqueda en q=id:12345 devolverá exactamente los mismos resultados que la solicitud https://cms.api.brightcove.com/v1/accounts/{account_id}/videos/12345
[1-2] Si tiene un campo personalizado de tipo lista y desea devolver videos que tengan uno de varios valores, puede hacerlo así:

Digamos que tienes un campo llamado color que puede tomar los valores: red , green , yellow , o blue. Quieres buscar videos que tengan ese campo configurado en el valor green o blue:

      q=color:green%20color:blue

Ejemplo: Esta solicitud devuelve videos que tienen un valor de bird en al menos uno de los campos enumerados anteriormente.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=bird 

Limitar la búsqueda a una propiedad específica

Cuando proporciona un calificador para un término de búsqueda, como q=name:bird , la solicitud buscará el video name campo para un valor de bird.

Ejemplo: Esta solicitud devuelve videos que tienen un valor de wildlife en el name campo.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=name:wildlife

Los campos de búsqueda admitidos son:

Campos de búsqueda admitidos
Campo Valores legales
name cadenas o cadenas entre comillas
texto cadenas o cadenas entrecomilladas (busca el name , description , y long_description)
tags cadenas o cadenas entre comillas (varias etiquetas deben estar delimitadas por comas)
custom_fields cadenas o cadenas entre comillas (busca en todos los campos personalizados; también puede usar un campo personalizado específico interno nombre) [2-1]
reference_id cadena o cadena entre comillas
state ACTIVE, INACTIVE , PENDING , DELETED [2-3]
updated_at rango de fechas
created_at rango de fechas
schedule.starts_at rango de fechas
schedule.ends_at rango de fechas
published_at rango de fechas
complete [2-2] true o false

Notas

  • [2-1] Es no posible buscar videos que tienen un campo personalizado que no tiene valor o un valor de null , porque a menos que se le haya dado un valor al campo, no se incluye en los metadatos del video.
  • [2-2] cuando creas un nuevo video, el complete la propiedad se establece automáticamente en false. Tan pronto como exista una versión del video, el complete la propiedad se establecerá automáticamente en true.
  • [2-3] Las siguientes limitaciones se aplican a la búsqueda de videos ELIMINADOS:
    • La búsqueda de videos eliminados es solo disponible usando la API de CMS; la API de reproducción no devolver videos eliminados
    • Solo los videos eliminados durante los 10 días anteriores (la hora actual menos 10 días) serán devueltos

Clasificación de los resultados de la búsqueda

La sort El parámetro le permite ordenar los resultados de una solicitud de obtención de videos. Puede ordenar por lo siguiente:

  • reference_id
  • name
  • created_at
  • published_at
  • updated_at
  • schedule.starts_at
  • schedule.ends_at
  • state
  • plays_total
  • plays_trailing_week

Cuando no se ordenan explícitamente los resultados mediante el uso de sort , los resultados se ordenarán de acuerdo con un algoritmo conocido como Frecuencia de término/Frecuencia de documento inversa o TF-IDF. Ver aquí para más información.

Por ejemplo, supongamos que busca los términos coastal,city y hay 120 videos en su cuenta que tienen esos términos en algún lugar de los metadatos del video ( name , description , tags , etc.) y que también coincidan con los criterios de clasificación de los resultados (por ejemplo, todos tienen el mismo schedule_starts_at fecha y hora). El nivel de resultados de un video lo determina la frecuencia con la que uno o ambos términos aparecen en los metadatos, y se le da mayor importancia al término que aparece con más frecuencia en la biblioteca de videos en su conjunto.

Términos obligatorios / excluidos

Puede marcar un término de búsqueda como requerido (los videos devueltos DEBEN coincidir) o excluidos (los videos devueltos NO deben coincidir). Esto se controla con un código URI. + (%2B) o - Firmar inmediatamente antes del término.

Debes codificar + como %2B al usarlo para indicar un término requerido.

Términos obligatorios / excluidos
ejemplo codificado en URL significado
+foo %2Bfoo los videos DEBEN incluir el término foo en el name , description , long_description , tags , reference_id o custom_fields
+custom_fields:foo %2Bcustom_fields:foo el video DEBE incluir el valor foo para algún campo personalizado
+foo -bar %2Bfoo%20-bar los videos DEBEN incluir el término foo pero NO debe incluir el término bar en el name , description , long_description , tags , reference_id o custom_fields
+name:foo -name:bar %2Bname:foo%20-name:bar los videos DEBEN incluir el término foo pero NO debe incluir el término bar en el name

Ejemplo: Esta solicitud devuelve videos que TIENEN un valor de sea pero NO tiene un valor de lake en el tags campo.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=%2Btags:sea%20-tags:lake

Ver Combinando criterios de búsqueda a continuación para ver cómo utilizar la sintaxis requerida / excluida para aplicar la lógica Y para varios términos de búsqueda.

Combinado con otros parámetros

Buscar (usando el q parámetro) se puede combinar con otros parámetros tales como sort , limit y offset. Todos los parámetros de URL están separados por &. El orden de los parámetros no importa.

Ejemplos

Ejemplo: Esta solicitud devuelve videos que deben tener un valor de bar en el tag campo y puede tener un name conteniendo valor foo

      .../videos?q=name:foo%20%2Btags:bar&sort=updated_at

Ejemplo: Esta solicitud devuelve los mismos videos que el anterior, pero además clasifica esos resultados por el campo updated_at y luego limita los resultados a solo 10 videos.

      .../videos?sort=updated_at&q=name:foo%20%2Btags:bar&limit=10

Términos de búsqueda citados

De forma predeterminada, una búsqueda hará coincidir palabras similares con sus términos de búsqueda. Si desea hacer coincidir varias palabras, simplemente envuelva el término entre comillas.

La mayoría de los navegadores y otros agentes tratarán las comillas literales ("..." ) correctamente, pero si se encuentra con un caso en el que los términos de búsqueda citados no parecen devolver resultados correctos, intente reemplazar las comillas con %22 (%22...%22)

            
              q="foo" or q=%22foo%22
              q="foo%20bar" or q=%22foo%20bar%22
            
          

Esto también funciona cuando se busca en un campo específico:

            
              q=name:"home"
              q=name:"home%20run"
            
          

Varias palabras

Ejemplo: Tenga en cuenta que esta solicitud devuelve videos que tienen un valor de sea o mammal en el tags campo.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=tags:sea,mammal

Pero, la siguiente solicitud devuelve solo aquellos videos que tienen una etiqueta sea,mammal.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=tags:"sea,mammal"

Campos Personalizados

Puede buscar en cualquier campo personalizado que haya definido para sus videos.

      q=my_field:foo
      q=my_field:"foo"

Nota: todos los valores de los campos personalizados se tratan como cadenas. Por ejemplo, si tiene un campo personalizado de tipo lista que puede tomar los valores true o false , la búsqueda buscará esas cadenas, no valores booleanos (en muchos lenguajes de programación, 1 y 0 se puede usar indistintamente con true y false como valores booleanos, pero buscando en q=my_boolean_field:1 no devolverá videos que tienen my_boolean_field ajustado a true).

Ejemplo: Esta solicitud devuelve videos que tienen un valor de animal en el subject campo personalizado.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=subject:animal

Intervalos de fechas

Si está buscando en un campo de fecha, puede especificar una fecha específica o un rango de fechas, usando dos períodos para separar las fechas de inicio y finalización (q=updated_at:2018-01-01..2018-02-01).

Esto buscará todos los videos con un updated_at valor entre el 1 de agosto de 2012 y el 8 de octubre de 2012. Aquí estamos especificando cada fecha en formato UTC.

      q=updated_at:2012-08-01T00:00:00Z..2012-10-08T23:59:59Z

Puede simplificar esta búsqueda eliminando los componentes de tiempo. Lo siguiente es equivalente a la búsqueda anterior.

      q=updated_at:2012-08-01..2012-10-08

Formatos de fecha admitidos

Los formatos de fecha admitidos incluyen UTC y relativo.

Ejemplos de formato de fecha
formato (formato codificado por URI) significado
2015-08-01T06: 15: 00Z Esto representa una hora en UTC.
2012-08-01 Esto representa la medianoche de un día en UTC. El ejemplo es equivalente a 2012-08-01T00: 00: 00Z
-1d La hora actual menos 1 día. (ver debajo)

Fechas relativas

Para fechas relativas admitimos una dirección ( + o - ) seguido de un número, seguido de una duración. Las fechas relativas siempre se miden a partir de la hora actual. Las duraciones legales son: minutos, horas, días.

Ejemplos:

Muestras de fechas relativas
q param para fechas Significado
q = updated_at: -1day..NOW videos actualizados desde hace 1 día hasta el día actual
q=creado_en:-2 días videos agregados hace 2 días
q = updated_at: -4hours..NOW video actualizado desde hace 4 horas a la hora actual
q=creado_en:-60minutos.. videos agregados desde hace 60 minutos a la hora actual
q=creado_en:2016-01-01..-1d videos creados desde el 1 de enero de 2015 hasta hace un día
q = updated_at: -14d..NOW videos en las últimas dos semanas

Rangos abiertos

Si desea hacer coincidir todas las fechas hasta una hora determinada, o hacer coincidir todas las fechas desde una hora determinada, deje un extremo del rango.

Ejemplo: Buscar todos los videos modificados en los últimos 2 días

      q=updated_at:-2days..
      
      

Ejemplo: Busque todos los videos modificados a partir del 11 de agosto de 2013:

      q=updated_at:2013-08-11T00:00:00Z..
      
      

NOW operador para fechas de programación

Para schedule.starts_at y schedule.ends_at , puedes usar NOW como valor de fecha. Este es un operador de conveniencia que le permite configurar una consulta dinámica basada en la fecha y hora actual. Un par de ejemplos:

Ejemplos de datos de programación
de / a params Codificado por URI Significado
?q=programación.comienza_a las:..AHORA ?q=programación.comienza_a las:..AHORA starts_at es desde el principio de los tiempos hasta este momento
? q = schedule.starts_at: NOW ? q = schedule.starts_at: NOW starts_at es desde este momento en adelante
?q=programar.termina_a las:AHORA.. ?q=programar.termina_a las:AHORA.. ends_at es desde este momento hasta el final de los tiempos
?q=+horario.comienza_a las:..AHORA +horario.termina_a las:AHORA.. ?q=%2Bschedule.starts_at:..AHORA%20%2Bschedule.ends_at:AHORA.. comienza_en antes de este momento y termina_en después de este momento (el video está programado en este momento)

Combinar criterios de búsqueda

Puede combinar criterios para búsquedas complejas.

Ejemplo: Esta solicitud busca videos con un name valor de chisme , que se actualizaron entre el 1 de agosto de 2010 y el 8 de octubre de 2010. Luego ordena los datos de respuesta por updated_at fecha en orden descendente.

      q=%2Bname:gossip%20%2Bupdated_at:2010-08-01..2010-10-08&sort=-updated_at

Combinando términos

Utilizar el sintaxis requerida / excluida para devolver videos que tienen todas de los términos especificados.

Por ejemplo, si busca en:

      q=name:foo +tags:bar (URI-encoded: q=name:foo%20%2Btags:bar)

la respuesta contendrá videos que tienen la etiqueta "barra" y también pueden tener foo en el nombre. Si desea devolver solo los videos que tienen foo en el nombre Y la etiqueta 'barra', debe buscar en:

      (unencoded) q=+name:foo +tags:bar (URI-encoded) q=%2Bname:foo%20%2Btags:bar

Del mismo modo, si desea devolver solo los videos que tienen foo en el nombre, pero haz no tiene la etiqueta 'bar', buscaría en:

      (unencoded) q=+name:foo -tags:bar (encoded) q=%2Bname:foo%20-tags:bar

Ejemplos

Muestras: Términos combinados
Cadena de búsqueda no codificada Cadena de búsqueda codificada por URI Significado
q=foo bar q=foo%20bar los artículos devueltos tienen "foo" O "barra"
q=foo +bar q=foo%20%2Bbar los artículos devueltos deben tener "barra", pueden tener "foo"
q=+foo bar q =%2Bfoo%20bar los artículos devueltos deben tener "foo", pueden tener "bar"
q=+foo +bar q=%2Bfoo%20%2Bbar el artículo devuelto debe tener "foo" Y "bar"
q=-foo +bar q=-foo%20%2Bbar el artículo devuelto debe tener "barra" Y no "foo"
Varias búsquedas de etiquetas
q=tags:bee,bop q=tags:bee,bop devuelve videos con la etiqueta "abeja" O "bop"
q=tags:bee tags:bop q=tags:bee%20tags:bop devuelve videos con la etiqueta "abeja" O "bop"
q=+tags:bee tags:bop q=%2Btags:bee%20tags:bop todos los videos devueltos deben tener la etiqueta "abeja"; también pueden tener la etiqueta "bop"
q=+tags:bee +tags:bop q=%2Btags:bee%20%2Btags:bop todos los videos devueltos tendrán la etiqueta "abeja" Y la etiqueta "bop"

Buscar videos específicos

Si desea limitar su búsqueda a un conjunto específico de videos, puede hacerlo buscando en id:

Ejemplo: Esta solicitud devuelve videos con ID 123456789 , 987654321 y 48376387

      q=id:123456789%20id:987654321%20id:48376387

Buscar por estado

Puedes realizar o filtrar búsquedas por el estado del video usando el parámetro:

      q=state:ACTIVE( | INACTIVE | PENDING | DELETED)[3]

Notas

  • [3] La búsqueda de videos BORRADOS solo está disponible para videos eliminados en los últimos 10 días (la hora actual menos 10 días), y solo a través del CMS API (no la API de reproducción).

Derivado

Se admite la derivación, pero no búsquedas de palabras parciales. Por ejemplo, q=name:ban debe devolver videos con los nombres "Parking Ban Announced " o "Parking to be Banned " o "City Banning Parking " pero no "Bank Holiday " o "Bandit Captured".

Espacios / Caracteres especiales

La CMS API generalmente maneja caracteres especiales en cadenas de búsqueda, con un par de excepciones:

  • Los espacios no están permitidos y deben codificarse como %20. (Sin codificar + Los letreros también pueden reemplazar espacios, pero esto puede generar confusión en sus consultas, ya que + también puede indicar que se requiere un término. Ver sintaxis requerida / excluida)

    Por ejemplo, para buscar "mi video favorito" en el nombre:

    q=name:"my%20favorite%20video"

  • Para buscar un literal + firmar o usar el + para indicar que los videos devueltos deber incluir un término, debe codificar el + como %2B:

    Buscando videos que deben contener "two+two" en el campo de nombre

    q=name:two%2Btwo

    Buscando videos que deben contener "heron" en el campo de nombre

    q=%2Bname:heron

  • Es posible que algunos agentes no manejen las comillas literales correctamente, por lo que es más seguro codificar "foo" como %22foo%22

Para solicitudes únicas, puede utilizar Brightcove Learning's codificador de cadena para codificar sus cadenas de búsqueda. Para las aplicaciones, deberá encontrar una función de codificación URI en el idioma que está utilizando.

Términos de búsqueda de clips

Los clips son videos creados a partir de secciones de otros videos. Los clips pueden ser generados por Redes sociales de Brightcove , y otros medios estarán disponibles en el futuro. Hay algunos términos de búsqueda especiales que puede utilizar para encontrar clips generados en una cuenta:

  • q=%2Bis_clip:true- devuelve solo clips
  • q=%2Bis_clip:false- devuelve solo no clips
  • q=%2Bclip_source_video_id:video_id- devuelve clips generados a partir del video especificado

Palabras ignoradas

Algunas palabras se ignoran en las cadenas de búsqueda porque son tan comunes que es probable que devuelvan muchos resultados que no están relacionados con lo que realmente está buscando. A continuación se muestra una lista de palabras que se ignoran en la búsqueda:

"a", "una", "y", "son", "como", "en", "ser", "pero", "por", "para", "si", "en", "en "," es "," eso "," no "," no "," de "," en "," o "," tal "," ese "," el "," su "," entonces ", "allí", "estos", "ellos", "esto", "a", "estaba", "será", "con"

Problemas conocidos

  • Resultados duplicados: en ciertos casos, algunos elementos de los resultados de la búsqueda pueden aparecer más de una vez.

    Solución alterna: para evitar resultados de búsqueda duplicados, utilice siempre un sort parámetro en sus solicitudes de búsqueda.