La API de vídeo permite publicar vídeos en páginas y grupos. La publicación en usuarios no se admite.
También se pueden publicar reels en páginas. Para obtener más información, consulta API de publicación de reels.
El proceso de publicación de vídeos implica 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 segmentado. La API admite los protocolos de subida reanudable y no reanudable. Te recomendamos que utilices el protocolo de subida reanudable, ya que es más versátil y puede controlar sin problemas las interrupciones de la conexión.
Ten en cuenta que todos los ejemplos de este documento utilizan un nodo de página, pero se aplica lo mismo a los nodos de grupo.
Todas las acciones de publicación requieren un identificador de acceso y permisos adecuados para el nodo que estás segmentando. Mientras realizas pruebas, puedes generar identificadores fácilmente y conceder a tu aplicación permisos mediante el explorador de la API Graph. Consulta nuestra guía de introducción para ver cómo hacerlo. Cuando tu aplicación esté preparada para producción, probablemente tendrás que implementar el inicio de sesión con Facebook para obtener los identificadores y los permisos de los usuarios de la aplicación.
El usuario de la aplicación debe ser un administrador de la página que estás segmentando. Necesitarás el identificador de acceso a la página del usuario de la aplicación, que deberá conceder a tu aplicación los permisos pages_show_list
, pages_read_engagement
y pages_manage_posts
.
El usuario de la aplicación debe ser un administrador del grupo que estás segmentando. Necesitarás el identificador de acceso del usuario de la aplicación, que deberá conceder a tu aplicación el permiso publish_to_groups
.
El protocolo de subida reanudable es el protocolo de publicación preferido, ya que permite dividir vídeos de gran tamaño en fragmentos más pequeños para evitar que se agote el tiempo de espera. Resulta especialmente útil para vídeos de gran tamaño, en los que es más probable experimentar un error de conexión. Si experimentas un error de conexión al subir un vídeo de gran tamaño, normalmente tienes que volver a subir todo el vídeo. No obstante, con el protocolo de subida reanudable, solo tienes que volver a subir el fragmento afectado, no aquellos fragmentos que ya se han subido.
Puedes publicar un vídeo en una página o en un grupo. La publicación implica los pasos siguientes:
Una vez finalizada la sesión de subida, volveremos a montar el vídeo, lo codificaremos y lo publicaremos.
Los vídeos se limitan a 10 GB y 4 horas.
Para inicializar la sesión de subida de un vídeo, envía una solicitud POST
al extremo de vídeos de 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 |
---|---|
|
|
| Identificador de acceso a la página si realizas la publicación en una página, o identificador de acceso de usuario si la realizas en un grupo. |
| Tamaño total del archivo de vídeo 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
que ha devuelto la API. Los usarás en el paso siguiente para subir el primer fragmento de vídeo. Es posible que también quieras capturar el valor de video_id
. No lo necesitas para la publicación, pero será el identificador del vídeo publicado final.
Sube cada uno de los fragmentos del vídeo en el orden en que deben montarse. Para ello, envía solicitudes POST
consecutivas al extremo 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}
Incluye los datos siguientes como multipart/form-data
en el cuerpo de la solicitud:
Nombre de datos del formulario | Valor |
---|---|
|
|
| Identificador de acceso a la página si realizas la publicación en una página, o identificador de acceso de usuario si la realizas en un grupo. |
| Identificador de la sesión de subida. |
| Valor de |
| Nombre del fragmento de vídeo que se va a subir. |
Cada vez que subas un fragmento correctamente, se devolverá un nuevo valor de start_offset
. Repite esta solicitud con el valor de start_offset
recién devuelto y el nombre del siguiente fragmento de vídeo que se va a subir (asignado a video_file_chunk
) y sigue el proceso gradualmente con todos los fragmentos de vídeo 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" }
Después de subir el último fragmento, la API debería responder con valores de start_offset
y end_offset
coincidentes, lo que indica que puedes finalizar la sesión de subida.
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
Cuando finalices la sesión de subida, volveremos a montar el vídeo completo, lo codificaremos y lo publicaremos en la página. Para finalizar la sesión de subida, envía una solicitud POST
final al extremo 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}
Incluye los siguientes parámetros:
Nombre del parámetro | Valor |
---|---|
|
|
| Identificador de acceso a la página si realizas la publicación en una página, o identificador de acceso de usuario si la realizas en un grupo. |
| Identificador de la sesión de subida. |
También puedes incluir cualquier parámetro adicional que el extremo de vídeos de página admita, 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, indica que hemos iniciado el montaje y la codificación del vídeo completo. Deberías poder ver el vídeo publicado en cuestión de minutos.
Te recomendamos que subas los archivos con el protocolo de subida reanudable, porque permite controlar las interrupciones de la conexión de manera más eficiente y admite archivos de mayor tamaño. No obstante, si prefieres subir los archivos mediante el protocolo de subida no reanudable, puedes enviar una solicitud POST
al perímetro de vídeos de página e incluir el parámetro source
(en el caso de archivos de vídeo locales) o el parámetro file_url
(en el caso de vídeos alojados en un servidor público) en el cuerpo de la solicitud como multipart/form-data
. También puedes incluir cualquier parámetro adicional que el extremo de vídeos de página admita, como title
, description
y thumb
.
Los vídeos se limitan a 1 GB y 20 minutos. Si tu archivo de vídeo es más grande, divídelo en fragmentos y publícalo con el protocolo de subida reanudable en su lugar.
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"
Si la operación se realiza correctamente, la API responderá con el identificador del vídeo publicado.
{ "id":"287788272232962" //ID of the published Video }
Generamos imágenes en miniatura automáticamente con imágenes fijas de los vídeos publicados. Las miniaturas generadas se pueden realzar con mejoras de brillo, color y contraste. Si prefieres proporcionar tu propia imagen en miniatura, incluye el campo thumb
con el protocolo reanudable o el no reanudable. Si utilizas el protocolo 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 o TIFF.
Tamaño de archivo: 10 MB o menos.
No existen requisitos en cuanto a la dimensión de las imágenes, pero deben tener la misma relación de aspecto que el 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" }