Verification Prerequisites

The following criteria must be met for a device or app to pass certification.

Correct API Use

  • Uses the YouTube V3 Live Streaming API to automate the use of the YouTube Live platform on behalf of the user.
    • Creates, transitions and destroys broadcast objects via the API.
    • Sends the appropriate report and resolution when creating live stream objects
      • Does not send a resolution larger or smaller than the frame size actually being sent.
      • Sends all reports necessary to best represent the video+audio content of the stream.
  • Uses the Google / YouTube authentication APIs to verify the Broadcaster as a YouTube user / channel.
    • Users must be able to broadcast on any channel linked to their Google Account, as long as the channel has been enabled for live broadcasting.
    • Once a user has signed in, they should remain signed in until they choose to sign out or until the tokens have become invalid.
  • Sign-in is refreshed as needed via the reload token.
  • Uses available APIs to figure out if the user’s specified YouTube channel is permitted to use the Live Streaming feature.
  • Allows the user to sign out or remove the app. If account linking is offered, allows the user to “unlink” their Google account.

Optimal User Experience

  • A user who is unauthorized for Live Streaming (because they haven't activated the feature on their channel yet) is directed to the right page at YouTube.com to activate it.
  • A signed-in user can start and stop broadcasting without ever opening YouTube.com or the YouTube Live Control Room.
  • The link to an active broadcast is discoverable in the interface in no more than one click.
  • The Live Control Room is accessible through the program’s interface in no more than one click.
  • Broadcasters are given clear guidance on choosing a resolution and bitrate.
  • Broadcasters must be offered the choice of making their video Public or Unlisted.

Transmission

  • The interface must not allow the member to select settings that are incompatible or which will produce an unviewable stream.
    • The bitrate and frame size cannot be set incorrectly
    • The bitrate and frame size set in the interface are guaranteed to match the bitrate set up on the target event
  • The software or device must not utilize the YouTube Live “slating” features if the aspect ratio is anything other than 16:9.
  • The interface must not allow the member to change encoder settings during a broadcast (other than bitrate, which is acceptable to change during a broadcast.)
  • The product must reliably encode a healthy, YouTube-compatible stream.
  • The product must buffer locally when bandwidth is low or give sufficient warning that video may be lost.
  • The product must not frame-drop during encoding without changing timestamps to reflect the missing frames.
  • The device/software must make available the same encoding quality and frame-rate settings for the YouTube Live platform that it supports on the other platforms.

Error Handling

  • Temporary disconnection events (i.e. the RTMP server hanging up, connectivity dropping momentarily) must not end the broadcast or start a new broadcast.
    • The user must be permitted to reconnect to the existing event and continue broadcasting. Exceptions if they specifically indicate they wish to stop the broadcast or the platform has ended the event.

Measurability

  • The encoder must give a clear brand and encoder version string identifier in the “flashVer” field (for RTMP encoders) or User-Agent field (for HTTP encoders.)

Brand Use

  • The YouTube branding can only be used in accordance with the guidelines posted at the Google Developers site.
  • Use of program-specific branding is permitted upon completion of the certification and execution of associated contracts.

YouTube reserves the right to limit the number of certified devices and software, and to withhold certification for reasons other than the ones listed above.

Best Practices

These best practices are the ones that YouTube encourages our service providers to follow.

  • A signed-in user can begin broadcasting with a single click.
  • A user can broadcast to scheduled events that have been created (but not started) on the YouTube Live “Events” front end.
  • The live broadcast should not negatively impact the experience of the user.
    • More than expected CPU and memory use
    • Unexpected dialogs causing an abrupt focus change or end to fullscreen gameplay
    • Unseen questions that interrupt a broadcast until they've gotten a response from the user
  • “One-click” broadcasting feature set should meet the minimum expected baseline for the segment.
    • Gaming product consumers expect to “instantly” broadcast gameplay combined with an isolated camera shot of themselves, with the microphone open and mixed in for real-time commentary.
    • Mobile products should offer geo-tagging capabilities
  • One-click broadcasting offers the ability for the user to change the metadata on their broadcast after it has already begun
    • Rather than prompting them and imposing roadblocks between the user and the broadcast beginning, begin immediately and allow an easy way to modify metadata later.
  • A user can expect their events to be properly categorized and titled.
    • Automatically-named events follow a predictable structure that makes sense for the use case, such as “(device name) - (date time)” or “(game name) - (date time)”
    • The application properly categorizes content via the videos API
  • On form factors that allow it (computer, smart devices with screens) the user should be permitted to see/interact with the “live chat” feature.
  • Users are made aware of the platform limitations
    • The maximum length of a DVR, the maximum length of a video-on-demand copy of the broadcast
  • Users are offered a link to the on-demand version of the video after the broadcast has concluded

Data Modeling and Collection

YouTube requests an estimated number of devices/installations (by country/region) to allow us to give full support for live streaming.

 

Was this helpful?
How can we improve it?