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.