Graph API Version

Live Video

Represents a live video broadcast. Refer to the Live Video API documentation for additional usage information.

Reading

Get fields and edges on a LiveVideo.

Example

Graph API Explorer
GET /v8.0/{live-video-id} HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{live-video-id}',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{live-video-id}",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{live-video-id}",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
// For more complex open graph stories, use `FBSDKShareAPI`
// with `FBSDKShareOpenGraphContent`
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{live-video-id}"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];
If you want to learn how to use the Graph API, read our Using Graph API guide.

Parameters

ParameterDescription
target_token
string

A target token recently returned by the speed test API

Fields

FieldDescription
id
numeric string

The live video ID.

ad_break_config
LiveVideoAdBreakConfig

The ad break configurations for clients implementing triggering an ad break ui. Contains ad break eligibility and constants to render the ui. In order to use this, the page hosting the broadcast needs to be whitelisted.

ad_break_failure_reason
enum

Ad Break failure reason

broadcast_start_time
datetime

The time the video was initially published

copyright

The copyright information for the live video

creation_time
datetime

The creation time of the live video

dash_ingest_url
string

The dash ingest stream URL of the live video

dash_preview_url
string

Preview URL for dash player

description
string

The description of the live video

embed_html
string

The embed html of the live video

from
User|Page

The originator of the live video

ingest_streams

Individual ingest streams.

is_manual_mode
bool

Whether schedule live is in manual mode, in which live video will start manually instead of on schedled time

is_reference_only
bool

Whether the live video is exclusively used for copyright monitoring

live_encoders

Live Encoders that will broadcast to this live video

live_views
unsigned int32

The instant viewer count of the live video now

overlay_url
string

A URL used in conjunction with Facebook Live Producer to show overlays for this broadcast. In order to use this, the page hosting the broadcast needs to be whitelisted.

permalink_url
string

The permalink URL of this video on Facebook.

planned_start_time
datetime

Planned start time for a live video

seconds_left
int32

Seconds left in the maximum possible duration for this live video

secure_stream_url
string

The secure stream url of the live video. Check with your encoder whether this is supported before adapting

status
enum

The status of the LiveVideo.

A LIVE_NOW LiveVideo is one that will be published to the intended destination (Timeline, Group, Page, etc) upon receiving valid video data, or one that is already published and actively streaming.

An UNPUBLISHED LiveVideo is in preparation; it's not visible to other users, and it may be automatically deleted after several hours in this state.

A SCHEDULED_UNPUBLISHED LiveVideo is scheduled to go live at a future time.

A SCHEDULED_LIVE LiveVideo is one whose scheduled time has passed, yet the stream is not yet live. Either in the process of transitioning, or still waiting for a valid video stream.

(Consider using the SCHEDULED states to create a planned, future LiveVideo.)

stream_url
string

The stream url of the live video

targeting
LiveVideoTargeting

Targeting information for this live video

title
string

The title of the live video

video

The inside video of the live video

Edges

EdgeDescription

The users who are blocked from commenting on the live video

Comments made on this

Pages which are allowed to crosspost this live video. This field is only available on the original live video.

Live videos which have been crossposted from this live video. This field is only available on the original live video.

Errors that occurred during the live stream

Polls configured for this broadcast

People who reacted on this

Validation Rules

ErrorDescription
100Invalid parameter
200Permissions error
210User not visible

Creating

You can make a POST request to live_videos edge from the following paths:
When posting to this edge, a LiveVideo will be created.

Parameters

ParameterDescription
attribution_app_id
numeric string or integer

SELF_EXPLANATORY

content_tags
list<numeric string>

Tags that describe the contents of the video. Use search endpoint with type=adinterest to get possible IDs.

                    Example:
                    ~~~~
                    /search?type=adinterest&q=couscous
                    ~~~~

description
UTF-8 string

The description of the live video.

Supports Emoji
donate_button_charity_id
numeric string or integer

Specifies the ID of the charity for which a donate button will be added to the live video.

enable_backup_ingest
boolean

Set this to true to enable a backup ingest url. stop_on_delete_stream defaults to false when set

encoding_settings
string

Identifier of the encoding settings group the broadcaster is using for this stream. This parameter is currently only in use for live-360 broadcasts. The value to be passed to this parameter is the value of the identifier key of the encoding settings preset. Encoding presets can be found by querying the /broadcaster_encoding_settings Graph API endpoint (GET query).

fisheye_video_cropped
boolean

Whether the single fisheye video is cropped or not

front_z_rotation
float

The front z rotation in degrees on the single fisheye video

is_spherical
boolean

Flag that denotes the broadcast is a 360 live broadcast.

live_encoders
list<numeric string or integer>

Live encoders that will broadcast to this live video

original_fov
int64

Original field of view of the camera

planned_start_time
integer

Unix timestamp when the broadcaster plans to go live.

privacy
Privacy Parameter

Privacy for this live video.

projection
enum {EQUIRECTANGULAR, CUBEMAP, HALF_EQUIRECTANGULAR}

Flag that denotes expected projection for 360 live streams. The default value is EQUIRECTANGULAR.

published
boolean

Set this to false to preview the stream before going live.

                    Deprecated. Prefer setting the status instead.

schedule_custom_profile_image
image

Custom image that will appear in the scheduled live story and lobby.

spatial_audio_format
enum {ambiX_4}

Denotes the format of the spatial audio stream. When unspecified audio is presumed to be mono or stereo.

status
enum {UNPUBLISHED, LIVE_NOW, SCHEDULED_UNPUBLISHED, SCHEDULED_LIVE, SCHEDULED_CANCELED}

The status of the broadcast. A LIVE_NOW broadcast is currently live and visible to users. An UNPUBLISHED broadcast is in preparation; it's not visible to other users, and it may be automatically deleted after several hours in this state. (Consider using the SCHEDULED states to create a planned, future broadcast.)

stereoscopic_mode
enum {MONO, LEFT_RIGHT, TOP_BOTTOM}

Set this parameter to the stereoscopic mode for this video.

stop_on_delete_stream
boolean

Set this to true if stream should be stopped when deleteStream RTMP command received.

title
UTF-8 string

The title of the live video. Maximum 254 characters.

Supports Emoji

Return Type

This endpoint supports read-after-write and will read the node represented by id in the return type.
Struct {
id: numeric string,
stream_url: string,
secure_stream_url: string,
stream_secondary_urls: List [
string
],
secure_stream_secondary_urls: List [
string
],
dash_ingest_url: string,
dash_ingest_secondary_urls: List [
string
],
}

Validation Rules

ErrorDescription
200Permissions error
100Invalid parameter
You can make a POST request to live_videos edge from the following paths:
When posting to this edge, a LiveVideo will be created.

Parameters

ParameterDescription
attribution_app_id
numeric string or integer

SELF_EXPLANATORY

content_tags
list<numeric string>

Tags that describe the contents of the Live Video. Use search endpoint with type=adinterest to get possible IDs. For example: /search?type=adinterest&q=couscous

description
UTF-8 string

The description of the Live Video

Supports Emoji
enable_backup_ingest
boolean

Set this to true to enable a backup ingest url. stop_on_delete_stream defaults to false when set

encoding_settings
string

Identifier of the encoding settings group. Currently only used for live-360 broadcasts. The value should be the identifier key of the encoding settings preset. Encoding presets can be found by querying the GET /broadcaster_encoding_settings endpoint

fisheye_video_cropped
boolean

Whether the single fisheye video is cropped or not

front_z_rotation
float

The front z rotation in degrees on the single fisheye video

is_spherical
boolean

Denotes if the broadcast is a 360 live broadcast

live_encoders
list<numeric string or integer>

Live encoders that will broadcast to this live video

original_fov
int64

Original field of view of the camera

planned_start_time
integer

Unix timestamp when the broadcaster plans to go live

privacy
Privacy Parameter

Privacy for this Live Video

projection
enum {EQUIRECTANGULAR, CUBEMAP, HALF_EQUIRECTANGULAR}

Flag that denotes expected projection for 360 live streams. The default value is EQUIRECTANGULAR

published
boolean

Set this to false to preview the stream before going live. Deprecated. Set the status instead

schedule_custom_profile_image
image

Custom image that will appear in the scheduled live story and lobby

spatial_audio_format
enum {ambiX_4}

Denotes the format of the spatial audio stream. When unspecified audio is presumed to be mono or stereo

status
enum {UNPUBLISHED, LIVE_NOW, SCHEDULED_UNPUBLISHED, SCHEDULED_LIVE, SCHEDULED_CANCELED}

The status of the broadcast. A LIVE_NOW broadcast is currently live and visible to users. An UNPUBLISHED broadcast is in preparation; it's not visible to other users, and it may be automatically deleted after several hours in this state. (Consider using the SCHEDULED states to create a planned, future broadcast.)

stereoscopic_mode
enum {MONO, LEFT_RIGHT, TOP_BOTTOM}

The stereoscopic mode for this video

stop_on_delete_stream
boolean

Set this to true if stream should be stopped when deleteStream RTMP command received

title
UTF-8 string

Title of the live video. Maximum 254 characters.

Supports Emoji

Return Type

This endpoint supports read-after-write and will read the node represented by id in the return type.
Struct {
id: numeric string,
stream_url: string,
secure_stream_url: string,
stream_secondary_urls: List [
string
],
secure_stream_secondary_urls: List [
string
],
dash_ingest_url: string,
dash_ingest_secondary_urls: List [
string
],
}

Validation Rules

ErrorDescription
200Permissions error
100Invalid parameter
You can make a POST request to live_videos edge from the following paths:
When posting to this edge, a LiveVideo will be created.

Parameters

ParameterDescription
attribution_app_id
numeric string or integer

SELF_EXPLANATORY

content_tags
list<numeric string>

Tags that describe the contents of the video. Use search endpoint with type=adinterest to get possible IDs.

                                                  Example:
                                                  ~~~~
                                                  /search?type=adinterest&q=couscous
                                                  ~~~~

crossposting_actions
array<JSON object>

List of desired changes to crossposting for this broadcast. Each change must provide a page_id and action. Example:

[ {page_id: 1234, action: 'enable_crossposting'}, {page_id: 4567, action: 'enable_crossposting_and_create_post'} ]

Available action types:

  • enable_crossposting: Enables crossposting for this broadcast with the Page if it is not currently enabled. No change if crossposting is already enabled with the Page for this broadcast.
  • disable_crossposting: Disables crossposting for this broadcast with the Page if it is currently enabled. No change if crossposting is not already enabled with the Page for this broadcast.
  • enable_crossposting_and_create_post: Same as enable_crossposting, but will also create a post as the Page. The post will be created even if crossposting is already enabled for the Page. This option is subject to your live crossposting relationships and will fail for Pages without the required permission.

custom_labels
list<string>

Labels used to describe the video. Unlike content tags, custom labels are not published and only appear in insights data.

description
UTF-8 string

The description of the live video.

Supports Emoji
donate_button_charity_id
numeric string or integer

Specifies the ID of the charity for which a donate button will be added to the live video.

enable_backup_ingest
boolean

Set this to true to enable a backup ingest url. stop_on_delete_stream defaults to false when set

encoding_settings
string

Identifier of the encoding settings group the broadcaster is using for this stream. This parameter is currently only in use for live-360 broadcasts. The value to be passed to this parameter is the value of the identifier key of the encoding settings preset. Encoding presets can be found by querying the /broadcaster_encoding_settings Graph API endpoint (GET query).

fisheye_video_cropped
boolean

Whether the single fisheye video is cropped or not

front_z_rotation
float

The front z rotation in degrees on the single fisheye video

game_show
JSON object

Configure this live stream to be a game show

game_type
enum {KNOCKOUT}

game_type

Required
is_spherical
boolean

Flag that denotes the broadcast is a 360 live broadcast.

live_encoders
list<numeric string or integer>

Live encoders that will broadcast to this live video

original_fov
int64

Original field of view of the camera

planned_start_time
integer

Unix timestamp when the broadcaster plans to go live.

privacy
Privacy Parameter

Privacy for this live video.

product_items
list<numeric string>

Products which will be shown with live videos.

projection
enum {EQUIRECTANGULAR, CUBEMAP, HALF_EQUIRECTANGULAR}

Flag that denotes expected projection for 360 live streams. The default value is EQUIRECTANGULAR.

published
boolean

Set this to false to preview the stream before going live.

                                                  Deprecated. Prefer setting the status instead.

schedule_custom_profile_image
image

Custom image that will appear in the scheduled live story and lobby.

spatial_audio_format
enum {ambiX_4}

Denotes the format of the spatial audio stream. When unspecified audio is presumed to be mono or stereo.

status
enum {UNPUBLISHED, LIVE_NOW, SCHEDULED_UNPUBLISHED, SCHEDULED_LIVE, SCHEDULED_CANCELED}

The status of the broadcast. A LIVE_NOW broadcast is currently live and visible to users. An UNPUBLISHED broadcast is in preparation; it's not visible to other users, and it may be automatically deleted after several hours in this state. (Consider using the SCHEDULED states to create a planned, future broadcast.)

stereoscopic_mode
enum {MONO, LEFT_RIGHT, TOP_BOTTOM}

Set this parameter to the stereoscopic mode for this video.

stop_on_delete_stream
boolean

Set this to true if stream should be stopped when deleteStream RTMP command received.

targeting
target

Object that limits the audience for this content. Anyone not in these demographics will not be able to view this content.

geo_locations
Object

countries
list<string>

regions
list<Object>

key
int64

cities
list<Object>

key
int64

zips
list<Object>

key
string

locales
list<string>

excluded_countries
list<string>

excluded_regions
list<int64>

excluded_cities
list<int64>

excluded_zipcodes
list<string>

timezones
list<int64>

age_min
enum {13, 15, 18, 21, 25}

title
UTF-8 string

The title of the live video. Maximum 254 characters.

Supports Emoji

Return Type

This endpoint supports read-after-write and will read the node represented by id in the return type.
Struct {
id: numeric string,
stream_url: string,
secure_stream_url: string,
stream_secondary_urls: List [
string
],
secure_stream_secondary_urls: List [
string
],
dash_ingest_url: string,
dash_ingest_secondary_urls: List [
string
],
}

Validation Rules

ErrorDescription
100Invalid parameter
200Permissions error
475You have been temporarily blocked from posting videos because you added videos containing content that may belong to someone else.
80001There have been too many calls to this Page account. Wait a bit and try again. For more info, please refer to https://developers.facebook.com/docs/graph-api/overview/rate-limiting.
You can make a POST request to live_videos edge from the following paths:
When posting to this edge, a LiveVideo will be created.

Parameters

ParameterDescription
attribution_app_id
numeric string or integer

SELF_EXPLANATORY

content_tags
list<numeric string>

Tags that describe the contents of the video. Use search endpoint with type=adinterest to get possible IDs.

                                Example:
                                ~~~~
                                /search?type=adinterest&q=couscous
                                ~~~~

description
UTF-8 string

The description of the live video.

Supports Emoji
enable_backup_ingest
boolean

Set this to true to enable a backup ingest url. stop_on_delete_stream defaults to false when set

encoding_settings
string

Identifier of the encoding settings group the broadcaster is using for this stream. This parameter is currently only in use for live-360 broadcasts. The value to be passed to this parameter is the value of the identifier key of the encoding settings preset. Encoding presets can be found by querying the /broadcaster_encoding_settings Graph API endpoint (GET query).

fisheye_video_cropped
boolean

Whether the single fisheye video is cropped or not

front_z_rotation
float

The front z rotation in degrees on the single fisheye video

is_spherical
boolean

Flag that denotes the broadcast is a 360 live broadcast.

live_encoders
list<numeric string or integer>

Live encoders that will broadcast to this live video

original_fov
int64

Original field of view of the camera

planned_start_time
integer

Unix timestamp when the broadcaster plans to go live.

privacy
Privacy Parameter

Privacy for this live video.

projection
enum {EQUIRECTANGULAR, CUBEMAP, HALF_EQUIRECTANGULAR}

Flag that denotes expected projection for 360 live streams. The default value is EQUIRECTANGULAR.

published
boolean

Set this to false to preview the stream before going live.

                                Deprecated. Prefer setting the status instead.

schedule_custom_profile_image
image

Custom image that will appear in the scheduled live story and lobby.

spatial_audio_format
enum {ambiX_4}

Denotes the format of the spatial audio stream. When unspecified audio is presumed to be mono or stereo.

status
enum {UNPUBLISHED, LIVE_NOW, SCHEDULED_UNPUBLISHED, SCHEDULED_LIVE, SCHEDULED_CANCELED}

The status of the broadcast. A LIVE_NOW broadcast is currently live and visible to users. An UNPUBLISHED broadcast is in preparation; it's not visible to other users, and it may be automatically deleted after several hours in this state. (Consider using the SCHEDULED states to create a planned, future broadcast.)

stereoscopic_mode
enum {MONO, LEFT_RIGHT, TOP_BOTTOM}

Set this parameter to the stereoscopic mode for this video.

stop_on_delete_stream
boolean

Set this to true if stream should be stopped when deleteStream RTMP command received.

title
UTF-8 string

The title of the live video. Maximum 254 characters.

Supports Emoji

Return Type

This endpoint supports read-after-write and will read the node represented by id in the return type.
Struct {
id: numeric string,
stream_url: string,
secure_stream_url: string,
stream_secondary_urls: List [
string
],
secure_stream_secondary_urls: List [
string
],
dash_ingest_url: string,
dash_ingest_secondary_urls: List [
string
],
}

Validation Rules

ErrorDescription
200Permissions error
100Invalid parameter

Updating

You can update a LiveVideo by making a POST request to /{live_video_id}.

Parameters

ParameterDescription
allow_bm_crossposting
boolean

If set to true, makes this live video available for crossposting by Pages in your Business Manager.

content_tags
list<numeric string>

Tags that describe the contents of the video. Use search endpoint with type=adinterest to get possible IDs. For example, /search?type=adinterest&q=couscous.

crossposting_actions
array<JSON object>

        List of desired changes to crossposting for this broadcast. Each change must provide a `page_id` and `action`. Example:


            [
              {page_id: 1234, action: 'enable_crossposting'},
              {page_id: 4567, action: 'enable_crossposting_and_create_post'}
            ]


        Available action types:


        - `enable_crossposting`: Enables crossposting for this broadcast with the Page if it is not currently enabled. No change if crossposting is already enabled with the Page for this broadcast.
        - `disable_crossposting`: Disables crossposting for this broadcast with the Page if it is currently enabled. No change if crossposting is not already enabled with the Page for this broadcast.
        - `enable_crossposting_and_create_post`: Same as `enable_crossposting`, but will also create a post as the Page. The post will be created even if crossposting is already enabled for the Page. This option is subject to your [live crossposting relationships](https://www.facebook.com/help/publisher/1385580858214929) and will fail for Pages without the required permission.

custom_labels
list<string>

Labels used to describe the video. Unlike content tags, custom labels are not published and only appear in insights data.

description
UTF-8 string

The description of live video

Supports Emoji
direct_share_status
int64

The status to allow sponsor directly boost the post.

disturbing
boolean

If true, autoplay will be disabled and live video will have a graphic content warning overlay

donate_button_charity_id
int64

Specifies the ID of the charity for which a donate button will be added to the live video. If zero is passed, will remove the donate button on the video.

embeddable
boolean

If true, live video will be embeddable

end_live_video
boolean

If true, the live video will be ended. Only valid if the live video is still running

is_manual_mode
boolean

Flag to indicate that the scheduled broadcast is switched to manual mode

live_comment_moderation_setting
list<enum {FOLLOWER, SLOW, DISCUSSION, RESTRICTED, PROTECTED_MODE, SUPPORTER}>

Set of comment moderation settings for the live video

live_encoders
list<numeric string or integer>

Live encoders that will broadcast to this live video

master_ingest_stream_id
numeric string

Ingest stream to set to master and route viewers to.

place
place tag

Location associated with the video, if any.

planned_start_time
integer

Planned start time for a scheduled live video

privacy
Privacy Parameter

The privacy setting of live video

published
boolean

Should the live video be published? Only valid if not yet published.

        Deprecated. Prefer setting the status instead.

schedule_custom_profile_image
image

Custom image that will appear in the scheduled live story and lobby.

schedule_feed_background_image
image

Custom background image that appears in the updated scheduled live story

sponsor_id
numeric string or integer

Facebook Page id that is tagged as sponsor in the video post

sponsor_relationship
int64

Sponsor Relationship, such as Presented By or Paid PartnershipWith

status
enum {UNPUBLISHED, LIVE_NOW, SCHEDULED_UNPUBLISHED, SCHEDULED_LIVE, SCHEDULED_CANCELED}

The status of the LiveVideo.

A LIVE_NOW LiveVideo is one that will be published to the intended destination (Timeline, Group, Page, etc) upon receiving valid video data, or one that is already published and actively streaming.

An UNPUBLISHED LiveVideo is in preparation; it's not visible to other users, and it may be automatically deleted after several hours in this state.

A SCHEDULED_UNPUBLISHED LiveVideo is scheduled to go live at a future time.

A SCHEDULED_LIVE LiveVideo is one whose scheduled time has passed, yet the stream is not yet live. Either in the process of transitioning, or still waiting for a valid video stream.

(Consider using the SCHEDULED states to create a planned, future LiveVideo.)

tags
list<int>

Users tagged in the live video.

targeting
target

Object that limits the audience for this content. Anyone not in these demographics will not be able to view this content.

geo_locations
Object

countries
list<string>

regions
list<Object>

key
int64

cities
list<Object>

key
int64

zips
list<Object>

key
string

locales
list<string>

excluded_countries
list<string>

excluded_regions
list<int64>

excluded_cities
list<int64>

excluded_zipcodes
list<string>

timezones
list<int64>

age_min
enum {13, 15, 18, 21, 25}

title
UTF-8 string

The title of the live video.

Supports Emoji

Return Type

This endpoint supports read-after-write and will read the node represented by id in the return type.
Struct {
id: numeric string,
persistent_stream_url: string,
backup_persistent_stream_url: string,
}

Validation Rules

ErrorDescription
100Invalid parameter
200Permissions error
6000There was a problem uploading your video file. Please try again with another file.
475You have been temporarily blocked from posting videos because you added videos containing content that may belong to someone else.

Deleting

You can delete a LiveVideo by making a DELETE request to /{live_video_id}.

Limitations

You cannot delete a LiveVideo on a User or Group.

Parameters

This endpoint doesn't have any parameters.

Return Type

Struct {
success: bool,
}

Validation Rules

ErrorDescription
100Invalid parameter
200Permissions error