Autorizacao Ginga CC WebServices (1.0.1)

Download OpenAPI specification:Download

Esta API estabelece o vínculo inicial entre um cliente não-local ou um cliente local stand-alone e o Ginga CC WebServices. Somente a partir do momento em que este vínculo é estabelecido, as demais APIs (descritas em 8.2 a 8.7) podem ser utilizadas por esses clientes.

Produzida por Raphael Abreu, equipe UFF (raphael.s.abreu@midiacom.uff.br)

Autorizacao de clientes

Estabelecem o vínculo inicial entre um cliente não-local ou um cliente local stand-alone e o Ginga CC WebServices.

Requisita o estado de autorizacao do cliente.

Requisita o estado de autorizacao do cliente (identifcado por meio de seu clientid), estabelecendo o vínculo inicial entre este e o Ginga CC WebServices

query Parameters
clientid
required
string

Identificador do cliente.

display-name
required
string

Nome do cliente exibido no pop-up de autorizacao do usuário.

pm
string
Enum: "qrcode" "kex"

Método de pareamento (conforme 7.3) para clientes não locais.

kxp
string

Algoritmo de geracao colaborativa de chave simétrica (opcional se pm=kex).

key
string

Chave parcial do lado do cliente (opcional se pm=kex).

Responses

Response samples

Content type
application/json
Example
{
  • "refreshToken": "<string>"
}

Obtencao do token de acesso.

Autentica um cliente e concede acesso às demais API do Ginga CC WebServices.

Observacao:

No primeiro acesso a esta API por clientes não locais, após o passo de autorizacao inicial via 8.1.1 (e ainda via HTTP), o conteúdo retornado no corpo da resposta (objeto JSON) vem criptografado com a chave simétrica estabelecida durante o pareamento. Nos acessos subsequentes, (via HTTPS), esta encriptacao não é mais necessária, bastando aquela que é intrínseca ao HTTPS (comunicacao SSL utilizando o certifcado retornado em serverCert). A chave simétrica pode ser descartada, e apenas o refresh-token é sufciente

Usado quando um cliente não local faz o seu primeiro acesso, e ainda não possui um refresh-token. Consiste na resposta ao campo challenge enviado pelo servidor na API 8.1.1. Esta resposta é gerada com os seguintes passos:

  1. decodifcar o challenge, do formato base64 para um bufer binário;
  2. decriptografar com a chave simétrica;
  3. calcular hash SHA-256 do bufer resultante;
  4. criptografar o hash obtido, utilizando a chave simétrica, e novamente converter para base64 ao fnal.
query Parameters
clientid
required
string

Identificador do cliente.

challenge-response
string

Resposta ao desafio (challenge) enviado pelo servidor na API.

refresh-token
string

Token de atualizacao utilizado em acessos subsequentes.

Responses

Response samples

Content type
application/json
{
  • "accessToken": "<jwt-token>",
  • "tokenType": "Bearer",
  • "expiresIn": "<seconds>",
  • "refreshToken": "<string>",
  • "serverCert": "<X.509 cert>"
}

Acesso ao contexto DTV

Retorna informações do serviço DTV selecionado

Retorna informações do serviço DTV selecionado no momento, assim como de seu transport stream de origem

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "serviceContextId": "string",
  • "serviceName": "string",
  • "transportStreamId": 0,
  • "originalNetworkId": 0,
  • "serviceId": 0
}

obtencao da lista dos serviços DTV disponíveis

Retorna a lista de todos serviços DTV presentes na atual lista de canais do receptor.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "serviceList": [
    ]
}

Seleciona o serviço identifcado pela tripla <service-context-id>.

A estrutura segue a tripla a seguir: ..

Onde corresponde à numeracao do canal físico e os demais camposseguem as defnições da ABNT NBR 15603-2, Anexo G. Assim, equivale ao valor expresso pelos 3 bits menos signifcativos de service_id, somado de uma unidade. Em cada fragmento da tripla, dígitos zero à esquerda podem ser desconsiderados. Por exemplo, as formas “29.04.01” e “29.4.1” são equivalentes.

Em todas as APIs que utilizam em um fragmento da URL, é válido não apenas utilizar a tripla de identifcacao como também utilizar a string literal current-service, que serve como um alias para o serviço atualmente selecionado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "serviceContextId": "string",
  • "serviceName": "string",
  • "transportStreamId": 0,
  • "originalNetworkId": 0,
  • "serviceId": 0
}

obtenção da lista dos componentes do serviço DTV atual

Retorna informações sobre os componentes disponíveis em um serviço, incluindo o estado

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "components": [
    ]
}

obtenção de informações de um componente do serviço DTV atual

Retorna informações detalhadas de um componente do serviço atual, incluindo o estado

Authorizations:
bearerAuth
path Parameters
comp-tag
required
string

Identificador da tag do componente.

Responses

Response samples

Content type
application/json
{
  • "streamContent": "string",
  • "componentType": "string",
  • "componentTag": "string",
  • "ISO639languageCode": "string",
  • "pid": 0,
  • "state": "started",
  • "pos": {
    },
  • "vol": 0
}

Operação sobre um componente do serviço DTV atual

Inicia, interrompe, pausa e/ou altera o estado de exibição de um determinado componente do serviço.

Authorizations:
bearerAuth
path Parameters
comp-tag
required
string

Identificador da tag do componente.

Request Body schema: application/json

Operações a serem realizadas no componente.

action
string
Enum: "start" "stop" "pause"

Ação a ser realizada (iniciar, parar ou pausar).

object

Posição e tamanho da reprodução do componente na tela.

vol
integer

Volume da reprodução do componente.

Responses

Request samples

Content type
application/json
{
  • "action": "start",
  • "pos": {
    },
  • "vol": 0
}

Response samples

Content type
application/json
{
  • "streamContent": "string",
  • "componentType": "string",
  • "componentTag": "string",
  • "ISO639languageCode": "string",
  • "pid": 0,
  • "state": "started",
  • "pos": {
    },
  • "vol": 0
}

Comunicação com ambiente de execução Ginga

Obtenção da lista de aplicações interativas disponíveis em um serviço

Lista as aplicações interativas Ginga disponíveis no serviço especificado.

Observação:

Toda aplicação que já tenha sido transmitida e que esteja atualmente persistida no AppCatUI, pode ser listada por esta API. Ou seja, não se restringe apenas às aplicações listadas na AIT atual. No caso do {service-context-id} ser diferente do serviço atualmente selecionado, apenas aplicações persistidas no AppCatUI serão retornadas.

O "entryPoint" é uma URL, indicando que o conteúdo da aplicação pode estar na web ou no DSM-CC da emissora.

Se não houver aplicações interativas Ginga vinculadas ao serviço especificado, a API deve retornar uma lista vazia.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

Identificador do contexto do serviço.

Responses

Response samples

Content type
application/json
{
  • "apps": [
    ]
}

Obtenção de informações de uma aplicação interativa

Retorna as informações detalhadas da sinalização de uma aplicação interativa Ginga.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

Identificador do contexto do serviço.

appid
required
string

Identificador da aplicação.

Responses

Response samples

Content type
application/json
{
  • "appid": "string",
  • "name": "string",
  • "type": "Ginga-HTML5",
  • "controlCode": "string",
  • "state": "running",
  • "entryPoint": "string"
}

Controle de uma aplicação interativa

Inicia ou interrompe a execução de uma aplicação interativa Ginga.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

Identificador do contexto do serviço.

appid
required
string

Identificador da aplicação.

Request Body schema: application/json

Ação a ser realizada na aplicação.

action
string
Enum: "start" "stop"

Ação a ser realizada (iniciar ou parar).

Responses

Request samples

Content type
application/json
{
  • "action": "start"
}

Response samples

Content type
application/json
{
  • "appid": "string",
  • "name": "string",
  • "type": "Ginga-HTML5",
  • "controlCode": "string",
  • "state": "running",
  • "entryPoint": "string"
}

Obtenção de propriedades definidas por uma aplicação interativa

Permite obter o valor de uma propriedade declarada em um nó de aplicação Ginga-NCL (ou todas as propriedades declaradas neste nó). O nó em questão pode ser o nó 'application/x-ginga-settings'.

Se var-name não estiver especificado, e se não houver propriedades definidas, o campo "nodeProperties" do retorno da API será uma lista vazia.

Authorizations:
bearerAuth
path Parameters
appid
required
string

Identificador da aplicação.

node-id
required
string

Identificador do nó.

query Parameters
var-name
string

Nome da propriedade do nó.

Responses

Response samples

Content type
application/json
"string"

Leitura de valores persistidos por aplicações interativas

Permite a leitura de um valor persistido por uma aplicação interativa Ginga.

Se var-name não estiver especificado, e se não houver valores persistidos, o campo "persistentData" do retorno da API será uma lista vazia.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

Identificador do contexto do serviço.

appid
required
string

Identificador da aplicação.

query Parameters
var-name
string

Nome da variável persistente.

Responses

Response samples

Content type
application/json
"string"

Escrita de valores na área de persistência de aplicações interativas

Permite escrever (adicionando ou substituindo) um dado na área de persistência de aplicações Ginga, de modo que possa ser posteriormente lido por estas aplicações.

Utiliza-se o parâmetro de query var-name para identificar o dado, e o valor do campo "varValue" no corpo da mensagem para identificar o novo valor a ser atribuído a este dado. Se este último for omitido, a operação deve excluir a variável da área de persistência.

Variáveis com os prefixos "channel." e "service." seguem o escopo identificado pelo {service-context-id}, escrevendo valores na área de persistência correspondente ao canal e ao serviço em questão.

Assim como em 8.3.5, as variáveis persistentes devem ser prefixadas por "channel.", "service." ou "shared.".

Toda aplicação que já tenha sido transmitida e que esteja atualmente persistida no AppCatUI, pode ser referenciada por esta API. Ou seja, não se restringe apenas às aplicações listadas na AIT atual. No caso do {service-context-id} ser diferente do serviço atualmente selecionado, apenas aplicações persistidas no AppCatUI e variáveis cuja duração se estenda ao serviço corrente no momento da escrita podem ser referenciadas.

As variáveis escritas por ambos os formatos de requisição podem ser lidas pelas aplicações normalmente, independentemente do {appid}. No entanto, uma variável escrita pelo formato (2) não pode ser lida pelo formato (1) da API de leitura por não ficar associada a nenhum {appid} em particular, enquanto que o contrário pode sim ser aplicado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

Identificador do contexto do serviço.

appid
required
string

Identificador da aplicação.

query Parameters
var-name
required
string

Nome da variável persistente.

Request Body schema: application/json

Valor a ser persistido.

varValue
string

Valor da variável persistente.

Responses

Request samples

Content type
application/json
{
  • "varValue": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "value": "string"
}

Leitura de valores persistidos por aplicações interativas (Ginga)

Permite a leitura de um valor persistido por uma aplicação interativa Ginga, utilizando o identificador "ginga" em vez do appid.

Se var-name não estiver especificado, e se não houver valores persistidos, o campo "persistentData" do retorno da API será uma lista vazia.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

Identificador do contexto do serviço.

query Parameters
var-name
string

Nome da variável persistente.

Responses

Response samples

Content type
application/json
"string"

Escrita de valores na área de persistência de aplicações interativas (Ginga)

Permite escrever (adicionando ou substituindo) um dado na área de persistência de aplicações Ginga, utilizando o identificador "ginga" em vez do appid.

Utiliza-se o parâmetro de query var-name para identificar o dado, e o valor do campo "varValue" no corpo da mensagem para identificar o novo valor a ser atribuído a este dado. Se este último for omitido, a operação deve excluir a variável da área de persistência.

Variáveis com os prefixos "channel." e "service." seguem o escopo identificado pelo {service-context-id}, escrevendo valores na área de persistência correspondente ao canal e ao serviço em questão.

Toda aplicação que já tenha sido transmitida e que esteja atualmente persistida no AppCatUI, pode ser referenciada por esta API. Ou seja, não se restringe apenas às aplicações listadas na AIT atual. No caso do {service-context-id} ser diferente do serviço atualmente selecionado, apenas aplicações persistidas no AppCatUI e variáveis cuja duração se estenda ao serviço corrente no momento da escrita podem ser referenciadas.

As variáveis escritas por ambos os formatos de requisição podem ser lidas pelas aplicações normalmente, independentemente do {appid}. No entanto, uma variável escrita pelo formato (2) não pode ser lida pelo formato (1) da API de leitura por não ficar associada a nenhum {appid} em particular, enquanto que o contrário pode sim ser aplicado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

Identificador do contexto do serviço.

query Parameters
var-name
required
string

Nome da variável persistente.

Request Body schema: application/json

Valor a ser persistido.

varValue
string

Valor da variável persistente.

Responses

Request samples

Content type
application/json
{
  • "varValue": "string"
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "value": "string"
}

obtenção de arquivos

Permite acessar a estrutura e o conteúdo de arquivos transmitidos no carrossel DSM-CC de uma aplicação Ginga.

Authorizations:
bearerAuth
path Parameters
app-id
required
string

Identificador do aplicativo.

query Parameters
path
string

Caminho do diretório ou arquivo que se deseja acessar, a partir do diretório-base (base_directory do ginga_application_location_descriptor) da aplicação. O uso do caractere ‘/’ no início do path é opcional, e mesmo com seu uso deve ser retornado o path a partir do diretório-base

Responses

Response samples

Content type
No sample

Acesso a arquivos em um carrossel DSM-CC

Permite acessar a estrutura e o conteúdo de arquivos transmitidos em um carrossel DSM-CC. Para isso, utilizam-se component-tag e carousel-id para identificá-los.

Caso o carrossel, especificado por carousel-id, não esteja carregado ou a sua descarga ainda não esteja concluída, o erro 301 é retornado imediatamente e a implementação do middleware fica responsável por iniciar a descarga do carrossel em questão, caso ela ainda não tenha sido iniciada.

Authorizations:
bearerAuth
path Parameters
component-tag
required
string

Tag do componente DSM-CC.

carousel-id
required
string

Identificador do carrossel DSM-CC.

query Parameters
path
string

Caminho do diretório ou arquivo que se deseja acessar.

Responses

Response samples

Content type
No sample

Registro para a recepção de stream events DSM-CC

Permite registrar-se como um listener para a recepção de stream events transmitidos em um carrossel DSM-CC identificado.

Abre um socket server em uma porta atribuída dinamicamente e devolve a informação necessária para que a aplicação possa conectar-se e receber os stream events (por exemplo, em Ginga-NCL via módulo Lua tcp; ou em HTML5 via WebSocket).

A quantidade de listeners/filtros disponibilizados pela plataforma para esta funcionalidade fica a critério da implementação do receptor DTVi.

Authorizations:
bearerAuth
path Parameters
carousel-id
required
string

Identificador do carrossel DSM-CC.

query Parameters
protocol
string
Enum: "tcp" "websocket"

Protocolo de comunicação (tcp ou websocket). O valor default é "tcp".

Responses

Response samples

Content type
application/json
Example
{
  • "handle": "string",
  • "host": "string",
  • "port": 0
}

Cancelamento de filtro de stream events DSM-CC

Permite cancelar um listener de stream events, previamente registrado atraves da API 8.3.9

Authorizations:
bearerAuth
path Parameters
handle
required
string

Identificador do listener (handle) a ser cancelado.

Responses

Response samples

Content type
application/json
{ }

Listar nós em um documento NCL

Lista nós (medias, contexts e switches) em um documento NCL transportado em uma aplicação Ginga-NCL que esteja em execução.

Authorizations:
bearerAuth
path Parameters
appid
required
string

ID da aplicação Ginga-NCL

query Parameters
document-id
string

ID do documento NCL a ser verificado

composite-id
string

ID do nó de composição contido no documento

Responses

Response samples

Content type
application/json
{
  • "nodes": [
    ]
}

Executar uma transição na máquina de estados de um nó

Permite executar uma transição na máquina de estados de um dos eventos monitorados de um nó em um documento NCL transportado em uma aplicação Ginga-NCL que esteja em execução.

Authorizations:
bearerAuth
path Parameters
appid
required
string

ID da aplicação Ginga-NCL

document-id
required
string

ID do documento NCL a ser verificado

node-id
required
string

ID do nó

Request Body schema: application/json
action
string
Enum: "start" "stop" "pause" "resume" "abort" "select" "set" "startPreparation" "stopPreparation" "abortPreparation" "pausePreparation" "resumePreparation"
interface
string
value
string

Responses

Request samples

Content type
application/json
{
  • "action": "start",
  • "interface": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "id": "node1",
  • "type": "media",
  • "mimeType": "video/mp4",
  • "presentationEvent": {
    },
  • "preparationEvent": {
    },
  • "interfaces": [
    ]
}

Executar uma transição na máquina de estados de um nó

Permite executar uma transição na máquina de estados de um dos eventos monitorados de um nó em um documento NCL transportado em uma aplicação Ginga-NCL que esteja em execução.

Authorizations:
bearerAuth
path Parameters
appid
required
string

ID da aplicação Ginga-NCL

node-id
required
string

ID do nó

Request Body schema: application/json
action
string
Enum: "start" "stop" "pause" "resume" "abort" "select" "set" "startPreparation" "stopPreparation" "abortPreparation" "pausePreparation" "resumePreparation"
interface
string
value
string

Responses

Request samples

Content type
application/json
{
  • "action": "start",
  • "interface": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "id": "node1",
  • "type": "media",
  • "mimeType": "video/mp4",
  • "presentationEvent": {
    },
  • "preparationEvent": {
    },
  • "interfaces": [
    ]
}

Reserva e liberação de teclas para uso por uma aplicação

Permite que uma aplicação Ginga registre uma nova lista de grupos e subgrupos de teclas para a sua utilização. Grupos e subgrupos de teclas são representados de acordo com a semântica da variável "channel.keyCapture" do NCL (ver ABNT NBR 15606-2).

A identificação individual de cada tecla depende do ambiente de execução, Ginga-NCL ou Ginga-HTML5, e do conjunto de teclas suportados pelo motor HTML5, no caso de aplicações Ginga-HTML5 (ver ABNT NBR 15606-10).

A atribuição desta lista não é cumulativa, mas sim uma substituição simples da lista anterior.

Observação:

Caso o valor de "keyset" seja uma lista vazia, todas as teclas reservadas são liberadas.

Authorizations:
bearerAuth
Request Body schema: application/json
keyset
Array of strings
Items Enum: "numeric_keys" "selection_keys" "cursor_keys" "color_keys" "others"

Lista com nomes de grupos e/ou subgrupos de teclas a serem reservados. Nomes de teclas individuais não são permitidos.

Responses

Request samples

Content type
application/json
{
  • "keyset": [
    ]
}

Response samples

Content type
application/json
{
  • "keyset": [
    ]
}

Verificação da lista de teclas reservadas para a aplicação

Permite que uma aplicação Ginga verifique a lista de grupos e subgrupos de teclas atualmente reservados para a sua utilização.

Esta API deve ser acessível apenas a clientes locais associados.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "keyset": [
    ]
}

Envio de comandos de edição a uma aplicação Ginga-NCL em execução

Permite o envio de um comando de edição a uma aplicação Ginga-NCL em execução. Comandos de edição permitem a alteração do conteúdo e comportamento de uma aplicação Ginga-NCL em tempo de execução. Esta API oferece o mesmo comportamento da classe de eventos 'edit' do módulo Lua 'event', conforme descrito em ABNT NBR 15606-2. Desta forma, comandos de edição enviados por meio desta API alteram apenas a apresentação do documento e não o documento em si.

Authorizations:
bearerAuth
path Parameters
appid
required
string

Identificador da aplicação Ginga-NCL.

document-id
required
string

Identificador do documento NCL.

command
required
string
Enum: "addRegion" "addRegionBase" "addRule" "addRuleBase" "addFont" "addFontBase" "addConnector" "addConnectorBase" "addDescriptor" "addDescriptorSwitch" "addDescriptorBase" "addTransition" "addTransitionBase" "addImportBase" "addImportedDocumentBase" "addImportNCL" "addNode" "addLink" "addInterface" "removeRegion" "removeRegionBase" "removeRule" "removeRuleBase" "removeFont" "removeFontBase" "removeConnector" "removeConnectorBase" "removeDescriptor" "removeDescriptorSwitch" "removeDescriptorBase" "removeTransition" "removeTransitionBase" "removeImportBase" "removeImportedDocumentBase" "removeImportNCL" "removeNode" "removeLink" "removeInterface" "setPropertyValue"

Comando de edição a ser executado.

Request Body schema: application/json

Parâmetros do comando de edição.

One of
parentId
string

Identificador do nó pai.

elementId
string

Identificador do elemento.

Responses

Request samples

Content type
application/json
{
  • "nodeId": "string",
  • "propertyId": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "parentId": "string",
  • "elementId": "string"
}

Envio de comandos de edição a uma aplicação Ginga-NCL em execução

Permite o envio de um comando de edição a uma aplicação Ginga-NCL em execução. Comandos de edição permitem a alteração do conteúdo e comportamento de uma aplicação Ginga-NCL em tempo de execução. Esta API oferece o mesmo comportamento da classe de eventos 'edit' do módulo Lua 'event', conforme descrito em ABNT NBR 15606-2. Desta forma, comandos de edição enviados por meio desta API alteram apenas a apresentação do documento e não o documento em si.

Assume-se o documento principal (ponto de entrada) da aplicação.

Authorizations:
bearerAuth
path Parameters
appid
required
string

Identificador da aplicação Ginga-NCL.

command
required
string
Enum: "addRegion" "addRegionBase" "addRule" "addRuleBase" "addFont" "addFontBase" "addConnector" "addConnectorBase" "addDescriptor" "addDescriptorSwitch" "addDescriptorBase" "addTransition" "addTransitionBase" "addImportBase" "addImportedDocumentBase" "addImportNCL" "addNode" "addLink" "addInterface" "removeRegion" "removeRegionBase" "removeRule" "removeRuleBase" "removeFont" "removeFontBase" "removeConnector" "removeConnectorBase" "removeDescriptor" "removeDescriptorSwitch" "removeDescriptorBase" "removeTransition" "removeTransitionBase" "removeImportBase" "removeImportedDocumentBase" "removeImportNCL" "removeNode" "removeLink" "removeInterface" "setPropertyValue"

Comando de edição a ser executado.

Request Body schema: application/json

Parâmetros do comando de edição.

One of
parentId
string

Identificador do nó pai.

elementId
string

Identificador do elemento.

Responses

Request samples

Content type
application/json
{
  • "nodeId": "string",
  • "propertyId": "string",
  • "value": "string"
}

Response samples

Content type
application/json
{
  • "parentId": "string",
  • "elementId": "string"
}

Acesso direto a um stream

Caso a plataforma seja capaz de filtrar e retransmitir pacotes MPEG-TS transmitidos nos PID especificados, a implementação deve disponibilizar acesso a estes por meio de uma URL definida dinamicamente.

A quantidade de streams simultâneos disponibilizados pela plataforma para esta funcionalidade fica a critério da implementação do receptor DTVi. A implementação do Ginga CC WebServices deve disponibilizar o conteúdo da mídia utilizando RTSP como protocolo de controle, em conjunto com RTP para a entrega dos fluxos de mídia propriamente ditos.

É possível que alguns dos PID especificados estejam ausentes e/ou deixem de ser transmitidos no serviço, comprometendo a retransmissão no fluxo RTSP/RTP dos pacotes MPEG-TS relativos a esses PID. O cliente deve ser capaz de identificar intermitências no fluxo RTP e deve estar livre para implementar heurísticas de sua escolha, a fim de se desconectar do servidor RTSP/RTP, no caso de detecção de falhas na transmissão.

Authorizations:
bearerAuth
Request Body schema: application/json

Lista de PIDs a serem retransmitidos.

pids
required
Array of integers

Lista de PIDs a serem retransmitidos.

Responses

Request samples

Content type
application/json
{
  • "pids": [
    ]
}

Response samples

Content type
application/json
{
  • "handle": "string",
  • "streamUrl": "string",
  • "mimeType": "string"
}

Controle de um exibidor de mídia específico

Inicia, interrompe, pausa e/ou altera o estado de reprodução de um exibidor de mídia.

As operações a serem realizadas são especificadas no corpo da mensagem em formato de objeto JSON, seguindo a mesma semântica e o formato definidos em 8.2.6.

O uso do campo "url" permite especificar o conteúdo a ser reproduzido pelo exibidor de mídia, e pode ser omitido caso a exibição já esteja em andamento.

Authorizations:
bearerAuth
path Parameters
player-id
required
string

Identificador do exibidor de mídia.

Request Body schema: application/json

Operações a serem realizadas no exibidor de mídia.

url
string

URL do conteúdo a ser reproduzido.

action
string
Enum: "start" "stop" "pause" "resume"

Ação a ser realizada.

object
vol
integer [ 0 .. 100 ]

Volume do exibidor de mídia (0-100).

currTime
number

Tempo atual da reprodução (ms).

Responses

Request samples

Content type
application/json
{
  • "url": "string",
  • "action": "start",
  • "pos": {
    },
  • "vol": 100,
  • "currTime": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "currentMedia": "string",
  • "state": "preparing",
  • "schemesSupported": [
    ],
  • "formatsSupported": [
    ],
  • "codecsSupported": {
    },
  • "drmsSupported": [
    ],
  • "pos": {
    },
  • "vol": 0,
  • "currTime": 0,
  • "duration": 0
}

Liberação de um recurso de stream

Permite liberar um recurso de stream previamente aberto por meio da API 8.5.1.

Authorizations:
bearerAuth
path Parameters
handle
required
string

Identificador do recurso de stream (handle) a ser liberado.

Responses

Response samples

Content type
application/json
{ }

Acesso a tabelas e metadados SI/PSI

Obtenção da data e hora da emissora

Retorna a hora informada na TOT sendo transmitida no transport stream associado ao serviço atualmente selecionado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "time": "2019-08-24T14:15:22Z"
}

Obtenção dos dados da tabela NIT

Retorna uma estrutura JSON com as informações da NIT transmitida no transport stream associado ao service-context-id especificado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "desc": "string"
}

Obtenção dos dados da tabela SDT

Retorna uma estrutura JSON com as informações da SDT transmitida no transport stream associado ao service-context-id especificado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "desc": "string"
}

Obtenção dos dados da tabela PAT

Retorna uma estrutura JSON com as informações da PAT transmitida no transport stream associado ao service-context-id especificado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "desc": "string"
}

Obtenção dos dados da tabela BAT

Retorna uma estrutura JSON com as informações da BAT transmitida no transport stream associado ao service-context-id especificado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "desc": "string"
}

Obtenção dos dados da tabela PMT

Retorna uma estrutura JSON com as informações da PMT correspondente ao service-context-id especificado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "desc": "string"
}

Obtenção dos dados da grade de programação

Retorna uma estrutura JSON com as informações da grade de programação (EPG) correspondente ao service-context-id especificado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "present": [
    ],
  • "following": [
    ],
  • "schedule": [
    ]
}

Obtenção dos dados da grade de programação de todos os serviços

Retorna uma estrutura JSON consolidada com informações da grade de programação (EPG) que tenham sido capturadas nos demais canais da lista.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "epgList": [
    ]
}

Obtenção dos dados da tabela BIT

Retorna uma estrutura JSON com as informações da BIT transmitida no transport stream associado ao service-context-id especificado.

Authorizations:
bearerAuth
path Parameters
service-context-id
required
string

The context ID of the service.

Responses

Response samples

Content type
application/json
{
  • "desc": "string"
}

Acesso a conteúdo multimídia de radiodifusão

Obtenção dos exibidores de mídia disponíveis

Retorna uma lista com os exibidores de mídia (players) disponíveis no receptor.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "players": [
    ]
}

Obtenção das informações de um exibidor de mídia específico

Retorna informações sobre um exibidor de mídia específico, identificado pelo seu ID.

Authorizations:
bearerAuth
path Parameters
player-id
required
string

Identificador do exibidor de mídia.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "currentMedia": "string",
  • "state": "preparing",
  • "schemesSupported": [
    ],
  • "formatsSupported": [
    ],
  • "codecsSupported": {
    },
  • "drmsSupported": [
    ],
  • "pos": {
    },
  • "vol": 0,
  • "currTime": 0,
  • "duration": 0
}

Integração com a plataforma e o ambiente doméstico

Consulta a características, capacidades e recursos da plataforma

Permite consultar um conjunto de características, capacidades e recursos da plataforma, como: tamanho físico de tela, resolução das camadas de exibição, dispositivos de entrada e de rede compatíveis etc.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "screenSize": "string",
  • "displayResolutions": [
    ],
  • "inputDevices": [
    ],
  • "networkInterfaces": [
    ],
  • "tuners": [
    ],
  • "codecs": [
    ],
  • "storageCapacity": 0,
  • "memoryCapacity": 0,
  • "operatingSystem": "string"
}

Consulta a sistemas de DRM suportados na plataforma

Permite consultar os sistemas de DRM suportados na plataforma, e por meio de quais bibliotecas é possível decodificar e exibir o conteúdo multimídia criptografado.

Desta forma, a aplicação é capaz de consultar primeiro as capacidades da plataforma, e implementar adequadamente a decodificação e a exibição do conteúdo multimídia.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "systems": [
    ]
}

Registro de filtros para aplicações-alvo

Oferece uma forma padronizada que permite a uma aplicação instalada no receptor (independentemente de sua origem e ambiente de execução) registrar os filtros de URL para o acesso posterior via deep links.

Os filtros de URL são registrados obedecendo ao padrão ":///".

Request Body schema: application/json
targetId
required
string

Identificador único da aplicação-alvo.

urlFilters
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "targetId": "string",
  • "urlFilters": [
    ]
}

Response samples

Content type
application/json
{
  • "targetId": "string",
  • "state": "starting",
  • "urlFilters": [
    ]
}

Listagem das aplicações-alvo instaladas no receptor

Lista as aplicações-alvo atualmente instaladas, com seu estado atual e filtros de URL registrados (de acordo com o padrão ":///").

A API não lista todas as aplicações-alvo instaladas no receptor DTVi indiscriminadamente, mas sim aquelas que tenham registrado filtros compatíveis com o parâmetro obrigatório .

O parâmetro opcional permite restringir o filtro ainda mais, para incluir apenas a aplicação-alvo especificada.

Observação:

Todas as aplicações registradas por meio da API 8.6.3 devem ser listadas por meio desta API. Adicionalmente, caso a plataforma suporte o registro de filtros de deep links por meio de outros mecanismos, as aplicações que fizeram esse registro podem também ser listadas.

Se não houver aplicações-alvo atualmente instaladas, a API deve retornar uma lista vazia.

Authorizations:
bearerAuth
path Parameters
target-id
required
string

Identificador da aplicação-alvo.

query Parameters
url
required
string

URL a ser testada em busca de aplicações com filtros compatíveis registrados.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Listagem das aplicações-alvo instaladas no receptor

Lista as aplicações-alvo atualmente instaladas, com seu estado atual e filtros de URL registrados (de acordo com o padrão ":///").

A API não lista todas as aplicações-alvo instaladas no receptor DTVi indiscriminadamente, mas sim aquelas que tenham registrado filtros compatíveis com o parâmetro obrigatório .

Observação:

Todas as aplicações registradas por meio da API 8.6.3 devem ser listadas por meio desta API. Adicionalmente, caso a plataforma suporte o registro de filtros de deep links por meio de outros mecanismos, as aplicações que fizeram esse registro podem também ser listadas.

Se não houver aplicações-alvo atualmente instaladas, a API deve retornar uma lista vazia.

Authorizations:
bearerAuth
query Parameters
url
required
string

URL a ser testada em busca de aplicações com filtros compatíveis registrados.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Execução de uma aplicação-alvo

Permite (1) ativar uma aplicação-alvo, a partir de uma URL customizada (que pode conter a ação de deep link a ser efetuada), ou (2) alterar o estado e/ou a prioridade de uma aplicação-alvo por meio de seu targetId.

Observação:

Alguns comportamentos do uso de deep links ficam facultativos à implementação do receptor. Exemplos:

  • A exibição ou não de um pop-up de confirmação antes da execução do deep link (e a gravação ou não dessa primeira confirmação para usos subsequentes);
  • O encerramento ou não do contexto de serviço DTV (e, por conseguinte da aplicação Ginga atual), automaticamente quando da execução de um deep link.
  • Mesmo que a aplicação específica tratadora de um deep link não esteja instalada, o sistema operacional do receptor pode ser capaz de identificar sua origem, e executar o portal ou loja de aplicações que permita ao usuário fazer a instalação desta aplicação.
Authorizations:
bearerAuth
Request Body schema: application/json
One of
url
required
string

URL customizada para ativar a aplicação-alvo.

Responses

Request samples

Content type
application/json
Example
{
  • "url": "string"
}

Response samples

Content type
application/json
{
  • "targetId": "string",
  • "state": "starting",
  • "urlFilters": [
    ]
}

Consulta de um deep link

Oferece uma forma padronizada que permite que uma aplicação-alvo, após ativada a partir de uma URL customizada, obtenha o valor desta última URL.

Desta forma, a aplicação pode, durante sua inicialização, tratar uma ação de deep link a ser efetuada.

Authorizations:
bearerAuth
path Parameters
target-id
required
string

Identificador da aplicação-alvo.

Responses

Response samples

Content type
application/json
{
  • "url": "string"
}

APIs de segurança do radiodifusor

Registro de contexto de serviço para uso de APIs Ginga CC WebServices

Vincula o serviço atualmente selecionado como um contexto de serviço passível de ser acessado pelas APIs do Ginga CC WebServices.

Observação:

Esta API pressupõe uso obrigatório de parâmetros de cabeçalho na requisição HTTP. O parâmetro "bind-token" faz com que seu valor seja acrescentado a uma lista de tokens autorizados, associados ao serviço em questão.

Obrigatoriamente esta API só deve ser válida quando chamada por meio de um cliente local associado. Ou seja, quando a emissora quiser autorizar uma aplicação presente no ambiente doméstico, a acessar seu conteúdo (e, sobretudo, identificá-lo corretamente), a autorização é efetuada por meio de uma aplicação Ginga (Ginga-HTML5 ou Ginga-NCL) enviada em seu sinal, que fará a requisição a esta API do Ginga CC WebServices.

Uma vez feito este processo de vinculação, aplicações no ambiente doméstico (devidamente autenticadas) passarão a ter este privilégio de acessar o serviço da emissora, sem depender que a aplicação Ginga entre em execução novamente, economizando recursos.

Authorizations:
bearerAuth
header Parameters
bind-token
required
string

JWT token para autorização.

Responses

Response samples

Content type
application/json
{
  • "serviceContextId": "string",
  • "bindTokens": [
    ]
}

Acesso a um contexto de serviço previamente vinculado

Obtém a lista de serviços que possuam um token idêntico ao identificado no cabeçalho, na sua lista de tokens vinculados e válidos. Um retorno válido só é feito quando a autenticação do token é bem-sucedida. As demais informações do contexto da emissora também são retornadas.

A partir deste momento, o ambiente de execução da aplicação chamadora desta API (ambiente doméstico) é considerado devidamente autorizado, e será capaz de efetuar outras ações, como consulta de metadados de tabelas e reprodução de mídias transmitidas no serviço.

Observação:

Na prática, supõe-se que os tokens serão obtidos a partir de um serviço remoto, acessado tanto pelo cliente local associado quanto pelos clientes locais stand-alone e não-locais.

Authorizations:
bearerAuth
header Parameters
bind-token
required
string

JWT token para autorização.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Revogação de token para uso de APIs Ginga CC WebServices

Revoga o token enviado no cabeçalho da requisição, efetivamente negando o acesso às API do Ginga CC WebServices a qualquer cliente que utilize este mesmo token.

Esta API só deve ser válida quando chamada por meio de um cliente local associado. Ou seja, quando a emissora quiser revogar o acesso de aplicações presentes no ambiente doméstico, ou forçá-las a adquirir um novo token, isto é realizado por meio de uma aplicação Ginga (Ginga-HTML5 ou Ginga-NCL) enviada em seu sinal, que fará a requisição a esta API do Ginga CC WebServices

Observação:

Esta API requer o uso de parâmetros de cabeçalho na requisição HTTP.

Em relação aos recursos compartilhados utilizados pela aplicação bloqueada, ver 7.4.

Esta API indica sucesso, caso o bind-token não esteja associado. Isto é, caso não tenha sido previamente cadastrado ou já tenha sido revogado - seja por chamada anterior a esta API, ou porque atingiu a sua data de expiração.

Authorizations:
bearerAuth
header Parameters
bind-token
required
string

JWT token para autorização.

Responses

Response samples

Content type
application/json
{
  • "serviceContextId": "string",
  • "bindTokens": [
    ]
}