Overview

Live video broadcasts are represented by LiveVideo objects in the Graph API. To broadcast a live video, you first use the API to create a LiveVideo object on a User, Page, Group, or Event. Upon creation, the API will return a LiveVideo object ID and an ingest streaming URL. You can then use the streaming URL to stream live video data from your encoder to the LiveVideo object and use the object to manipulate the broadcast’s visibility.

Broadcasts

Live video broadcasts are represented by LiveVideo objects. By manipulating a LiveVideo object's properties, you can control the live video broadcast. For example, you can change the live video broadcast's visibility, update its description or title, add labels, schedule start and stop dates, define audiences, add polls, or perform many other actions.

LiveVideo objects are associated with LiveVideoInputStream objects, which represent the broadcast’s ingest streaming data. LiveVideoInputStream objects are created and managed automatically for you.

Broadcasts can be created on User, Page, Group, or Event objects using their /live_videos edge.

Stream URLs

Stream URLs are ingest URLs that you can use to stream live video data from your encoder to a LiveVideo object. When you use the API to create a LiveVideo object, the API will respond with a LiveVideo object ID and a unique stream URL. The stream URL must be used within 24 hours before expiring. Once used, a stream URL can be streamed to for up to 8 hours.

Ingest Protocols

The Live Video API supports both RTMPS and DASH ingest protocols.

RTMPS

Data streamed to an ingest stream URL must be encrypted using the RTMPS data transfer protocol. When you create a LiveVideo object, the API will return an RTMPS secure stream URL which you can use when streaming to our servers.

As of May 23rd, 2019, the following software and hardware providers support RTMPS:

  • BeLive.tv
  • Brightcove
  • DJI
  • EasyLive
  • Elemental
  • Epiphan
  • FFmpeg
  • Grabyo
  • Haivision
  • LiveStream
  • LiveU
  • Mevo
  • OBS
  • Switcher Studio
  • Telescope
  • Telestream
  • Teradek
  • Wowza
  • XSplit
  • Zixi

Live video streams on Pages and Workplace can use the non-encrypted standard RTMP protocol until November 1st, 2019, after which RTMP will no longer be supported. When starting a live stream, the API response will include an RTMP stream URL which can be used for non-encrypted streaming to our servers. Note that if you are using RTMP and using a persistent stream key, you should reset your persistent key and update any devices that use them or your streams will fail.

DASH

Dynamic Adaptive Streaming over HTTP (DASH) support is currently in beta and only available to select Facebook Marketing Partners. We are not accepting new applications at this time.

Polls

You can use the API to create polls on live video broadcasts and get real-time responses from your viewers. Polls are represented by VideoPoll objects in the Graph API, and can be created with the POST /{live-video-id}/polls endpoint on a LiveVideo object. Upon creation, the API will return a VideoPoll object ID, which you can use to manipulate the poll and query for viewer interactions.

Live Video Composer

If you are using streaming software that does not integrate with the Live Video API, you can use our Live Video Composer tool to get stream URLs and plug them into your preferred streaming software (e.g, OBS, XSplit, etc.) manually. The Live Video Composer allows you to create broadcasts on your own User profile, or on Pages, Groups, or Events that you manage.

Video Specifications

Refer to our reference for a complete list of audio and video specifications.