Pesquisar ativos

Visão geral

A API do Frame.io oferece suporte à pesquisa profunda e facetada de ativos em uma conta inteira, espelhando a funcionalidade no aplicativo web.Embora os filtros mais úteis sejam equipe, projeto e status, os filtros e a classificação podem ser combinados de maneiras únicas para produzir conjuntos extremamente específicos orientados por API.Em geral, todos os filtros, exceto account_id, q (consulta) e sort, seguem a mesma estrutura e todos são explicados abaixo. search-filters.png

Incompatibilidade entre tamanhos de página solicitados e retornados

Desde março de 2022, há um bug conhecido que afeta a função de paginação da API de pesquisa.Até que esse bug seja corrigido, não recomendamos usar a API de pesquisa para iterar em várias páginas de resultados (ou seja, mais de 100 ativos), porque o tamanho da página solicitada pode não corresponder à contagem real de ativos retornados.

Padrões

A solicitação da API para acionar uma pesquisa é sempre a mesma:

É sempre a mesma solicitação

POST para https://api.frame.io/v2/search/library

Se não for fornecido explicitamente, os valores padrão para ajuste de pesquisa são os seguintes:

AtributoValor padrãoDescrição
page_size1010 ativos serão retornados por página.
page1A consulta retornará a primeira página da resposta.
sortrelevance”Relevância” tenta ordenar ativos com base em um conjunto de atributos especificamente ajustados.Na ausência de uma consulta, a relevância é fortemente influenciada pela data de upload mais recente.

Sobre este guia

Este guia explica o processo de criação de uma consulta de pesquisa que corresponda a:

  • Ativos dentro de uma conta
  • Que corresponde à consulta "moon"
  • Está em um projeto específico
  • Foi carregado entre 1º e 30 de abril de 2020
  • E foi “Aprovado”

O corpo da nossa pesquisa ficará assim:

1{
2 "account_id": "<account_id>",
3 "q": "moon",
4 "sort": "name",
5 "filter": {
6 "inserted_at": [
7 {
8 "op": "gte",
9 "value": "2020-04-01T04:00:00.000Z"
10 },
11 {
12 "op": "lte",
13 "value": "2020-04-30T03:59:59.999Z"
14 }
15 ],
16 "project_id": {
17 "op": "eq",
18 "value": "<project_id>"
19 },
20 "label": {
21 "op": "eq",
22 "value": "approved"
23 }
24 },
25 "page_size": 10,
26 "page": 1
27}

Conta, consulta e classificação

A Conta (account_id), consulta (q) e sort são os três blocos básicos mais importantes que ficam fora de qualquer atributo de filter em uma consulta de pesquisa.

Contexto da conta

Tecnicamente, o único atributo necessário para realizar uma pesquisa é um account_id.Fazer isso simplesmente obterá todos os ativos (incluindo pastas) na conta, com valores de paginação padrão (10 ativos por página, começando na página 1).

1{
2 "account_id": "<account_id>"
3}

Pesquisar consulta

O próximo atributo mais comum (e útil) a incluir é a própria consulta.Observação: como a pesquisa da API do Frame.io aceita uma consulta nula, não há necessidade de uma consulta curinga (*).Você está pesquisando algo ou solicitando uma classificação (potencialmente filtrada) de todos os ativos em uma conta.

No nosso caso, vamos pesquisar o termo “moon”.

1{
2 "account_id": "<account_id>",
3 "q": "moon"
4}

Classificação

sort.png

O Frame.io oferece suporte a várias opções de classificação diferentes.A sintaxe para ordem de classificação é semelhante entre as opções:

  • Há uma direção de classificação padrão
  • Para inverter essa direção, adicione o prefixo - negativo ao valor de classificação

Por exemplo, para classificar em ordem alfabética reversa (Z a A), você declararia &quot;sort&quot;: &quot;-name&quot;.A operação de classificação padrão é “Relevância”.Consequentemente, não precisa ser declarada e será assumida se nenhum atributo sort for fornecido.

Opção de classificaçãoAtributoDireção padrão
Relevâncian/dn/d
Data do uploadinserted_atMais antigo primeiro
NomenameDe A a Z.
TamanhofilesizeMenor primeiro
Carregadorcreator.nameDe A a Z.
Assim, conforme criamos nossa consulta, podemos agora adicionar nossa classificação (sort) por name, de A a Z:
1{
2 "account_id": "<account_id>",
3 "q": "moon",
4 "sort": "name"
5}

Filtros e paginação

Os filtros são ao mesmo tempo o recurso mais difícil e mais poderoso da pesquisa de ativos do Frame.io.Os filtros são escritos dentro de um único objeto filter e todos seguem o mesmo padrão de uma operação (op) e um value. Os filtros usam as seguintes abreviações comuns, com opções de equivalência diferentes de “igual a” reservadas para consultas de data e tamanho:

  • eq — igual a
  • lt — menor que
  • gt — maior que
  • lte — menor ou igual a
  • gte — maior ou igual a
  • match — combinação exata, usado apenas para filtros de Carregador e Tipo de arquivo

Por exemplo, um filter para combinação em um project_id conhecido seria construído da seguinte forma:

1{
2 "filter": {
3 "project_id": {
4 "op": "eq",
5 "value": "<project_id>"
6 }
7 }
8}

Opções e operações

A tabela a seguir descreve as opções e operações associadas a cada tipo de filtro.

Opção de filtroAtributoOperações compatíveisValores compatíveis
Arquivadoarchivedeqtrue, false
Data do uploadinserted_ateq, lt, gt, lte, gte&lt;datetime&gt; (ISO-8601, UTC)
Excluídodeletedeqtrue, false
Tipo de arquivofiletypematch<mime type=""></mime>
Particularprivateeqtrue, false
Projetoproject_ideq&lt;project_id&gt;
Tamanhofilesizeeq, lt, gt, lte, gtesize (em bytes)
Statuslabeleqnone, in_progress, needs_review, approved
Equipeteam_ideq&lt;team_id&gt;
Tipoasset_typeeqaudio, document, folder, image, other, stream, video
Carregadorcreator.namematch&lt;name&gt;
O usuário que fez upload deve ser um membro principal da conta para preencher o índice

A pesquisa por criadores que não são mais membros da conta não funcionará, pois esse usuário não está mais no índice de pesquisa de usuários.

Para continuar criando nossa consulta, agora podemos adicionar um filtro para ativos que são:

  • Está em um projeto específico
  • Upload feito entre 1º e 30 de abril de 2020
  • Marcado como “Aprovado”
1{
2 "account_id": "<account_id>",
3 "q": "moon",
4 "sort": "name",
5 "filter": {
6 "inserted_at": [
7 {
8 "op": "gte",
9 "value": "2020-04-01T04:00:00.000Z"
10 },
11 {
12 "op": "lte",
13 "value": "2020-04-28T03:59:59.999Z"
14 }
15 ],
16 "project_id": {
17 "op": "eq",
18 "value": "<project_id>"
19 },
20 "label": {
21 "op": "eq",
22 "value": "approved"
23 }
24 }
25}
Paginação

O ponto de acesso de pesquisa pagina exatamente como qualquer outro ponto de acesso, por meio dos atributos page_size e page que ficam na camada mais externa do corpo da solicitação.Para mais detalhes sobre paginação, consulte o guia separado aqui.