How to: Create Developer-Created Game Clips

For a user to create and upload a video to Xbox Live, he or she must have an Xbox Live Gold membership. While this feature is available to all users who have Gold memberships, it’s only active by default for the accounts of teens and adults. For children, and for teens, their permission to use game DVR is subject to parental controls.

If there are multiple people playing simultaneously on the same console, game DVR will record clips as long as at least one player is an adult or a teen who has permission and no players have turned off game DVR.

The following sections describe the steps for creating game clips:

Creating the Video Clip from the Buffer

There are two ways for developers to specify the start and end points of a video clip.

The first way consists of two commands: one to initiate the recording, and one to end it. This method of creating a clip could be used, for example, at the beginning of a boss fight. The title could always begin a recording at the beginning of the boss fight, and end it when the boss is defeated. In such a situation, if the player dies or does not defeat the boss, the title could cancel the clip, so that only successful events are recorded.

The second way to create a game clip is to use the timespan method. This method should be used when something awesome—but not necessarily expected—happens. For example, a player might kill a significant number of enemies in a short amount of time. The timespan method allows the developer to specify a point in the system time and a number of seconds forward from that time (not to exceed 300 seconds). This timespan can be in the past as long as it’s not greater than five minutes into the past (the size of the ring buffer).

Developers will use ApplicationClipCapture for both types of capture; for more information, see the API documentation for the Xbox Developer Portal (XDP).

Some of the information saved with clips typically comes from the user. This includes a name for the clip and a captions. Since these strings are viewable, games should use the string validation service to look for unacceptable content before saving them with the clip. The string validation service is available through the Microsoft.Xbox.Services.System.StringService class.

Providing Required Metadata to the Service

When creating a clip, the service needs some specific information, including the following:

All of this information will be provided to Xbox via the ApplicationClipInfo object; for more information, see the API documentation.

Greatest Moment ID

GreatestMomentId is an identifier that points the Game Clips Service to the appropriate localized string entered in Xbox Developer Portal. This ID is auto-generated through XDP, and is assigned a value of 1-15. The localized string for the game clip will be returned in the clip metadata queries. The localized string will then appear in Game DVR apps (for example, Upload).

User objects of all signed-in users on the console

The first XUID in the list becomes the owner of the clip. As a policy, Xbox does not tag other players in a user’s video, but that information is stored for internal processes.

Multiplayer Correlation ID

MultiplayerCorrelationId is used for correlating data platform events that occurred during the session with the video.

Thumbnail image or thumbnail timestamp

Developers will be able to specify a particular thumbnail for use on their videos. There are a few ways to do this:

  1. They can provide the actual thumbnail image as a buffer.
  2. They can provide a timestamp in system time at which the thumbnail should be generated.

If neither method is chosen, the Game Clips Metadata Service will create a thumbnail from the first frame three seconds into the video.

Writing optional metadata to the service

Developers may, at their discretion, provide additional metadata in a field known as TitleData, which contains a string that is stored with the rest of the video’s metadata. Titles may put notes or information here that they may use in their own custom experiences.