Pular para o conteúdo principal

Tutorial

Tutorial para sequência de chamadas para geração de um asset e preparação do HLS.

Para enviar o conteúdo e assistir ao vídeo deve ser seguida a sequência.

Fluxo

Processo de Envio

Passo 1 - Criação do Asset

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

{
"name":"assetName"
}

no campo name usar um código para identificação no sistema de origem. Não pode se repetir, o processo de exibição usará esse código para exibição do conteúdo processado.

Exemplo de como retorno do comando será gerado o JSON abaixo:

{
"guid": "asset-uniqueidAsset",
"application": "videolib-ecine-dev",
"name": "assetName",
"type": "M",
"creationTime": "2024-01-13T22:28:03.7749442Z",
"fileName": null,
"base64": null,
"publicUrl": null,
"blobSasUri": null,
"publishSasUri": null,
"files": null,
"md5": null,
"cod_erro": null,
"status_ret": null,
"erro": null
}

Passo 2 - Envio do Conteúdo Original

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

{
"guid":"asset-uniqueidAsset",
"name":"assetName",
"fileName":"Original fileName.mp4",
"publicUrl":"https://portalplayerglobointegra.blob.core.windows.net/containervideosprod/1679138.mp4"
}

onde publicUrl é o URL para acesso do conteúdo original (URL para cópia do arquivo).

Passo 3 - Transcodificação

POST https://api.elasticencoder.videolib.live/dev/job

{
"assetIdMezanine":"asset-uniqueidAsset",
"jobName":"nome do job (controle externo)",
"presetId":"código do preset (*)"

}

Passo 4 - Acompanhamento do Processo

Verificação dos Jobs.

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

Exemplo de como retorno do comando será gerado o JSON abaixo:

{
"codMensagem": null,
"rows": 1,
"continuationToken": null,
"items": [
{
"guid": "job-2516970584269866335-f92daed3-a6ad-483e-9d11-e67aed51be73",
"application": "videolib-ecine-dev",
"assetIdMezanine": "asset-2516971159162250822-b3f503f5-241d-4c1b-876b-bcaf006e02e3",
"assetIdEncoded": null,
"presetId": "71",
"jobName": "job-001",
"startTime": null,
"finishTime": null,
"jobStatus": 0, -- indica o status do processamento.
"percent": null,
"duration": null,
"message": null,
"errorMessage": null,
"errorCode": null,
"listaMarcacoes": null,
"timestamp": null,
"cod_erro": null,
"status_ret": null,
"erro": null
}
],
"cod_erro": null,
"status_ret": null,
"erro": null
}

onde:

jobStatus - status do Job
0 - aguardando
1 - incluído na fila de processamento
2 - processando
3 - finalizado com sucesso
4 - finalizado com erro
startTime - início do processamento
finishTime - fim do processamento
percent - percentual de processamento
duration - duração do vídeo
message - log do encoder
errorMessage - caso haja erro no processamento.
assetIdEncoded - id do novo asset gerado

Passo 5 - Exibição do Conteúdo

POST https://api.elasticencoder.videolib.live/dev/auth

{
"app":"aplicação", // código da aplicação (enviado para ativação)
"key":"chave",// chave de autenticação (enviado para ativação)
"userName":"id Usuario", // id do usuário do sistema de origem - identificação de audiência
"name":"Nome Usuario", // nome do usuário do sistema de origem - identificação de audiência
"group":"100", // (ocional) código do grupo do sistema de origem - identificação de audiência
"email":"usuario@email.com.br", // (opcional) email do usuário do sistema de origem - identificação de audiência
"documentId":"num documento - ex: cpf", // (opcional) documento do usuário do sistema de origem
"department":"nome departamento", // (opcional) departamento do usuário do sistema de origem
"timeoutMinutes":"20" // tempo de duração do token
}

Como retorno do comando será gerado o JSON abaixo:

{
"token":"eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyTmFtZSI6ImlkVXN1YXJvIiwibmFtZSI6Ik5vbWUgVXN1YXJpbyIsImRhdGFUb2tlbiI6IjIwMjQtMDEtMjdUMjI6MjI6MjcuOTI0NzU1LTAzOjAwIiwiZ3JvdXAiOiIxMDAiLCJlbWFpbCI6InV1c3VhcmlvQGVtYWlsLmNvbS5iciIsImRvY3VtZW50SWQiOiJudW0gZG9jdW1lbnRvIC0gZXg6IGNwZiIsImRlcGFydG1lbnQiOiJub21lIGRlcGFydGFtZW50byIsIm1hdGNoIjoiODAyYmVjOGZkNTMxODE5MmIwYTc1IiwiaWRVc2VyUXVldWUiOiIwRTQ5RDM2ODMxNEM0NUJBMjJBQzYxRDY3MzA0MDYwREU1RDhFODE1OENBRjlFRDM4RDIyMjY1NzMwOTBDRDA4Iiwicm9sZXMiOiJHZXN0b3IifQ.yChC56edU1zmCua7sodHGVCD-rrMp5SCeIerkeK2llI",
"dataToken":"2024-01-27T22:22:27.924755-03:00",
"userName":"id Usuario",
"name":"Nome Usuario"
,"tokenType":"jwt",
"idUserQueue":"0E49D368314C45BA22AC61D67304060DE5D8E8158CAF9ED38D2226573090CD08",
"group":"100",
"roles":"",
"email":"usuario@email.com.br",
"documentId":"num documento - ex: cpf",
"department":"nome departamento",
"status_ret":null,
"erro":null
}

Abrindo o Player:

https://player.elasticencoder.videolib.live/player?token=mezanino-1&jwt=eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyTmFtZSI6ImlkVXN1YXJvIiwibmFtZSI6Ik5vbWUgVXN1YXJpbyIsImRhdGFUb2tlbiI6IjIwMjQtMDEtMjdUMjI6MjI6MjcuOTI0NzU1LTAzOjAwIiwiZ3JvdXAiOiIxMDAiLCJlbWFpbCI6InV1c3VhcmlvQGVtYWlsLmNvbS5iciIsImRvY3VtZW50SWQiOiJudW0gZG9jdW1lbnRvIC0gZXg6IGNwZiIsImRlcGFydG1lbnQiOiJub21lIGRlcGFydGFtZW50byIsIm1hdGNoIjoiODAyYmVjOGZkNTMxODE5MmIwYTc1IiwiaWRVc2VyUXVldWUiOiIwRTQ5RDM2ODMxNEM0NUJBMjJBQzYxRDY3MzA0MDYwREU1RDhFODE1OENBRjlFRDM4RDIyMjY1NzMwOTBDRDA4Iiwicm9sZXMiOiJHZXN0b3IifQ.yChC56edU1zmCua7sodHGVCD-rrMp5SCeIerkeK2llI

onde:

Url do player: 
https://player.elasticencoder.videolib.live/player

Parâmetros:
token: nome dado ao asset do arquivo original
jwt: chave gerada na chamada da API auth (explicada no início da sessão)

Player Videolib