A API de Vídeo permite publicar vídeos em Páginas e Grupos. A publicação em usuários não é compatível.
Também é possível publicar reels em Páginas. Para mais informações, consulte Reels Publishing API.
Na publicação de vídeos, é preciso escolher o protocolo de carregamento e enviar uma solicitação POST
à borda /videos
da Página ou do grupo em questão. Essa API é compatível com os protocolos de carregamento retomável e não retomável. Recomendamos o uso do protocolo de carregamento retomável. Ele é mais versátil e responde melhor a interrupções na conexão.
Os exemplos deste documento usam um nó de Página, mas também se aplicam a nós de Grupos.
Todas as ações de publicação exigem um token de acesso e permissões apropriados conforme o nó de destino. Durante os testes, você pode gerar tokens e conceder permissões ao app por meio do Explorador da Graph API. Consulte o guia Introdução para saber como fazer isso. Quando o app estiver pronto para produção, talvez seja necessário implementar o Login do Facebook para obter tokens e permissões dos usuários.
O usuário do app deve ser administrador da Página em questão. Você precisará do token de acesso à Página do usuário, que deve conceder as permissões pages_show_list
, pages_read_engagement
e pages_manage_posts
ao app.
O usuário do app deve ser administrador do grupo em questão. Você precisará do token de acesso do usuário, e esse usuário deve conceder a permissão publish_to_groups
ao app.
O protocolo de carregamento retomável é o mais comum para publicações, já que permite dividir os vídeos em partes menores para não atingir o tempo-limite. Isso é útil para carregar vídeos grandes, cenário em que as chances de ocorrerem erros de conexão são maiores. Normalmente, se um erro de conexão ocorresse durante o carregamento de um vídeo grande, seria necessário recomeçar do zero. Com o protocolo de carregamento retomável, apenas a parte afetada precisa ser recarregada. As partes já carregadas permanecem intactas.
Você pode publicar um vídeo em uma Página ou um grupo. Veja as etapas para publicação:
Depois do término da sessão, agruparemos as partes, além de codificar e publicar o vídeo.
Os vídeos têm o limite de 10 GB de tamanho e 4 horas de duração.
Para iniciar a sessão de carregamento, envie uma solicitação POST
ao ponto de extremidade de vídeos de Página:
POST /v19.0
/{page-id}/videos
?upload_phase=start
&access_token={access-token}
&file_size={file-size}
Inclua os seguintes parâmetros:
Nome do parâmetro | Valor |
---|---|
|
|
| O token de acesso à Página para publicar em uma Página ou o token de acesso do usuário para publicar em um grupo. |
| O tamanho total do arquivo em bytes. |
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=start" \
-F "access_token=EAADI..." \
-F "file_size=22420886"
{ "video_id":"2918040888250909", //Capture this value (optional) "start_offset":"0", //Capture this value "end_offset":"1048576", "upload_session_id":"2918040901584241" //Capture this value }
Guarde os valores start_offset
e upload_session_id
retornados pela API. Eles serão usados na próxima etapa para carregar a primeira parte do vídeo. Pode ser interessante registrar também o valor video_id
. Ele não é necessário para a publicação, mas será o ID do vídeo publicado.
Carregue as partes do vídeo na ordem em que elas deverão ser agrupadas. Para isso, envie solicitações POST
consecutivas ao ponto de extremidade de vídeos de Página:
POST /v19.0
/{page-id}/videos
?upload_phase=transfer
&access_token={access-token}
&upload_session_id={upload-session-id}
&start_offset={start-offset}
&video_file_chunk={video-file-chunk}
Inclua estes dados como multipart/form-data
no corpo da solicitação:
Nome do dado de formulário | Valor |
---|---|
|
|
| O token de acesso à Página para publicar em uma Página ou o token de acesso do usuário para publicar em um grupo. |
| O ID da sessão de carregamento. |
| O valor |
| O nome da parte do vídeo a ser carregada. |
A cada parte carregada, um novo valor start_offset
é retornado. Faça uma nova solicitação usando o último valor start_offset
retornado e o nome da próxima parte do vídeo a ser carregada (atribuída a video_file_chunk
). Repita esse processo para carregar as partes restantes.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=transfer" \
-F "upload_session_id=2918040901584241" \
-F "access_token=EAADI..." \
-F "start_offset=0" \
-F "video_file_chunk=@/Users/...xaa"
{ "start_offset":"10485760", //Value for second chunk "end_offset":"15728640" }
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=transfer" \
-F "upload_session_id=2918040901584241" \
-F "access_token=EAADI..." \
-F "start_offset=10485760" \
-F "video_file_chunk=@/Users/...xab"
{ "start_offset":"20971520", //Value for third chunk "end_offset":"22420886" }
Após o carregamento da última parte, a API responderá com valores start_offset
e end_offset
correspondentes, indicando que a sessão pode ser concluída.
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
Depois do término da sessão, agruparemos as partes, além de codificar e publicar o vídeo. Para concluir a sessão de carregamento, envie uma última solicitação POST
ao ponto de extremidade de vídeos de Página:
POST /v19.0
/{page-id}/videos
?upload_phase=finish
&access_token={access-token}
&upload_session_id={upload-session-id}
Inclua os seguintes parâmetros:
Nome do parâmetro | Valor |
---|---|
|
|
| O token de acesso à Página para publicar em uma Página ou o token de acesso do usuário para publicar em um grupo. |
| O ID da sessão de carregamento. |
Também é possível incluir parâmetros adicionais compatíveis com o ponto de extremidade de vídeos de Página (como title
, description
e thumb
).
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=finish" \
-F "access_token=EAADI..." \
-F "upload_session_id=2918040901584241"
{ "success":true }
Você receberá essa resposta quando começarmos a agrupar as partes e a codificar o vídeo completo. O vídeo publicado deverá ficar disponível depois de alguns minutos.
Recomendamos o uso do protocolo de carregamento retomável, já que ele responde melhor a interrupções na conexão e é compatível com arquivos maiores. Se preferir carregar os arquivos com o protocolo de carregamento não retomável, basta enviar uma solicitação POST
à borda de vídeos de Página e incluir o parâmetro source
(para arquivos locais de vídeo) ou file_url
(para arquivos hospedados em um servidor público) no corpo da solicitação como multipart/form-data
. Também é possível incluir parâmetros adicionais compatíveis com o ponto de extremidade de vídeos de Página (como title
, description
e thumb
).
Os vídeos têm o limite de 1 GB de tamanho e 20 minutos de duração. Se o arquivo for maior do que isso, divida-o em partes e faça a publicação por meio do protocolo de carregamento retomável.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "file_url=https://socialsizz.../incredible.mov"
Se o processo for bem-sucedido, a API responderá com o ID do vídeo publicado.
{ "id":"287788272232962" //ID of the published Video }
As miniaturas são geradas automaticamente com imagens dos vídeos publicados. Elas podem ser ajustadas para melhorar o brilho, a cor e o contraste. Se preferir, você pode fornecer a imagem da miniatura. Para isso, inclua o campo thumb
no protocolo escolhido (retomável ou não retomável). No protocolo retomável, inclua o campo thumb
na Etapa 3: concluir a sessão de carregamento. Não alteraremos as imagens de miniatura fornecidas por você.
Formato: BMP, GIF, JPEG, PNG ou TIFF.
Tamanho do arquivo: 10 MB ou menos.
Não há requisitos em relação à dimensão da imagem. Porém, a taxa de proporção precisa ser a mesma do vídeo.
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "upload_phase=finish" \
-F "access_token=EAADI..." \
-F "upload_session_id=2918040901584241"
-F "thumb=@/Users/...thumbnail_image.png"
{ "success":true }
curl -X POST \
"https://graph-video.facebook.com/v19.0
/1755847768034402/videos" \
-F "access_token=EAADd..." \
-F "source=@/Users/...incredible.mov"
-F "thumb=@/Users/...thumbnail_image.png"
{ "id":"287788272232962" }