ユーザーのプロフィールにライブ動画を配信するには、publish_video
アクセス許可を持つユーザーアクセストークンを取得して、次の宛先にリクエストを送信します。
POST /{user-id}/live_videos?status=LIVE_NOW
タイトルや説明文など、ライブ配信を説明するために含めることができる追加のクエリ文字列パラメーターについては、/live_videos
エッジリファレンスをご覧ください。
成功すると、APIはユーザーのLiveVideo
オブジェクトを作成し、secure_stream_url
とLiveVideo
オブジェクトのid
を返します。データがセキュアなストリーミングURLに送信されると、すぐにユーザーのプロフィールの投稿にライブ配信が表示されます。LiveVideo
オブジェクトをクエリして、ライブ配信の正常性をモニタリングしたり、ライブ配信を終了したりすることができます。
curl -i -X POST \
"https://graph.facebook.com/{user-id}/live_videos
?status=LIVE_NOW
&title=Today%27s%20Live%20Video
&description=This%20is%20the%20live%20video%20for%20today.
&access_token={access-token}"
{ "id": "1953020644813104", "stream_url": "rtmp://rtmp-api.facebook...", "secure_stream_url":"rtmps://rtmp-api.facebook..." }
ページにライブ動画を配信するには、pages_read_engagement
およびpages_manage_posts
アクセス許可を持つページの管理者のページアクセストークンを取得して、次の宛先にリクエストを送信します。
POST /{page-id}/live_videos?status=LIVE_NOW
タイトルや説明文など、ライブ配信を説明するために含めることができる追加のクエリ文字列パラメーターについては、/live_videos
エッジリファレンスをご覧ください。
成功すると、APIはページのLiveVideo
オブジェクトを作成し、secure_stream_url
とLiveVideo
オブジェクトのid
を返します。データがセキュアなストリーミングURLに送信されると、すぐにページの投稿にライブ配信が表示されます。LiveVideo
オブジェクトを照会して、ライブ配信の正常性をモニタリングしたり、ライブ配信を終了したりすることができます。
curl -i -X POST \
"https://graph.facebook.com/{page-id}/live_videos
?status=LIVE_NOW
&title=Today%27s%20Page%20Live%20Video
&description=This%20is%20the%20live%20video%20for%20the%20Page%20for%20today
&access_token=EAAC..."
{ "id": "1953020644813108", "stream_url": "rtmp://rtmp-api.facebook...", "secure_stream_url":"rtmps://rtmp-api.facebook..." }
グループにライブ動画を配信するには、その前にグループがアプリをインストールする必要があります。グループの管理者がこれを行うには、www.facebook.comでグループを表示して[グループの設定を編集] > [アプリ] > [アプリを追加]に移動し、アプリを追加します。
アプリをインストールしたグループにライブ動画を配信するには、publish_video
アクセス許可を持つグループの管理者のユーザーアクセストークンを取得して、次の宛先にリクエストを送信します。
POST /{group-id}/live_videos?status=LIVE_NOW
タイトルや説明文など、ライブ配信を説明するために含めることができる追加のクエリ文字列パラメーターについては、/live_videos
エッジリファレンスをご覧ください。
成功すると、APIはグループのLiveVideo
オブジェクトを作成し、secure_stream_url
とLiveVideo
オブジェクトのid
を返します。データがセキュアなストリーミングURLに送信されると、すぐにグループの投稿にライブ配信が表示されます。LiveVideo
オブジェクトをクエリして、ライブ配信の正常性をモニタリングしたり、ライブ配信を終了したりできます。
curl -i -X POST \
"https://graph.facebook.com/{group-id}/live_videos
?status=LIVE_NOW
&title=Today%27s%20Group%20Live%20Video
&description=This%20is%20the%20live%20video%20for%20the%20group%20for%20today
&access_token={access-token}"
{ "id": "1953020644813108", "stream_url": "rtmp://rtmp-api.facebook...", "secure_stream_url":"rtmps://rtmp-api.facebook..." }
LiveVideo
オブジェクトを読み込んで、ライブ配信のストリーミングのプレビューURLや、ビットレートやフレームレートなどのストリーミングの正常性に関するデータを取得できます。ストリーミングの正常性データは2秒ごとに更新されるので、クエリの頻度を2秒に1回に制限します。データが4秒以上受信されないと、ストリーミングのタイムアウトが検出され、報告されます。
LiveVideo
オブジェクトを読み込むには、publish_video
アクセス許可のある適切なユーザーまたはページのアクセストークンを取得して、次の宛先にクエリを送信します。
GET /{live-video-id}?fields={fields}
{fields}
パラメーターを使用して、応答に含めるLiveVideoオブジェクトフィールドを指定します。以下に、ストリーミングの正常性に関するデータを含む、LiveVideo
オブジェクトのingest_streams
を取得するリクエストの例を示します。
curl -i -X GET \
"https://graph.facebook.com/{live-video-id}
?fields=ingest_streams
&access_token={access-token}"
{ "ingest_streams": [ { "stream_id": "0", "stream_url": "rtmp://rtmp-api.facebook...", "secure_stream_url": "rtmps://rtmp-api.facebook...", "is_master": true, "stream_health": { "video_bitrate": 4024116, "video_framerate": 60, "video_gop_size": 2000, "video_height": 720, "video_width": 1280, "audio_bitrate": 128745.4921875 }, "id": "1914910145231512" // Ingest stream ID } ], "id": "{your-live-video-id}" }
応答プロパティ
フィールド名 | 説明 |
---|---|
audio_bitrate | 受信する音声ストリーミングの1秒あたりのビット数 |
is_master | クエリしたライブ動画IDが、視聴者に配信される動画である場合は |
secure_stream_url | クエリするライブ動画IDの安全なRTMPS取り込みURL。 |
stream_url | クエリするライブ動画IDのRTMPS取り込みURL。 |
video_bitrate | 受信する動画ストリームの1秒あたりのビット数。 |
video_framerate | 受信する動画ストリームのフレーム毎秒。 |
video_gop_size | ミリ秒単位のGOP(写真のグループ)サイズ。 |
video_height | 受信する動画フレームの高さ(ピクセル)。 |
video_width | 受信する動画フレームの幅(ピクセル)。 |
ライブ配信を終了するには、エンコーダーからストリーミングURLへのライブ動画データのストリーミングを停止するか、次の宛先にリクエストを送信します。
POST /{live-video-id}?end_live_video=true
これにより、LiveVideo
オブジェクトのステータスがVOD
に設定され、後で視聴できるようにビデオオンデマンド(VOD)として保存されます。
成功すると、APIはLiveVideo
オブジェクトのIDを返します。
curl -i -X POST \
"https://graph.facebook.com/{live-video-id}
?end_live_video=true
&access_token={access-token}"
{ "id": "10213570560993813" }
GET
操作をLiveVideo IDに対して実行すると、そのステータスがVOD
に設定されていることを確認できます。
GET /{live-video-id}?fields=status
{ "status": "VOD", // Broadcast ended, saved as VOD "id": "10213570560993813" }
配信が終了してVODとして保存されたライブ配信を削除するには、次の宛先にリクエストを送信します。
curl -i -X DELETE \
"https://graph.facebook.com/{live-video-id}?access_token={access-token}"
{ success: true }
ライブ配信に関連付けられたエラーコードデータを取得するには、次の宛先にリクエストを送信します。
GET /{live-video-id}?fields=errors
APIはerror code
、type
、message
、およびtimestamp
を返します。
curl -i -X GET \
"https://graph.facebook.com/{live-video-id}
?fields=errors
&access_token={access-token}"
{ "errors": { "data": [ { "error_code": 1969004, "error_type": "stream", "error_message": "Video signal lost", "creation_time": "2018-12-05T23:58:52+0000" }, { "error_code": 1969004, "error_type": "stream", "error_message": "Video signal lost", "creation_time": "2018-12-05T23:58:52+0000" }, { "error_code": 0, "error_type": "info", "error_message": "Live Service received the video signal", "creation_time": "2018-12-05T23:58:02+0000" }, { "error_code": 0, "error_type": "info", "error_message": "Live Service received the video signal", "creation_time": "2018-12-05T23:58:02+0000" } ] }, "id": "{your-live-video-id}" }
error_subcode | エラーの概要 | 説明 |
---|---|---|
COPYRIGHT__LIVE_COPYRIGHT_VIOLATION | ライブの著作権違反 | 配信中のライブ動画に、別のページが所有する音声またはビジュアルコンテンツが含まれている可能性があるため停止されました。 |
VIDEO__CREATE_FAILED | アップロードの問題 | 問題があるため動画をアップロードできませんでした。もう一度お試しください。 |
LIVE_VIDEO__DELETE_FAILED | ライブ動画が削除されない | 問題が発生したため、ライブ動画を削除できませんでした。もう一度お試しください。 |
LIVE_VIDEO__EDIT_API_NOT_ALLOWED | ライブ配信中は動画APIを使用した編集はできない | 動画編集APIを使用してライブ動画を編集することはできません。ライブ動画IDを使用してください。 |
LIVE_VIDEO__LIVE_STREAM_ERROR | 一般的なストリーミング | ストリーミング中にエラーが発生 |
LIVE_VIDEO__NOT_EXIST | ライブ動画が存在しない | アクセスしようとしているライブ動画は、システム上に存在しなくなりました。 |
LIVE_VIDEO__PRIVACY_REQUIRED | プライバシー設定が必要 | ライブ配信する前に、プライバシー設定を行う必要があります。 |