La API de video te permite publicar videos en páginas y grupos. No se admite la publicación en usuarios.
También puedes volver a publicar reels en páginas. Para obtener más información, consulta API de publicación de reels.
El proceso para publicar videos incluye la elección de un protocolo de subida y el envío de una solicitud POST
al perímetro /videos
de la página o el grupo objetivo. La API admite protocolos de subida reanudables y no reanudables. Te recomendamos usar el protocolo de subida reanudable, ya que es más versátil y administra con eficacia las interrupciones en la conexión.
Ten en cuenta que todos los ejemplos de este documento usan un nodo de página, pero se aplican de la misma manera a los nodos de grupo.
Todas las acciones de publicación requieren un token de acceso y permisos basados en el nodo objetivo. Durante la prueba, puedes generar fácilmente tokens y conceder permisos a tu app con el explorador de la API Graph. Consulta nuestra guía Primeros pasos para obtener más información. Cuando tu app esté lista para producción, es probable que debas implementar el inicio de sesión con Facebook para obtener tokens y permisos de los usuarios de tu app.
El usuario de la app debe ser administrador de la página objetivo. Necesitarás el token de acceso a la página del usuario de la app y éste deberá conceder a tu app los permisos pages_show_list
, pages_read_engagement
y pages_manage_posts
.
El usuario de la app debe ser administrador del grupo objetivo. Necesitarás el token de acceso de usuario del usuario de la app, y éste deberá conceder a tu app el permiso publish_to_groups
.
El protocolo de subida reanudable es el protocolo de publicación preferido, ya que puedes dividir videos grandes en segmentos más pequeños para evitar que se agote el tiempo de espera. Esto es especialmente útil para videos grandes en los que es más probable que surja un error de conexión. Si surge un error de conexión mientras subes un video grande, normalmente deberás volver a subir el video completo. Sin embargo, si usas el protocolo de subida reanudable, solo deberás volver a subir el segmento afectado; no será necesario volver a subir los segmentos que ya se subieron.
Puedes publicar un video en una página o en un grupo. Para hacer la publicación, sigue estos pasos:
Una vez que finalice la sesión de subida, volveremos a ensamblar el video, lo codificaremos y lo publicaremos.
Los videos están limitados a 10 GB y 4 horas.
Para inicializar una sesión de subida de video, envía una solicitud POST
al punto de conexión de videos de la página:
POST /v19.0
/{page-id}/videos
?upload_phase=start
&access_token={access-token}
&file_size={file-size}
Incluye los siguientes parámetros:
Nombre del parámetro | Valor |
---|---|
|
|
| Tu token de acceso a la página, si publicas en una página, o tu token de acceso de usuario, si publicas en un grupo. |
| El tamaño total de tu archivo de video en 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 }
Captura los valores de start_offset
y upload_session_id
devueltos por la API. Los usarás en el paso siguiente para subir tu primer segmento de video. Es posible que también quieras capturar el valor video_id
. No lo necesitas para la publicación, pero será el identificador del video que se publique.
Sube cada uno de los segmentos de tu video en el orden en el que se deben ensamblar enviando solicitudes POST
consecutivas al punto de conexión de videos de la 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}
Incluye los siguientes datos como multipart/form-data
en el cuerpo de la solicitud:
Nombre del formulario de datos | Valor |
---|---|
|
|
| Tu token de acceso a la página, si publicas en una página, o tu token de acceso de usuario, si publicas en un grupo. |
| Tu identificador de sesión de subida. |
| El valor |
| El nombre del segmento de video para subir. |
Cada vez que subas correctamente un segmento, se devolverá un nuevo valor start_offset
. Repite esta solicitud con el valor start_offset
recién devuelto y el nombre del siguiente segmento de video que se subirá (asignado a video_file_chunk
), y continúa con el resto de los segmentos de la misma manera.
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" }
Una vez que hayas subido el segmento final, la API responderá con los valores start_offset
y end_offset
correspondientes, e indicará que puedes finalizar la sesión de subida.
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
Una vez que finalices la sesión de subida, reensamblaremos el video completo, lo codificaremos y, luego, lo publicaremos en la página. Para finalizar la sesión de subida, envía una solicitud POST
final al punto de conexión de videos de la página:
POST /v19.0
/{page-id}/videos
?upload_phase=finish
&access_token={access-token}
&upload_session_id={upload-session-id}
Incluye los siguientes parámetros:
Nombre del parámetro | Valor |
---|---|
|
|
| Tu token de acceso a la página, si publicas en una página, o tu token de acceso de usuario, si publicas en un grupo. |
| Tu identificador de sesión de subida. |
También puedes incluir cualquier parámetro adicional compatible con el punto de conexión de videos de la página, como title
, description
y 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 }
Si recibes esta respuesta, significa que comenzamos a ensamblar y codificar el video completo. Después de algunos minutos, se mostrará el video publicado.
Te recomendamos subir los archivos con el protocolo de subida reanudable, ya que puede administrar las interrupciones con eficacia y admite archivos más grandes. Sin embargo, si prefieres subir archivos utilizando el protocolo de subida no reanudable, envía una solicitud POST
al perímetro de videos de la página e incluye el parámetro source
(para los archivos de video locales) o el parámetro file_url
(para archivos alojados en un servidor público) en el cuerpo de tu solicitud como multipart/form-data
. También puedes incluir cualquier parámetro adicional compatible con el punto de conexión de videos de la página, como title
, description
y thumb
.
Los videos están limitados a 1 GB y 20 minutos. Si tu video es más grande, divídelo en segmentos y publícalo con el protocolo de subida reanudable.
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"
En caso de éxito, la API responderá con el identificador del video publicado.
{ "id":"287788272232962" //ID of the published Video }
Generamos automáticamente imágenes en miniatura utilizando imágenes fijas de videos publicados. Puedes mejorar el brillo, el color y el contraste de las imágenes en miniatura generadas. Para proporcionar tu propia imagen en miniatura, incluye el campo thumb
con el protocolo reanudable o no reanudable. Si usas el protocolo no reanudable, incluye el campo thumb
durante el Paso 3: finalizar la sesión de subida. Las imágenes en miniatura que proporciones no se modificarán.
Formato: BMP, GIF, JPEG, PNG, TIFF
Tamaño de archivo: 10 MB o menos.
No hay requisitos para la dimensión de las imágenes, pero deben tener la misma relación de aspecto que tu video.
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" }