xAPI Video Profile Definition

Included fro convenience, this document can be downloaded from the profile server.

profiles.adlnet.gov/profile/90b2c849-d744-4d0c-8bd0-403e7859a35b

{ "id": "https://w3id.org/xapi/video", "@context": "https://w3id.org/xapi/profiles/context", "type": "Profile", "conformsTo": "https://w3id.org/xapi/profiles#1.0", "prefLabel": { "en": "Video Profile" }, "definition": { "en": "The video profile of the xAPI was created to identify and standardize the common types of interactions that can be tracked in any video player." }, "seeAlso": "https://github.com/liveaspankaj/xapi-video-cop", "versions": [ { "id": "https://w3id.org/xapi/video/v1.0.2", "wasRevisionOf": [ "https://w3id.org/xapi/video/v1.0.1" ], "generatedAtTime": "2020-11-05T18:40:02.945Z" } ], "author": { "type": "Organization", "name": "Video", "url": "https://github.com/adlnet/xapi-authored-profiles" }, "concepts": [ { "id": "https://w3id.org/xapi/video/verbs/paused", "type": "Verb", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "paused" }, "definition": { "en": "Indicates the actor paused the video being played at a specific point." }, "exactMatch": [ "http://id.tincanapi.com/verb/paused" ] }, { "id": "https://w3id.org/xapi/video/verbs/played", "type": "Verb", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "played" }, "definition": { "en": "Indicates that the actor started experiencing the recorded media object." }, "exactMatch": [ "http://activitystrea.ms/schema/1.0/play" ] }, { "id": "https://w3id.org/xapi/video/verbs/seeked", "type": "Verb", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "seeked" }, "definition": { "en": "Indicates the actor changed the progress towards a specific point." } }, { "id": "https://w3id.org/xapi/video/activity-type/video", "type": "ActivityType", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "video" }, "definition": { "en": "A recording of both the visual and audible components made available on a display screen." }, "exactMatch": [ "http://activitystrea.ms/schema/1.0/video" ] }, { "id": "https://w3id.org/xapi/video/extensions/completion-threshold", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "completion-threshold" }, "definition": { "en": "Used to specify the percentage of media that should be consumed to trigger a completion. Value MUST be between 0 and with maximum 3 decimals. If Completion Threshold is not included, it is assumed to be 1, i.e. 100%. If Completion Threshold is not 1, it MUST be included in Video Profile statements with these verbs: initialized, paused, completed, and terminated." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/cc-subtitle-enabled", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "cc-subtitle-enabled" }, "definition": { "en": "Used to expresses whether subtitle or closed captioning is enabled." }, "inlineSchema": "{ \"type\": \"boolean\" }" }, { "id": "https://w3id.org/xapi/video/extensions/cc-subtitle-lang", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "cc-subtitle-lang" }, "definition": { "en": "Used to express the language of subtitle or closed captioning. The lexical and value spaces of xsd:language are the set of language codes defined by RFC 5646. For example, 'en' for English or 'en-US' for American English." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/video/extensions/frame-rate", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "frame-rate" }, "definition": { "en": "Used to express the frame rate or frames per second of a video (or average rate of frames per second in the case of variable frame-rate)." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/full-screen", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "full-screen" }, "definition": { "en": "Used to expresses that the video is played in full screen mode." }, "inlineSchema": "{ \"type\": \"boolean\" }" }, { "id": "https://w3id.org/xapi/video/extensions/length", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "length" }, "definition": { "en": "The actual length of the media in seconds. Value MUST be a float value with maximum 3 decimals." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/quality", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "quality" }, "definition": { "en": "Used to express the video resolution or quality. Integer Value (e.g., 360, 480, 720, 1080, etc.)." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/session-id", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "session-id" }, "definition": { "en": "Used to provide the session identifier associated with the activity." }, "inlineSchema": "{ \"type\": \"string\", \"pattern\": \"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[8-9a-bA-B][0-9a-fA-F]{3}-[0-9a-fA-F]{12}\" }" }, { "id": "https://w3id.org/xapi/video/extensions/screen-size", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "screen-size" }, "definition": { "en": "Used to express the total available screen size for Video playback." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/video/extensions/speed", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "speed" }, "definition": { "en": "Used to express the play-back speed (e.g., 1x,2x,0,-1x,-2x)." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/video/extensions/track", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "track" }, "definition": { "en": "Used to identify the name of the audio track in a media object." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/video/extensions/user-agent", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "user-agent" }, "definition": { "en": "Used to identify the User Agent string of the browser, if the video is launched in browser." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/video/extensions/volume", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "volume" }, "definition": { "en": "Used to identify the loudness of sound specified for a media object." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/video-playback-size", "type": "ContextExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "video-playback-size" }, "definition": { "en": "Used to identify the current video size in Width x Height as viewed by the user." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/video/extensions/played-segments", "type": "ResultExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "played-segments" }, "definition": { "en": "Played segments reveals potential heat map data for showing parts of the video the actor watched during current registration in chronological order (e.g., 0.000[.]12.000[,]14.000[.]21.000[,]18.000[.]30.000)." }, "inlineSchema": "{ \"type\": \"string\" }" }, { "id": "https://w3id.org/xapi/video/extensions/progress", "type": "ResultExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "progress" }, "definition": { "en": "Used to expresses the percentage of media consumed by the actor." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/time", "type": "ResultExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "time" }, "definition": { "en": "Used to express the time into the video. (e.g., “00000.000” in seconds and milliseconds)." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/time-from", "type": "ResultExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "time-from" }, "definition": { "en": "Used to identify the point in time the actor changed from in a media object (eg: “200.000” in seconds and milliseconds)." }, "inlineSchema": "{ \"type\": \"number\" }" }, { "id": "https://w3id.org/xapi/video/extensions/time-to", "type": "ResultExtension", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "time-to" }, "definition": { "en": "Used to identify the point in time the actor changed to in a media object (eg: “300.000” in seconds and milliseconds)." }, "inlineSchema": "{ \"type\": \"number\" }" } ], "templates": [ { "id": "https://w3id.org/xapi/video/templates#initialized", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Initialized" }, "definition": { "en": "The statement template and rules associated with a video being initialized or started." }, "verb": "http://adlnet.gov/expapi/verbs/initialized", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/length']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/completion-threshold']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/volume']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/video-playback-size']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/user-agent']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/cc-enabled']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/cc-subtitle-lang']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/screen-size']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/speed']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/full-screen']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#played", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Played" }, "definition": { "en": "The statement template and rules associated with a video being played." }, "verb": "https://w3id.org/xapi/video/verbs/played", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/played-segments']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#paused", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Paused" }, "definition": { "en": "The statement template and rules associated with a video being paused." }, "verb": "https://w3id.org/xapi/video/verbs/paused", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/length']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/completion-threshold']", "presence": "recommended" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/played-segments']", "presence": "recommended" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/progress']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#seeked", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Seeked" }, "definition": { "en": "The statement template and rules associated with a video seekbar being moved from and to a specific position in the video." }, "verb": "https://w3id.org/xapi/video/verbs/seeked", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time-to']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time-from']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#completed", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Completed" }, "definition": { "en": "The statement template and rules associated with a video being completed." }, "verb": "http://adlnet.gov/expapi/verbs/completed", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/length']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/progress']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/completion-threshold']", "presence": "recommended" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/played-segments']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#terminated", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Terminated" }, "definition": { "en": "The statement template and rules associated with a terminating the player." }, "verb": "http://adlnet.gov/expapi/verbs/terminated", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/length']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/progress']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/completion-threshold']", "presence": "recommended" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/played-segments']", "presence": "recommended" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#closed-captioning", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Enable Closed Captioning" }, "definition": { "en": "Volume Change Interaction" }, "verb": "http://adlnet.gov/expapi/verbs/interacted", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time']", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/cc-enabled']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/cc-subtitle-lang']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#volumechange", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Volume Change Interaction" }, "definition": { "en": "Volume Change Interaction" }, "verb": "http://adlnet.gov/expapi/verbs/interacted", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/volume']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] }, { "id": "https://w3id.org/xapi/video/templates#screenchange", "type": "StatementTemplate", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Screen Change Interaction" }, "definition": { "en": "Screen Change Interaction" }, "verb": "http://adlnet.gov/expapi/verbs/interacted", "objectActivityType": "https://w3id.org/xapi/video/activity-type/video", "rules": [ { "location": "$.id", "presence": "included" }, { "location": "$.timestamp", "presence": "included" }, { "location": "$.result.extensions['https://w3id.org/xapi/video/extensions/time']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/full-screen']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/screen-size']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/video-playback-size']", "presence": "included" }, { "location": "$.context.extensions['https://w3id.org/xapi/video/extensions/session-id']", "presence": "recommended" } ] } ], "patterns": [ { "id": "https://w3id.org/xapi/video/patterns#generalpattern", "type": "Pattern", "primary": true, "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "General Pattern" }, "definition": { "en": "The general pattern and sequence of Statement templates using the Video Profile." }, "sequence": [ "https://w3id.org/xapi/video/templates#initialized", "https://w3id.org/xapi/video/patterns#optionalmiddlestatements", "https://w3id.org/xapi/video/templates#terminated" ] }, { "id": "https://w3id.org/xapi/video/patterns#all-activities-pattern", "type": "Pattern", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "All Activities Pattern" }, "definition": { "en": "All of the Video Profile statement templates." }, "alternates": [ "https://w3id.org/xapi/video/templates#played", "https://w3id.org/xapi/video/templates#paused", "https://w3id.org/xapi/video/templates#seeked", "https://w3id.org/xapi/video/templates#volumechange", "https://w3id.org/xapi/video/templates#screenchange", "https://w3id.org/xapi/video/templates#closed-captioning", "https://w3id.org/xapi/video/templates#completed" ] }, { "id": "https://w3id.org/xapi/video/patterns#optionalmiddlestatements", "type": "Pattern", "inScheme": "https://w3id.org/xapi/video/v1.0.2", "prefLabel": { "en": "Optional Middle Statements" }, "definition": { "en": "A combined pattern of zero or more Video Profile standard statement templates that can be used with the general pattern." }, "zeroOrMore": "https://w3id.org/xapi/video/patterns#all-activities-pattern" } ] }