The following criteria must be met for a device or application to pass certification.
Correct API Usage
- 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 flags and resolution when creating live stream objects
- i.e. does not send a resolution larger or smaller than the frame size actually being sent.
- Sends all flags 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 refresh 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 / YouTube 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 must be able to 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, at minimum, Public or Unlisted.
- The interface must not allow the user 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 or offer the ability to utilize the YouTube Live “slating” features if the aspect ratio is anything other than 16:9.
- The interface must not allow the user 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 stream must be encoded per the YouTube Live encoding standards.
- The product must buffer locally when bandwidth is low (rather than losing video) or give sufficient warning to the user that video may be lost.
- The product must not frame-drop during encoding without changing timestamps to reflect the missing frame(s).
- 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 (as long as YouTube Live also supports said quality and framerate settings.)
- 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 unless they specifically indicate they wish to stop the broadcast or the platform has terminated the event.
- 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.)
- 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 (and is subject to the terms of those contracts.)
YouTube reserves the right to limit the number of certified devices and software, and to withhold certification for reasons other than those listed above.
These are practices that YouTube encourages our service providers to follow.
- A signed-in user should be able to begin broadcasting with a single click.
- A user should be able to 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 usage
- Unexpected dialogs causing an abrupt focus change or end to fullscreen gameplay
- Unseen questions or prompts 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 be able 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, i.e. “(device name) - (date time)” or “(game name) - (date time)”
- The application properly categorizes content via the videos API
- On form factors that allow it (i.e. 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
- i.e. 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 region) to allow us to provide full support for live streaming.