Pular para o conteúdo principal

Ativos de Mídia (Assets)

Os ativos de mídia correspondem aos registros de armazenamentos dos arquivos enviados ou processados pela plataforma. Um ativo de mídia pode conter um ou mais arquivos.

Os registros dos assets e envio de arquivos são realizados por um serviço (asset) que é executado através de comandos de interface de programação (APIs). Além do armazenamento, o serviço de asset realiza a publicação, habilitando a exibição do conteúdo processado, ou download de arquivos específicos armazenados no asset.

Interface de Programação (APIs)

Lista de Assets

Faça um comando autenticado de requisição GET em /api/asset

GET https://api.elasticencoder.videolib.live/dev/asset

Cabeçalhos para GET para /api/asset.

Header                          Valor
Ocp-Apim-Subscription-Key chave de autorização do microserviço.
Content-Type application/json.

Como resultado, será retornada a lista de assets armazenados no encoder

{
"codMensagem": null,
"rows": 1,
"continuationToken": null, -- se o valor retornar preenchido deve ser enviado no próximo request para pegar a próxima página
"items": [
{
"guid": "asset-2516971159162250822-b3f503f5-241d-4c1b-876b-bcaf006e02e3",
"application": "videolib-ecine-dev",
"name": "mezanino-1",
"type": "M",
"creationTime": "2024-01-13T22:28:03.7749442Z",
"fileName": null,
"base64": null,
"publicUrl": null,
"blobSasUri": null,
"publishSasUri": null,
"files": [], -- arquivos no asset
"md5": null,
"cod_erro": null,
"status_ret": null,
"erro": null
}
],
"cod_erro": null,
"status_ret": null,
"erro": null
}

Criação de ASSET - Container

Faça um comando autenticado de requisição POST em /api/asset?option=createasset

POST https://api.elasticencoder.videolib.live/dev/asset?option=createasset

Cabeçalhos para POST para /api/asset.

Header                          Valor
Ocp-Apim-Subscription-Key chave de autorização do microserviço.
Content-Type application/json.

No corpo da requisição envie o JSON abaixo:

{
"name":"nome do asset"
}

onde:

application - nome da aplicação
name - nome do asset (para controle de registro)

Como retorno do comando será gerado o JSON abaixo:

{
"guid": "asset-2516971159162250822-b3f503f5-241d-4c1b-876b-bcaf006e02e3", -- Código do asset gerado
"application": "videolib-ecine-dev", -- nome da aplicação
"name": "mezanino-1", -- nome do asset (referência externa)
"type": "M", -- Tipo do asset (M - Mezanino, H - HLS)
"creationTime": "2024-01-13T22:28:03.7749442Z", -- data de criação
"fileName": null,
"base64": null,
"publicUrl": null,
"blobSasUri": null,
"publishSasUri": null,
"files": null,
"md5": null,
"cod_erro": null, -- caso ocorra um erro esse valor virá preenchido
"status_ret": null,-- caso ocorra um erro esse valor virá preenchido
"erro": null-- caso ocorra um erro esse valor virá preenchido
}

Criação de Asset com URL - Arquivo de origem.

Faça um comando autenticado de requisição POST em /api/asset?option=createassetfromcopyurl

POST https://api.elasticencoder.videolib.live/dev/asset?option=createassetfromcopyurl

Cabeçalhos para POST para /api/asset

Header                          Valor
Ocp-Apim-Subscription-Key chave de autorização do microserviço.
Content-Type application/json.

No corpo da requisição envie o JSON abaixo:

{
"guid":"asset-2517124479364104389-c2d4ed18-b8ba-40fe-ab2c-572499527d0d",
"name":"nome do asset",
"fileName":"teste.mp4",
"publicUrl":"https://portalplayerglobointegra.blob.core.windows.net/containervideosprod/1679138.mp4"
}

onde:

guid - código do asset
application - nome da aplicação
name - nome do asset (para controle de registro)
fileName - nome do arquivo.
publicUrl - URL do arquivo de Origem.

Como retorno do comando será gerado o JSON abaixo:

{   
"guid":"asset-8524eefb-cc13-4e59-b83e-7c3faa640db5", -- Código do asset usado
"application":"aplicacao-ambiente",
"name":"nome do asset",
"creationTime":"2023-12-20T14:30:31.727487Z", - data da criação do asset
"cod_erro":null, - Caso dê erro no processamento, esse valor virá preenchido
"status_ret":null, - caso dê erro no valor virá preenchido com "NOK"
"erro":null - caso dê erro nesse campo virá a mensagem de erro passada pelo serviço.
}

Adicionar arquivo em um Asset - Mapeamento de conteúdo

Com o encoder é possível mapear um arquivo em um asset existente. Faça um comando autenticado de requisição POST em /api/asset?option=createaddfileasset

POST https://api.elasticencoder.videolib.live/dev/asset?option=createaddfileasset

Cabeçalhos para POST para /api/asset

Header                          Valor
Ocp-Apim-Subscription-Key chave de autorização do microserviço.
Content-Type application/json.

No corpo da requisição envie o JSON abaixo:

{
"guid":"asset-2517128638480719439-0d31b3c3-d56e-4003-94c8-e1eefc20104c",
"name":"nome do asset",
"fileName":"nome do arquivo"
}

onde:

guid - código do asset
application - nome da aplicação
name - nome do asset (para controle de registro)
fileName - nome do arquivo mapeado no storage - se for vazio o serviço mapeia os arquivos armazenados no asset mapeado.

Como retorno do comando será gerado o JSON abaixo:

{   
"guid":"asset-8524eefb-cc13-4e59-b83e-7c3faa640db5", -- Código do asset usado
"application":"aplicacao-ambiente",
"name":"nome do asset",
"creationTime":"2023-12-20T14:30:31.727487Z", - data da criação do asset
"cod_erro":null, - Caso dê erro no processamento, esse valor virá preenchido
"status_ret":null, - caso dê erro valor virá preenchido com "NOK"
"erro":null - caso dê erro nesse campo virá a mensagem de erro passada pelo serviço.
}

Publicar um Asset - Para exibição ou Download dos arquivos.

Faça um comando autenticado de requisição POST em /api/asset?option=createassetfromcopyurl

POST https://api.elasticencoder.videolib.live/dev/asset?option=publish

Cabeçalhos para POST para /api/asset

Header                          Valor
Ocp-Apim-Subscription-Key chave de autorização do microserviço.
Content-Type application/json.

No corpo da requisição envie o JSON abaixo:

{
"guid":"código do asset",
"fileName": ""
}

Como retorno do comando será gerado o JSON abaixo:

{
"guid": "asset-2516971159162250822-b3f503f5-241d-4c1b-876b-bcaf006e02e3",
"application": "videolib-ecine-dev",
"name": null,
"type": null,
"creationTime": null,
"fileName": "",
"base64": null,
"publicUrl": null,
"blobSasUri": null,
"publishSasUri": "https://videolibencoderecinedevm.blob.core.windows.net/asset-2516971159162250822-b3f503f5-241d-4c1b-876b-bcaf006e02e3/video1.mp4?sv=2020-08-04&se=2024-01-14T03%3A57%3A27Z&sr=b&sp=r&sig=3xaDvuXDcR0w8OiZrklQy9Kumv%2FYdRU9YejZ3wK6u%2BE%3D",
"files": null,
"md5": null,
"cod_erro": null,
"status_ret": null,
"erro": null
}

Acima um exemplo de download de um mezanino.

Para realizar o download de um ou mais arquivos do asset.

Quando for efetuado um Publish de um material processado, é gerado o json como o exemplo abaixo:

{
"guid": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"application": "videolib-ecine-dev",
"name": null,
"type": null,
"creationTime": null,
"fileName": "",
"base64": null,
"publicUrl": null,
"blobSasUri": null,
"publishSasUri": "https://videolibencoderecinedevh.blob.core.windows.net/asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935/index.m3u8",
"files": [
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "1080p.mp4",
"creationTime": "2024-01-15T01:27:55.6232745Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img000.jpg",
"creationTime": "2024-01-15T01:26:20.1710052Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img001.jpg",
"creationTime": "2024-01-15T01:26:14.0749233Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img002.jpg",
"creationTime": "2024-01-15T01:26:24.2888588Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img003.jpg",
"creationTime": "2024-01-15T01:26:36.9591318Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img004.jpg",
"creationTime": "2024-01-15T01:26:53.6732041Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img005.jpg",
"creationTime": "2024-01-15T01:27:10.6876609Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img006.jpg",
"creationTime": "2024-01-15T01:27:27.3949527Z",
"md5": null
},
{
"guidAsset": "asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935",
"name": "358d5235-9f9e-4bd6-8252-78666709605a",
"originalName": "img007.jpg",
"creationTime": "2024-01-15T01:27:47.9939908Z",
"md5": null
}
],
"md5": null,
"cod_erro": null,
"status_ret": null,
"erro": null
}

Os arquivos do asset podem ser baixados durante um tempo em que o asset está publicado. Para baixar basta usar o endereço do campo "publishSasUri", remover o nome "index.m3u8" substituindo pelo nome do arquivo para realizar o donwload.

Por exemplo:

https://videolibencoderecinedevh.blob.core.windows.net/asset-2516970188307328515-1e709c6a-1549-492a-91f6-a4f33ce70935/1080p.mp4

Por padrão o encoder gera até 10 imagens do vídeo.