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)
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 (identifcado por meio de seu clientid), estabelecendo o vínculo inicial entre este e o Ginga CC WebServices
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). |
{- "refreshToken": "<string>"
}
Autentica um cliente e concede acesso às demais API do Ginga CC WebServices.
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:
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. |
{- "accessToken": "<jwt-token>",
- "tokenType": "Bearer",
- "expiresIn": "<seconds>",
- "refreshToken": "<string>",
- "serverCert": "<X.509 cert>"
}
Retorna informações do serviço DTV selecionado no momento, assim como de seu transport stream de origem
{- "serviceContextId": "string",
- "serviceName": "string",
- "transportStreamId": 0,
- "originalNetworkId": 0,
- "serviceId": 0
}
Retorna a lista de todos serviços DTV presentes na atual lista de canais do receptor.
{- "serviceList": [
- {
- "serviceContextId": "string",
- "serviceName": "string",
- "transportStreamId": 0,
- "originalNetworkId": 0,
- "serviceId": 0
}
]
}
A estrutura
Onde
Em todas as APIs que utilizam
service-context-id required | string The context ID of the service. |
{- "serviceContextId": "string",
- "serviceName": "string",
- "transportStreamId": 0,
- "originalNetworkId": 0,
- "serviceId": 0
}
Retorna informações sobre os componentes disponíveis em um serviço, incluindo o estado
{- "components": [
- {
- "streamContent": "string",
- "componentType": "string",
- "componentTag": "string",
- "ISO639languageCode": "string",
- "pid": 0,
- "state": "started",
- "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 0
}
]
}
Retorna informações detalhadas de um componente do serviço atual, incluindo o estado
comp-tag required | string Identificador da tag do componente. |
{- "streamContent": "string",
- "componentType": "string",
- "componentTag": "string",
- "ISO639languageCode": "string",
- "pid": 0,
- "state": "started",
- "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 0
}
Inicia, interrompe, pausa e/ou altera o estado de exibição de um determinado componente do serviço.
comp-tag required | string Identificador da tag do componente. |
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. |
{- "action": "start",
- "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 0
}
{- "streamContent": "string",
- "componentType": "string",
- "componentTag": "string",
- "ISO639languageCode": "string",
- "pid": 0,
- "state": "started",
- "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 0
}
Lista as aplicações interativas Ginga disponíveis no serviço especificado.
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.
service-context-id required | string Identificador do contexto do serviço. |
{- "apps": [
- {
- "appid": "string",
- "name": "string",
- "type": "Ginga-HTML5",
- "controlCode": "string",
- "state": "running",
- "entryPoint": "string"
}
]
}
Retorna as informações detalhadas da sinalização de uma aplicação interativa Ginga.
service-context-id required | string Identificador do contexto do serviço. |
appid required | string Identificador da aplicação. |
{- "appid": "string",
- "name": "string",
- "type": "Ginga-HTML5",
- "controlCode": "string",
- "state": "running",
- "entryPoint": "string"
}
Inicia ou interrompe a execução de uma aplicação interativa Ginga.
service-context-id required | string Identificador do contexto do serviço. |
appid required | string Identificador da aplicação. |
Ação a ser realizada na aplicação.
action | string Enum: "start" "stop" Ação a ser realizada (iniciar ou parar). |
{- "action": "start"
}
{- "appid": "string",
- "name": "string",
- "type": "Ginga-HTML5",
- "controlCode": "string",
- "state": "running",
- "entryPoint": "string"
}
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.
appid required | string Identificador da aplicação. |
node-id required | string Identificador do nó. |
var-name | string Nome da propriedade do nó. |
"string"
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.
service-context-id required | string Identificador do contexto do serviço. |
appid required | string Identificador da aplicação. |
var-name | string Nome da variável persistente. |
"string"
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.
service-context-id required | string Identificador do contexto do serviço. |
appid required | string Identificador da aplicação. |
var-name required | string Nome da variável persistente. |
Valor a ser persistido.
varValue | string Valor da variável persistente. |
{- "varValue": "string"
}
{- "name": "string",
- "value": "string"
}
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.
service-context-id required | string Identificador do contexto do serviço. |
var-name | string Nome da variável persistente. |
"string"
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.
service-context-id required | string Identificador do contexto do serviço. |
var-name required | string Nome da variável persistente. |
Valor a ser persistido.
varValue | string Valor da variável persistente. |
{- "varValue": "string"
}
{- "name": "string",
- "value": "string"
}
Permite acessar a estrutura e o conteúdo de arquivos transmitidos no carrossel DSM-CC de uma aplicação Ginga.
app-id required | string Identificador do aplicativo. |
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 |
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.
component-tag required | string Tag do componente DSM-CC. |
carousel-id required | string Identificador do carrossel DSM-CC. |
path | string Caminho do diretório ou arquivo que se deseja acessar. |
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.
carousel-id required | string Identificador do carrossel DSM-CC. |
protocol | string Enum: "tcp" "websocket" Protocolo de comunicação (tcp ou websocket). O valor default é "tcp". |
{- "handle": "string",
- "host": "string",
- "port": 0
}
Permite cancelar um listener de stream events, previamente registrado atraves da API 8.3.9
handle required | string Identificador do listener (handle) a ser cancelado. |
{ }
Lista nós (medias, contexts e switches) em um documento NCL transportado em uma aplicação Ginga-NCL que esteja em execução.
appid required | string ID da aplicação Ginga-NCL |
document-id | string ID do documento NCL a ser verificado |
composite-id | string ID do nó de composição contido no documento |
{- "nodes": [
- {
- "id": "string",
- "type": "media",
- "mimeType": "string",
- "presentationEvent": {
- "state": "occurring",
- "occurrences": 0
}, - "preparationEvent": {
- "prepared": true,
- "state": "occurring",
- "occurrences": 0
}, - "interfaces": [
- {
- "id": "string",
- "type": "area",
- "presentationEvent": {
- "state": "occurring",
- "occurrences": 0
}, - "preparationEvent": {
- "prepared": true,
- "state": "occurring",
- "occurrences": 0
}
}
]
}
]
}
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.
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ó |
action | string Enum: "start" "stop" "pause" "resume" "abort" "select" "set" "startPreparation" "stopPreparation" "abortPreparation" "pausePreparation" "resumePreparation" |
interface | string |
value | string |
{- "action": "start",
- "interface": "string",
- "value": "string"
}
{- "id": "node1",
- "type": "media",
- "mimeType": "video/mp4",
- "presentationEvent": {
- "state": "occurring",
- "occurrences": 1
}, - "preparationEvent": {
- "prepared": true,
- "state": "paused",
- "occurrences": 0
}, - "interfaces": [
- {
- "id": "interface1",
- "type": "area",
- "presentationEvent": {
- "state": "paused",
- "occurrences": 0
}, - "preparationEvent": {
- "prepared": true,
- "state": "occurring",
- "occurrences": 1
}
}
]
}
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.
appid required | string ID da aplicação Ginga-NCL |
node-id required | string ID do nó |
action | string Enum: "start" "stop" "pause" "resume" "abort" "select" "set" "startPreparation" "stopPreparation" "abortPreparation" "pausePreparation" "resumePreparation" |
interface | string |
value | string |
{- "action": "start",
- "interface": "string",
- "value": "string"
}
{- "id": "node1",
- "type": "media",
- "mimeType": "video/mp4",
- "presentationEvent": {
- "state": "occurring",
- "occurrences": 1
}, - "preparationEvent": {
- "prepared": true,
- "state": "paused",
- "occurrences": 0
}, - "interfaces": [
- {
- "id": "interface1",
- "type": "area",
- "presentationEvent": {
- "state": "paused",
- "occurrences": 0
}, - "preparationEvent": {
- "prepared": true,
- "state": "occurring",
- "occurrences": 1
}
}
]
}
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.
Caso o valor de "keyset" seja uma lista vazia, todas as teclas reservadas são liberadas.
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. |
{- "keyset": [
- "numeric_keys"
]
}
{- "keyset": [
- "string"
]
}
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.
{- "keyset": [
- "string"
]
}
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.
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. |
Parâmetros do comando de edição.
parentId | string Identificador do nó pai. |
elementId | string Identificador do elemento. |
{- "nodeId": "string",
- "propertyId": "string",
- "value": "string"
}
{- "parentId": "string",
- "elementId": "string"
}
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.
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. |
Parâmetros do comando de edição.
parentId | string Identificador do nó pai. |
elementId | string Identificador do elemento. |
{- "nodeId": "string",
- "propertyId": "string",
- "value": "string"
}
{- "parentId": "string",
- "elementId": "string"
}
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.
Lista de PIDs a serem retransmitidos.
pids required | Array of integers Lista de PIDs a serem retransmitidos. |
{- "pids": [
- 0
]
}
{- "handle": "string",
- "streamUrl": "string",
- "mimeType": "string"
}
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.
player-id required | string Identificador do exibidor de mídia. |
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). |
{- "url": "string",
- "action": "start",
- "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 100,
- "currTime": 0
}
{- "id": "string",
- "currentMedia": "string",
- "state": "preparing",
- "schemesSupported": [
- "string"
], - "formatsSupported": [
- "string"
], - "codecsSupported": {
- "video": [
- "string"
], - "audio": [
- "string"
], - "subtitle": [
- "string"
]
}, - "drmsSupported": [
- "string"
], - "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 0,
- "currTime": 0,
- "duration": 0
}
Retorna a hora informada na TOT sendo transmitida no transport stream associado ao serviço atualmente selecionado.
service-context-id required | string The context ID of the service. |
{- "time": "2019-08-24T14:15:22Z"
}
Retorna uma estrutura JSON com as informações da NIT transmitida no transport stream associado ao service-context-id especificado.
service-context-id required | string The context ID of the service. |
{- "desc": "string"
}
Retorna uma estrutura JSON com as informações da SDT transmitida no transport stream associado ao service-context-id especificado.
service-context-id required | string The context ID of the service. |
{- "desc": "string"
}
Retorna uma estrutura JSON com as informações da PAT transmitida no transport stream associado ao service-context-id especificado.
service-context-id required | string The context ID of the service. |
{- "desc": "string"
}
Retorna uma estrutura JSON com as informações da BAT transmitida no transport stream associado ao service-context-id especificado.
service-context-id required | string The context ID of the service. |
{- "desc": "string"
}
Retorna uma estrutura JSON com as informações da PMT correspondente ao service-context-id especificado.
service-context-id required | string The context ID of the service. |
{- "desc": "string"
}
Retorna uma estrutura JSON com as informações da grade de programação (EPG) correspondente ao service-context-id especificado.
service-context-id required | string The context ID of the service. |
{- "present": [
- {
- "desc": "string"
}
], - "following": [
- {
- "desc": "string"
}
], - "schedule": [
- {
- "desc": "string"
}
]
}
Retorna uma estrutura JSON consolidada com informações da grade de programação (EPG) que tenham sido capturadas nos demais canais da lista.
{- "epgList": [
- {
- "serviceContextId": "string",
- "present": [
- {
- "desc": "string"
}
], - "following": [
- {
- "desc": "string"
}
], - "schedule": [
- {
- "desc": "string"
}
]
}
]
}
Retorna uma estrutura JSON com as informações da BIT transmitida no transport stream associado ao service-context-id especificado.
service-context-id required | string The context ID of the service. |
{- "desc": "string"
}
Retorna uma lista com os exibidores de mídia (players) disponíveis no receptor.
{- "players": [
- {
- "id": "string",
- "currentMedia": "string",
- "state": "preparing",
- "schemesSupported": [
- "string"
], - "formatsSupported": [
- "string"
], - "codecsSupported": {
- "video": [
- "string"
], - "audio": [
- "string"
], - "subtitle": [
- "string"
]
}, - "drmsSupported": [
- "string"
], - "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 0,
- "currTime": 0,
- "duration": 0
}
]
}
Retorna informações sobre um exibidor de mídia específico, identificado pelo seu ID.
player-id required | string Identificador do exibidor de mídia. |
{- "id": "string",
- "currentMedia": "string",
- "state": "preparing",
- "schemesSupported": [
- "string"
], - "formatsSupported": [
- "string"
], - "codecsSupported": {
- "video": [
- "string"
], - "audio": [
- "string"
], - "subtitle": [
- "string"
]
}, - "drmsSupported": [
- "string"
], - "pos": {
- "x": 0,
- "y": 0,
- "w": 0,
- "h": 0
}, - "vol": 0,
- "currTime": 0,
- "duration": 0
}
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.
{- "screenSize": "string",
- "displayResolutions": [
- "string"
], - "inputDevices": [
- "string"
], - "networkInterfaces": [
- "string"
], - "tuners": [
- "string"
], - "codecs": [
- "string"
], - "storageCapacity": 0,
- "memoryCapacity": 0,
- "operatingSystem": "string"
}
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.
{- "systems": [
- {
- "name": "string",
- "library": "string",
- "version": "string"
}
]
}
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 "
targetId required | string Identificador único da aplicação-alvo. |
urlFilters required | Array of strings |
{- "targetId": "string",
- "urlFilters": [
- "string"
]
}
{- "targetId": "string",
- "state": "starting",
- "urlFilters": [
- "string"
]
}
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
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.
target-id required | string Identificador da aplicação-alvo. |
url required | string URL a ser testada em busca de aplicações com filtros compatíveis registrados. |
[- {
- "targetId": "string",
- "state": "starting",
- "urlFilters": [
- "string"
]
}
]
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
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.
url required | string URL a ser testada em busca de aplicações com filtros compatíveis registrados. |
[- {
- "targetId": "string",
- "state": "starting",
- "urlFilters": [
- "string"
]
}
]
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.
Alguns comportamentos do uso de deep links ficam facultativos à implementação do receptor. Exemplos:
url required | string URL customizada para ativar a aplicação-alvo. |
{- "url": "string"
}
{- "targetId": "string",
- "state": "starting",
- "urlFilters": [
- "string"
]
}
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.
target-id required | string Identificador da aplicação-alvo. |
{- "url": "string"
}
Vincula o serviço atualmente selecionado como um contexto de serviço passível de ser acessado pelas APIs do Ginga CC WebServices.
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.
bind-token required | string JWT token para autorização. |
{- "serviceContextId": "string",
- "bindTokens": [
- "string"
]
}
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.
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.
bind-token required | string JWT token para autorização. |
[- {
- "serviceContextId": "string",
- "serviceName": "string",
- "transportStreamId": 0,
- "originalNetworkId": 0,
- "serviceId": 0
}
]
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
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.
bind-token required | string JWT token para autorização. |
{- "serviceContextId": "string",
- "bindTokens": [
- "string"
]
}