L’API Video vous permet de publier des vidéos sur des Pages et des Groupes. La publication sur des Utilisateur·ices n’est pas prise en charge.
Vous pouvez également publier des reels sur des Pages. Pour plus d’informations, consultez l’API Reels Publishing.
Pour le processus de publication des vidéos, vous choisissez un protocole d’importation et vous envoyez une requête POST
à l’arête /videos
de la Page ou du Groupe cible. L’API est compatible avec les protocoles d’importation avec reprise et sans reprise. Nous vous recommandons d’utiliser le protocole Importation avec reprise, car il offre davantage de souplesse et permet de traiter efficacement les interruptions de connexion.
Notez que les exemples de ce document utilisent un nœud Page, mais s’appliquent de la même manière aux nœuds Groupe.
Toutes les actions de publication nécessitent un token d’accès et des autorisations adaptés en fonction du nœud que vous ciblez. Pendant que vous testez, vous pouvez facilement générer des tokens et accorder à votre application des autorisations à l’aide de l’Explorateur de l’API Graph. Consultez notre guide Premiers pas pour en savoir plus à ce sujet. Lorsque votre application est prête à être utilisée en production, vous devrez probablement implémenter Facebook Login pour obtenir les tokens et les autorisations des utilisateurs de votre app.
L’utilisateur de l’app doit être un admin de la Page que vous ciblez. Vous aurez besoin du token d’accès de Page de l’utilisateur de l’app et vous devrez accorder à l’application les autorisations pages_show_list
, pages_read_engagement
et pages_manage_posts
.
L’utilisateur de l’app doit être un admin du Groupe que vous ciblez. Vous aurez besoin du token d’accès utilisateur de l’utilisateur de l’app et vous devrez accorder à l’application l’autorisation publish_to_groups
.
Le protocole d’importation avec reprise est le protocole de publication recommandé, car vous pouvez fractionner les vidéos volumineuses en segments de plus petite taille afin d’éviter les délais d’expiration. Cela est particulièrement utile pour les vidéos de très grande taille qui risquent davantage de générer des erreurs de connexion. Si vous rencontrez des problèmes de connexion pendant l’importation d’une vidéo volumineuse, vous devez normalement réimporter la totalité de la vidéo. Toutefois, grâce au protocole d’importation avec reprise, vous n’avez besoin de réimporter que le segment concerné.
Vous pouvez publier une vidéo sur une Page ou un Groupe. Le processus de publication se déroule de la manière suivante :
Une fois la session d’importation terminée, nous réassemblerons la vidéo, nous l’encoderons, puis nous la publierons.
Les vidéos ne doivent pas dépasser 10 Go et 4 heures.
Si vous souhaitez initialiser une session d’importation d’une vidéo, envoyez une requête POST
au point de terminaison Vidéos de Page :
POST /v19.0
/{page-id}/videos
?upload_phase=start
&access_token={access-token}
&file_size={file-size}
Indiquez les paramètres suivants :
Nom du paramètre | Valeur |
---|---|
|
|
| Token d’accès de Page si vous publiez sur une Page, ou token d’accès d’utilisateur si vous publiez sur un Groupe. |
| Taille totale de votre fichier vidéo en octets. |
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 }
Prenez note des valeurs start_offset
et upload_session_id
renvoyées par l’API. Vous en aurez besoin à l’étape suivante d’importation de votre premier segment vidéo. Vous pouvez également noter la valeur video_id
. Celle-ci n’a pas d’utilité pour la publication, mais il s’agit de l’ID final de la vidéo publiée.
Téléchargez chacun des segments de votre vidéo dans l’ordre dans lequel ils seront assemblés en envoyant des requêtes POST
consécutives au point de terminaison Vidéos de Page :
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}
Incluez les données suivantes au format multipart/form-data
dans le corps de la requête :
Nom des données de formulaire | Valeur |
---|---|
|
|
| Token d’accès de Page si vous publiez sur une Page, ou token d’accès d’utilisateur si vous publiez sur un Groupe. |
| ID de votre session d’importation. |
| Valeur |
| Nom du segment vidéo à importer. |
Chaque fois que vous importez un segment, une nouvelle valeur start_offset
est renvoyée. Répétez cette requête à l’aide de la dernière valeur start_offset
renvoyée et du nom du prochain segment vidéo à importer (associé à video_file_chunk
) jusqu’à ce que tous les segments vidéo aient été importés.
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" }
Après avoir importé le dernier segment, l’API doit renvoyer les valeurs start_offset
et end_offset
correspondantes, ce qui indique que vous pouvez mettre fin à la session d’importation.
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
Lorsque vous mettez fin à la session d’importation, nous réassemblons la vidéo complète, nous l’encodons puis nous la publions sur la Page. Pour terminer la session d’importation, envoyez une requête POST
finale au point de terminaison Vidéos de Page :
POST /v19.0
/{page-id}/videos
?upload_phase=finish
&access_token={access-token}
&upload_session_id={upload-session-id}
Indiquez les paramètres suivants :
Nom du paramètre | Valeur |
---|---|
|
|
| Token d’accès de Page si vous publiez sur une Page, ou token d’accès d’utilisateur si vous publiez sur un Groupe. |
| ID de votre session d’importation. |
Vous pouvez également inclure des paramètres supplémentaires compatibles avec le point de terminaison Vidéos de Page, tels que title
, description
et 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 }
Lorsque vous recevez cette réponse, cela signifie que nous avons commencé à assembler et à encoder la vidéo complète. Vous devriez être en mesure de voir la vidéo publiée dans la minute qui suit.
Nous vous recommandons d’importer les fichiers avec le protocole Importation avec reprise, car il gère plus efficacement les interruptions de connexion et prend en charge des fichiers plus volumineux. Toutefois, si vous préférez utiliser le protocole d’importation sans reprise, vous pouvez le faire en envoyant une requête POST
à l’arête Vidéos de Page et en incluant le paramètre source
(pour les fichiers vidéo en local) ou le paramètre file_url
(pour les fichiers hébergés sur un serveur public) dans le corps de la requête au format multipart/form-data
. Vous pouvez également inclure des paramètres supplémentaires compatibles avec le point de terminaison Vidéos de Page, tels que title
, description
et thumb
.
Les vidéos ne doivent pas dépasser 1 Go et 20 minutes. Si votre fichier est plus volumineux, fractionnez-le en segments et publiez-le en utilisant le protocole Importation avec reprise.
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 cas de réussite, l’API répond avec l’ID de la vidéo publiée.
{ "id":"287788272232962" //ID of the published Video }
Nous générons automatiquement des images miniatures à l’aide de photos des vidéos publiées. Les miniatures générées peuvent être retouchées afin d’améliorer la luminosité, la couleur et le contraste. Vous pouvez fournir votre propre image miniature en incluant le champ thumb
avec le protocole avec reprise ou sans reprise. Si vous choisissez l’importation avec reprise, incluez le champ thumb
lors de l’Étape 3 : Terminer la session d’importation. Les images miniatures que vous fournissez ne seront pas modifiées.
Format : BMP, GIF, JPEG, PNG,TIFF
Taille de fichier : 10 Mo ou moins.
Aucune restriction de dimension ne s’applique, mais l’image doit conserver les mêmes proportions que votre vidéo.
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" }