Mit der Video API kannst du Videos auf Seiten und in Gruppen veröffentlichen. Für Nutzer*innen kann nicht veröffentlicht werden.
Du kannst auch Reels auf Seiten veröffentlichen. Weitere Informationen findest du unter Reels Publishing API.
Für die Veröffentlichung von Videos muss du ein Upload-Protokoll wählen und eine POST
-Anfrage an die /videos
-Edge der Zielseite oder -gruppe senden. Die API unterstützt Protokolle für wiederaufnehmbare und nicht wiederaufnehmbare Uploads. Wir empfehlen die Verwendung des Protokolls für wiederaufnehmbare Uploads, da es vielseitiger ist und Verbindungsunterbrechungen besser bewältigen kann.
Beachte, dass zwar in allen Beispielen in diesem Dokument ein Seiten-Node verwendet wird, die Beispiele jedoch genauso auch auf Gruppen-Nodes übertragbar sind.
Für alle Veröffentlichungen werden ein entsprechender Zugriffsschlüssel und Berechtigungen auf der Grundlage des Ziel-Nodes benötigt. Während der Testphase kannst du problemlos Schlüssel generieren und deiner App Berechtigungen erteilen. Verwende hierzu den Graph API Explorer. Weitere Informationen hierzu findest du in unserem Leitfaden Los geht‘s. Wenn deine App produktionsbereit ist, musst du wahrscheinlich Facebook Login implementieren, um Schlüssel und Berechtigungen von deinen App-Nutzer*innen abzurufen.
Der*die App-Nutzer*in muss ein*e Administrator*in der Ziel-Gruppe sein. Du benötigst den Seiten-Zugriffsschlüssel des*der App-Nutzer*in. Außerdem muss diese*r deiner App die Berechtigungen pages_show_list
, pages_read_engagement
und pages_manage_posts
erteilen.
Der*die App-Nutzer*in muss ein*e Administrator*in der Ziel-Gruppe sein. Du benötigst den Nutzungs-Zugriffsschlüssel des*der App-Nutzer*in. Außerdem muss diese*r deiner App die Berechtigung publish_to_groups
erteilen.
Das Protokoll für wiederaufnehmbare Uploads ist das bevorzugte Veröffentlichungsprotokoll, da du damit größere Videos in kleinere Chunks aufteilen kannst, um Zeitüberschreitungen zu vermeiden. Das ist vor allem bei großen Videos hilfreich, bei denen eher Verbindungsfehler auftreten. Sollte beim Hochladen eines großen Videos ein Verbindungsfehler auftreten, müsstest du normalerweise das gesamte Video neu hochladen. Wenn du jedoch das Protokoll für wiederaufnehmbare Uploads verwendest, musst du nur den betroffenen Chunk noch einmal hochladen. Bereits hochgeladene Chunks müssen nicht noch einmal hochgeladen werden.
Du kannst ein Video auf einer Seite oder in einer Gruppe veröffentlichen. Zum Veröffentlichen sind folgende Schritte erforderlich:
Nachdem du die Upload-Sitzung beendet hast, setzen wir das Video wieder zusammen und kodieren und veröffentlichen es.
Videos sind auf 10 GB und 4 Stunden beschränkt.
Sende zum Initialisieren einer Upload-Sitzung eine POST
-Anfrage an den Seiten-Videos-Endpunkt:
POST /v19.0
/{page-id}/videos
?upload_phase=start
&access_token={access-token}
&file_size={file-size}
Schließe die folgenden Parameter ein:
Parametername | Wert |
---|---|
|
|
| Dein Seiten-Zugriffsschlüssel, wenn du auf einer Seite veröffentlichst, bzw. dein Nutzungs-Zugriffsschlüssel, wenn du in einer Gruppe veröffentlichst. |
| Die Gesamtgröße deiner Videodatei in 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 }
Notiere die von der API zurückgegebenen Werte für start_offset
und upload_session_id
. Diese verwendest du im nächsten Schritt zum Hochladen deines ersten Video-Chunks. Es empfiehlt sich möglicherweise auch, den Wert für video_id
zu notieren. Er wird nicht für die Veröffentlichung benötigt, ist jedoch die ID des letztendlich veröffentlichten Videos.
Lade alle Chunks deines Videos in der Reihenfolge hoch, in der sie zusammengesetzt werden sollen. Sende dazu aufeinanderfolgende POST
-Anfragen an den Seiten-Videos-Endpunkt:
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}
Schließe die folgenden Daten als multipart/form-data
in den Anfragetext ein.
Formulardatenname | Wert |
---|---|
|
|
| Dein Seiten-Zugriffsschlüssel, wenn du auf einer Seite veröffentlichst, bzw. dein Nutzungs-Zugriffsschlüssel, wenn du in einer Gruppe veröffentlichst. |
| Die ID deiner Upload-Sitzung. |
| Der in der vorherigen Antwort zurückgegebene Wert für |
| Der Name des hochzuladenden Video-Chunks. |
Jedes Mal, wenn du einen Chunk erfolgreich hochgeladen hast, wird ein neuer start_offset
-Wert zurückgegeben. Wiederhole diese Anfrage mit dem neu zurückgegebenen start_offset
-Wert und dem Namen des nächsten hochzuladenden Video-Chunks (zu video_file_chunk
zugewiesen) und arbeite dich dann schrittweise durch die verbleibenden Video-Chunks.
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" }
Nachdem du den letzten Chunk hochgeladen hast, sollte die API mit übereinstimmenden start_offset
- und end_offset
-Werten antworten. Damit wird angegeben, dass du die Upload-Sitzung beenden kannst.
{ "start_offset":"22420886", //When values match you can "end_offset":"22420886" //end the upload session }
Wenn du die Upload-Sitzung beendest, fügen wir das vollständige Video zusammen, kodieren es und veröffentlichen es dann auf der Seite. Sende zum Beenden der Upload-Sitzung eine letzte POST
-Anfrage an den Seiten-Videos-Endpunkt:
POST /v19.0
/{page-id}/videos
?upload_phase=finish
&access_token={access-token}
&upload_session_id={upload-session-id}
Schließe die folgenden Parameter ein:
Parametername | Wert |
---|---|
|
|
| Dein Seiten-Zugriffsschlüssel, wenn du auf einer Seite veröffentlichst, bzw. dein Nutzungs-Zugriffsschlüssel, wenn du in einer Gruppe veröffentlichst. |
| Die ID deiner Upload-Sitzung. |
Du kannst auch alle zusätzlichen Parameter einschließen, die vom Seiten-Videos-Endpunkt unterstützt werden, wie zum Beispiel title
, description
und 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 }
Wenn du diese Antwort erhältst, deutet dies darauf hin, dass wir damit begonnen haben, das vollständige Video zusammenzufügen und zu kodieren. Das veröffentlichte Video sollte innerhalb weniger Minuten angezeigt werden.
Wir empfehlen dir, Dateien mit dem Protokoll für wiederaufnehmbare Uploads hochzuladen, da es Verbindungsunterbrechungen effizienter handhabt und größere Dateien unterstützt. Wenn du jedoch Dateien lieber mit dem Protokoll für nicht wiederaufnehmbare Uploads hochladen möchtest, kannst du eine POST
-Anfrage an die Seiten-Videos-Edge senden und den Parameter source
(für lokale Videodateien) oder den Parameter file_url
(für auf einem öffentlichen Server gehostete Dateien) als multipart/form-data
in deinen Anforderungstext aufnehmen. Du kannst auch alle zusätzlichen Parameter einschließen, die vom Seiten-Videos-Endpunkt unterstützt werden, wie zum Beispiel title
, description
und thumb
.
Videos sind auf 1 GB und 20 Minuten begrenzt. Ist deine Videodatei größer, teile sie in Chunks auf und veröffentliche sie stattdessen mit dem Protokoll für wiederaufnehmbare Uploads.
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"
War der Vorgang erfolgreich, antwortet die API mit der ID des veröffentlichten Videos.
{ "id":"287788272232962" //ID of the published Video }
Wir generieren automatisch Miniaturbilder anhand von Standbildern aus veröffentlichten Videos. Generierte Miniaturbilder können optimiert werden, um Helligkeit, Farbe und Kontrast zu verbessern. Du kannst dein eigenes Miniaturbild bereitstellen, indem du das Feld thumb
in das Protokoll für wiederaufnehmbare oder nicht wiederaufnehmbare Uploads einschließt. Wenn du das Protokoll für wiederaufnehmbare Uploads verwendest, schließe das Feld thumb
in Schritt 3: Upload-Sitzung beenden ein. Von dir bereitgestellte Miniaturbilder werden nicht verändert.
Format: BMP, GIF, JPEG, PNG, TIFF
Dateigröße: 10 MB oder weniger.
Es gibt keine Anforderungen an die Bildabmessungen, aber das Bild sollte dasselbe Seitenverhältnis wie das Video aufweisen.
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" }