├── SUMMARY.md ├── overview.md ├── profile.md ├── references.md ├── GLOSSARY.md ├── README.md ├── templates.md └── statement_data_model.md /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | * [Introduction](README.md) 4 | * [Summary](SUMMARY.md) 5 | * [Overview](overview.md) 6 | * [xAPI Statement Data Model](statement_data_model.md) 7 | * [References](references.md) 8 | * [Templates](templates.md) 9 | * [Glossary](GLOSSARY.md) 10 | 11 | -------------------------------------------------------------------------------- /overview.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | This Video Profile built by xAPI Video Community of Practice describes Experience API Vocabulary to track Video consumption and explains how to use them. 4 | 5 | ## Version 6 | 7 | Current version is: xAPI Video Profile v1.0 8 | 9 | ## History 10 | 11 | | Date | Event | 12 | | :--- | :--- | 13 | | May 9th, 2019 | Version 1.0 | 14 | | Feb 4th, 2019 | Release Candidate 1 \(RC1\) | 15 | | Jan 21st, 2015 | First Meeting | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /profile.md: -------------------------------------------------------------------------------- 1 | #xAPI Video Profile 2 | 3 | --- 4 | 5 | ## Table of Contents 6 | [__Revision History__](#revhistory) 7 | * [__1.0 Overview__](#overview) 8 | * [1.1 Scope](#scope) 9 | * [__2.0 References__](#references) 10 | * [__3.0 Definitions__](#definitions) 11 | * [3.1 Abbreviations and Acronyms](#acronyms) 12 | * [__4.0 xAPI Statement Data Model__](#xapi_data_model) 13 | * [4.1 Statement ID](#statement_id) 14 | * [4.2 Actor](#actor) 15 | * [4.3 Verbs](#verbs) 16 | 17 | -------------------------------------------------------------------------------- /references.md: -------------------------------------------------------------------------------- 1 | # References 2 | 3 | The following referenced resources are indispensable for the application of this specification. 4 | 5 | * "Experience API", version 1.0.3, ADL
6 | https://github.com/adlnet/xAPI-Spec/blob/xAPI-1.0.3/xAPI.md 7 | 8 | * Internationalized Resource Identifiers (IRIs): IRI Syntax January 2005
9 | https://www.ietf.org/rfc/rfc3987.txt 10 | 11 | * The JSON Data Interchange Format
12 | http://json.org/ 13 | 14 | * RFC 5646 Language Tags
15 | https://www.w3.org/International/articles/language-tags/ 16 | -------------------------------------------------------------------------------- /GLOSSARY.md: -------------------------------------------------------------------------------- 1 | # Glossary 2 | 3 | ## ADL 4 | 5 | Advanced Distributed Learning 6 | 7 | ## API 8 | 9 | Application Programming Interface. A set of rules and standards created to allow access into a software application or tool. 10 | 11 | ## IRI 12 | 13 | Internationalized Resource Identifier. A unique identifier which could be an IRL. Used to identify an object such as a verb, activity or activity type. Unlike URIs, IRIs can contain some characters outside of the ASCII character set in order to support international languages. 14 | 15 | IRIs always include a scheme. This is not a requirement of this standard, but part of the definition of IRIs, per RFC 3987. What are sometimes called "relative IRIs" are not IRIs. 16 | 17 | ## IRL 18 | 19 | Internationalized Resource Locator. In the context of this document, an IRL is an IRI that when translated into a URI (per the IRI to URI rules), is a URL. 20 | 21 | ## JSON 22 | 23 | JavaScript Object Notation 24 | 25 | ## LMS 26 | 27 | Learning Management System. "A software package used to administer one or more courses to one or more learners. An LMS is typically a web-based system that allows learners to authenticate themselves, register for courses, complete courses and take assessments" (Learning Systems Architecture Lab definition). An LMS in this document is used as an example of how a user is identified as "trusted" within a system and able to access its Learning Experiences. 28 | 29 | ## LRP 30 | 31 | Learning Record Provider. An xAPI Client that sends data to Learning Record Store\(s\). Often, the Learning Record Provider will create Learning Records while monitoring a learner as a part of a Learning Experience. 32 | 33 | ## LRS 34 | 35 | Learning Record Store. A server \(i.e. system capable of receiving and processing web requests\) that is responsible for receiving, storing, and providing access to Learning Records. 36 | 37 | ## URI 38 | 39 | Uniform Resource Identifier 40 | 41 | ## URL 42 | 43 | Uniform Resource Locator 44 | 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # xAPI Video Community of Practice 2 | 3 | This is an official ADL community to build a profile of the xAPI to identify and standardize video interactions that can be tracked. The profile is known as **xAPI Video Profile**. 4 | 5 | ## xAPI Video CoP Meetings 6 | 7 | Meetings have been suspended since the release of xAPI Video Profile v1.0 8 | 9 | For any questions, or to request for a meeting, please contact the Chair of the Group: 10 | 11 | **Pankaj Agrawal** 12 | contact@pankajagrawal.com 13 | 14 | or raise a [GitHub ticket](https://github.com/liveaspankaj/xapi-video-cop/issues). 15 | 16 | Please visit the Wiki for details and Meeting Minutes: 17 | https://github.com/liveaspankaj/xapi-video-cop/wiki 18 | 19 | ## xAPI Video CoP Google Group 20 | 21 | * URL: https://groups.google.com/forum/#!members/xapi-video-cop 22 | 23 | 24 | ## xAPI Video CoP Contributors 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 |
NameCompany
Pankaj AgrawalNext Software Solutions
Humera ShaziaNext Software Solutions
Jonathan Mark KevanUniversity of Hawaii at Manoa
Jason HaagADL & Veracity
Anthony AltieriRedCross
Patrick SelbyLexisNexis
Mark Grant
Charles TouronUS ARMY
Craig WigginsADL
Andy JohnsonADL
Bill McDonaldcmi5 working group leader
Henry RynginXsol
Adam CooperCetis, University of Bolton, UK
Andrew DownesRustici
Christopher Thompson
Daniel Latourelle
Florian TolkADL
Ingo DahnUniversity of Koblenz-Landau
J Pablo CaballeroAcutilis s.l
Jeff Segall
Jessie ChuangClassroom Aid Inc.
John CostaIEEE ADB/RePubIT
Marko Grolo
Michael StordeurJDI Software
Trey HaydenADL
Vincent
142 | 143 | 144 | ## xAPI Video Profile (current version) 145 | 146 | **Current Version:** xAPI Video Profile v1.0 147 | 148 | [Online Version](https://liveaspankaj.gitbooks.io/xapi-video-profile/content/SUMMARY.html) 149 | 150 | **Downloads:** [PDF](https://www.gitbook.com/download/pdf/book/liveaspankaj/xapi-video-profile) | [Mobi](https://www.gitbook.com/download/mobi/book/liveaspankaj/xapi-video-profile) | [ePub](https://www.gitbook.com/download/epub/book/liveaspankaj/xapi-video-profile) 151 | 152 | ## License 153 | Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 154 | 155 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License." 156 | 157 | 158 | 159 | -------------------------------------------------------------------------------- /templates.md: -------------------------------------------------------------------------------- 1 | # Statement Template Examples 2 | 3 | The following example statements are provided for your convenience and conform to the video profile requirements. 4 | 5 | ## Initialized 6 | 7 | ``` 8 | { 9 | "actor": { 10 | "mbox": "mailto:jlh@example.com", 11 | "name": "Video User", 12 | "objectType": "Agent" 13 | }, 14 | "verb": { 15 | "id": "http://adlnet.gov/expapi/verbs/initialized", 16 | "display": { 17 | "en-US": "initialized" 18 | } 19 | }, 20 | "timestamp": "2018-08-07T15:27:52.365Z", 21 | "object": { 22 | "definition": { 23 | "type": "https://w3id.org/xapi/video/activity-type/video", 24 | "name": { 25 | "en-US": "Ocean Life" 26 | }, 27 | "description": { 28 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 29 | } 30 | }, 31 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 32 | "objectType": "Activity" 33 | }, 34 | "context": { 35 | "contextActivities": { 36 | "category": [ 37 | { 38 | "id": "https://w3id.org/xapi/video" 39 | } 40 | ] 41 | }, 42 | "extensions": { 43 | "https://w3id.org/xapi/video/extensions/volume": 1, 44 | "https://w3id.org/xapi/video/extensions/video-playback-size": "640x264", 45 | "https://w3id.org/xapi/video/extensions/user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36", 46 | "https://w3id.org/xapi/video/extensions/speed": "1x", 47 | "https://w3id.org/xapi/video/extensions/cc-subtitle-lang": "", 48 | "https://w3id.org/xapi/video/extensions/completion-threshold": "1.0", 49 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049", 50 | "https://w3id.org/xapi/video/extensions/length": 46.613333, 51 | "https://w3id.org/xapi/video/extensions/quality": "960x400", 52 | "https://w3id.org/xapi/video/extensions/screen-size": "2560x1440", 53 | "https://w3id.org/xapi/video/extensions/frame-rate": "23.98", 54 | "https://w3id.org/xapi/video/extensions/cc-enabled": false, 55 | "https://w3id.org/xapi/video/extensions/full-screen": false 56 | }, 57 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 58 | }, 59 | "id": "86c5b148-4462-4da9-a13f-b570c27fa049" 60 | } 61 | ``` 62 | 63 | ## Played 64 | 65 | ``` 66 | { 67 | "actor": { 68 | "mbox": "mailto:jlh@example.com", 69 | "name": "Video User", 70 | "objectType": "Agent" 71 | }, 72 | "verb": { 73 | "id": "https://w3id.org/xapi/video/verbs/played", 74 | "display": { 75 | "en-US": "played" 76 | } 77 | }, 78 | "timestamp": "2018-08-07T15:27:52.376Z", 79 | "object": { 80 | "definition": { 81 | "type": "https://w3id.org/xapi/video/activity-type/video", 82 | "name": { 83 | "en-US": "Ocean Life" 84 | }, 85 | "description": { 86 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 87 | } 88 | }, 89 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 90 | "objectType": "Activity" 91 | }, 92 | "result": { 93 | "extensions": { 94 | "https://w3id.org/xapi/video/extensions/time": 0 95 | } 96 | }, 97 | "context": { 98 | "contextActivities": { 99 | "category": [ 100 | { 101 | "id": "https://w3id.org/xapi/video" 102 | } 103 | ] 104 | }, 105 | "extensions": { 106 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049", 107 | "https://w3id.org/xapi/video/extensions/length": 46.613333 108 | }, 109 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 110 | }, 111 | "id": "ac522d8a-ed56-4a5e-bc86-14067aec4101" 112 | } 113 | ``` 114 | 115 | ## Paused 116 | 117 | ``` 118 | { 119 | "actor": { 120 | "mbox": "mailto:jlh@example.com", 121 | "name": "Video User", 122 | "objectType": "Agent" 123 | }, 124 | "verb": { 125 | "id": "https://w3id.org/xapi/video/verbs/paused", 126 | "display": { 127 | "en-US": "paused" 128 | } 129 | }, 130 | "timestamp": "2018-08-07T15:27:55.273Z", 131 | "object": { 132 | "definition": { 133 | "type": "https://w3id.org/xapi/video/activity-type/video", 134 | "name": { 135 | "en-US": "Ocean Life" 136 | }, 137 | "description": { 138 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 139 | } 140 | }, 141 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 142 | "objectType": "Activity" 143 | }, 144 | "result": { 145 | "extensions": { 146 | "https://w3id.org/xapi/video/extensions/played-segments": "0[.]2.997", 147 | "https://w3id.org/xapi/video/extensions/progress": 0.06, 148 | "https://w3id.org/xapi/video/extensions/time": 2.997 149 | } 150 | }, 151 | "context": { 152 | "contextActivities": { 153 | "category": [ 154 | { 155 | "id": "https://w3id.org/xapi/video" 156 | } 157 | ] 158 | }, 159 | "extensions": { 160 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049", 161 | "https://w3id.org/xapi/video/extensions/length": 46.613333 162 | }, 163 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 164 | }, 165 | "id": "587c8e19-3a5e-4be2-ba09-9c6b68c4fb20" 166 | } 167 | ``` 168 | 169 | ## Seeked \(Change Video Playback from 4.473 Seconds to 1.9 Seconds \) 170 | 171 | ``` 172 | { 173 | "actor": { 174 | "mbox": "mailto:jlh@example.com", 175 | "name": "Video User", 176 | "objectType": "Agent" 177 | }, 178 | "verb": { 179 | "id": "https://w3id.org/xapi/video/verbs/seeked", 180 | "display": { 181 | "en-US": "seeked" 182 | } 183 | }, 184 | "timestamp": "2018-08-07T15:37:53.491Z", 185 | "object": { 186 | "definition": { 187 | "type": "https://w3id.org/xapi/video/activity-type/video", 188 | "name": { 189 | "en-US": "Ocean Life" 190 | }, 191 | "description": { 192 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 193 | } 194 | }, 195 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 196 | "objectType": "Activity" 197 | }, 198 | "result": { 199 | "extensions": { 200 | "https://w3id.org/xapi/video/extensions/time-to": 1.9, 201 | "https://w3id.org/xapi/video/extensions/time-from": 4.473 202 | } 203 | }, 204 | "context": { 205 | "contextActivities": { 206 | "category": [ 207 | { 208 | "id": "https://w3id.org/xapi/video" 209 | } 210 | ] 211 | }, 212 | "extensions": { 213 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049" 214 | }, 215 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 216 | }, 217 | "id": "4183175b-a6b0-4e59-8614-fd9c0d2593dd" 218 | } 219 | ``` 220 | 221 | ## Interacted Event \(Change to Full Screen\) 222 | 223 | ``` 224 | { 225 | "actor": { 226 | "mbox": "mailto:jlh@example.com", 227 | "name": "Video User", 228 | "objectType": "Agent" 229 | }, 230 | "verb": { 231 | "id": "http://adlnet.gov/expapi/verbs/interacted", 232 | "display": { 233 | "en-US": "interacted" 234 | } 235 | }, 236 | "timestamp": "2018-08-07T15:41:59.549Z", 237 | "object": { 238 | "definition": { 239 | "type": "https://w3id.org/xapi/video/activity-type/video", 240 | "name": { 241 | "en-US": "Ocean Life" 242 | }, 243 | "description": { 244 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 245 | } 246 | }, 247 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 248 | "objectType": "Activity" 249 | }, 250 | "result": { 251 | "extensions": { 252 | "https://w3id.org/xapi/video/extensions/time": 10.096 253 | } 254 | }, 255 | "context": { 256 | "contextActivities": { 257 | "category": [ 258 | { 259 | "id": "https://w3id.org/xapi/video" 260 | } 261 | ] 262 | }, 263 | "extensions": { 264 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049", 265 | "https://w3id.org/xapi/video/extensions/video-playback-size": "1122x1177", 266 | "https://w3id.org/xapi/video/extensions/screen-size": "2560x1440", 267 | "https://w3id.org/xapi/video/extensions/full-screen": true 268 | }, 269 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 270 | }, 271 | "id": "abe55d73-ffb3-4093-ab1a-424592c119ee" 272 | } 273 | ``` 274 | 275 | ## Interacted Event \(Change Back to Original Screen Size\) 276 | 277 | ``` 278 | { 279 | "actor": { 280 | "mbox": "mailto:jlh@example.com", 281 | "name": "Video User", 282 | "objectType": "Agent" 283 | }, 284 | "verb": { 285 | "id": "http://adlnet.gov/expapi/verbs/interacted", 286 | "display": { 287 | "en-US": "interacted" 288 | } 289 | }, 290 | "timestamp": "2018-08-07T15:42:03.400Z", 291 | "object": { 292 | "definition": { 293 | "type": "https://w3id.org/xapi/video/activity-type/video", 294 | "name": { 295 | "en-US": "Ocean Life" 296 | }, 297 | "description": { 298 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 299 | } 300 | }, 301 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 302 | "objectType": "Activity" 303 | }, 304 | "result": { 305 | "extensions": { 306 | "https://w3id.org/xapi/video/extensions/time": 13.947 307 | } 308 | }, 309 | "context": { 310 | "contextActivities": { 311 | "category": [ 312 | { 313 | "id": "https://w3id.org/xapi/video" 314 | } 315 | ] 316 | }, 317 | "extensions": { 318 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049", 319 | "https://w3id.org/xapi/video/extensions/video-playback-size": "640x264", 320 | "https://w3id.org/xapi/video/extensions/screen-size": "2560x1440", 321 | "https://w3id.org/xapi/video/extensions/full-screen": false 322 | }, 323 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 324 | }, 325 | "id": "c3371384-4598-43f2-b1b3-86be5df66ed5" 326 | } 327 | ``` 328 | 329 | ## Interacted Event \(Change Volume to Muted\) 330 | 331 | ``` 332 | { 333 | "actor": { 334 | "mbox": "mailto:jlh@example.com", 335 | "name": "Video User", 336 | "objectType": "Agent" 337 | }, 338 | "verb": { 339 | "id": "http://adlnet.gov/expapi/verbs/interacted", 340 | "display": { 341 | "en-US": "interacted" 342 | } 343 | }, 344 | "timestamp": "2018-08-07T15:42:12.016Z", 345 | "object": { 346 | "definition": { 347 | "type": "https://w3id.org/xapi/video/activity-type/video", 348 | "name": { 349 | "en-US": "Ocean Life" 350 | }, 351 | "description": { 352 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 353 | } 354 | }, 355 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 356 | "objectType": "Activity" 357 | }, 358 | "result": { 359 | "extensions": { 360 | "https://w3id.org/xapi/video/extensions/time": 20.536 361 | } 362 | }, 363 | "context": { 364 | "contextActivities": { 365 | "category": [ 366 | { 367 | "id": "https://w3id.org/xapi/video" 368 | } 369 | ] 370 | }, 371 | "extensions": { 372 | "https://w3id.org/xapi/video/extensions/volume": 0, 373 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049" 374 | }, 375 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 376 | }, 377 | "id": "eb6ca563-1e61-4776-a5b0-2a23be8e43b0" 378 | } 379 | ``` 380 | 381 | ## Interacted Event \(Change Volume to Unmuted\) 382 | 383 | ``` 384 | { 385 | "actor": { 386 | "mbox": "mailto:jlh@example.com", 387 | "name": "Video User", 388 | "objectType": "Agent" 389 | }, 390 | "verb": { 391 | "id": "http://adlnet.gov/expapi/verbs/interacted", 392 | "display": { 393 | "en-US": "interacted" 394 | } 395 | }, 396 | "timestamp": "2018-08-07T15:42:15.443Z", 397 | "object": { 398 | "definition": { 399 | "type": "https://w3id.org/xapi/video/activity-type/video", 400 | "name": { 401 | "en-US": "Ocean Life" 402 | }, 403 | "description": { 404 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 405 | } 406 | }, 407 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 408 | "objectType": "Activity" 409 | }, 410 | "result": { 411 | "extensions": { 412 | "https://w3id.org/xapi/video/extensions/time": 24.036 413 | } 414 | }, 415 | "context": { 416 | "contextActivities": { 417 | "category": [ 418 | { 419 | "id": "https://w3id.org/xapi/video" 420 | } 421 | ] 422 | }, 423 | "extensions": { 424 | "https://w3id.org/xapi/video/extensions/volume": 1, 425 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049" 426 | }, 427 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 428 | }, 429 | "id": "f48f70b2-505e-46ae-a562-19fcae19f2ae" 430 | } 431 | ``` 432 | 433 | ## Interacted \(Enabled Closed Captioning\) 434 | 435 | ``` 436 | { 437 | "actor": { 438 | "mbox": "mailto:jlh@example.com", 439 | "name": "Video User", 440 | "objectType": "Agent" 441 | }, 442 | "verb": { 443 | "id": "http://adlnet.gov/expapi/verbs/interacted", 444 | "display": { 445 | "en-US": "interacted" 446 | } 447 | }, 448 | "timestamp": "2018-08-07T15:42:20.066Z", 449 | "object": { 450 | "definition": { 451 | "type": "https://w3id.org/xapi/video/activity-type/video", 452 | "name": { 453 | "en-US": "Ocean Life" 454 | }, 455 | "description": { 456 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 457 | } 458 | }, 459 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 460 | "objectType": "Activity" 461 | }, 462 | "result": { 463 | "extensions": { 464 | "https://w3id.org/xapi/video/extensions/time": 28.799 465 | } 466 | }, 467 | "context": { 468 | "contextActivities": { 469 | "category": [ 470 | { 471 | "id": "https://w3id.org/xapi/video" 472 | } 473 | ] 474 | }, 475 | "extensions": { 476 | "https://w3id.org/xapi/video/extensions/session-id": "86c5b148-4462-4da9-a13f-b570c27fa049", 477 | "https://w3id.org/xapi/video/extensions/cc-subtitle-lang": "en", 478 | "https://w3id.org/xapi/video/extensions/cc-enabled": true 479 | }, 480 | "registration": "96094a33-cc66-4d9a-8810-a0850ae2a4e1" 481 | }, 482 | "id": "f71a5b62-53d5-4794-aa75-7e0dc2570eed" 483 | } 484 | ``` 485 | 486 | ## Completed 487 | 488 | ``` 489 | { 490 | "actor": { 491 | "mbox": "mailto:jlh@example.com", 492 | "name": "Video User", 493 | "objectType": "Agent" 494 | }, 495 | "verb": { 496 | "id": "http://adlnet.gov/expapi/verbs/completed", 497 | "display": { 498 | "en-US": "completed" 499 | } 500 | }, 501 | "timestamp": "2018-08-07T16:10:24.158Z", 502 | "object": { 503 | "definition": { 504 | "type": "https://w3id.org/xapi/video/activity-type/video", 505 | "name": { 506 | "en-US": "Ocean Life" 507 | }, 508 | "description": { 509 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 510 | } 511 | }, 512 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 513 | "objectType": "Activity" 514 | }, 515 | "result": { 516 | "completion": true, 517 | "extensions": { 518 | "https://w3id.org/xapi/video/extensions/played-segments": "0[.]46.613", 519 | "https://w3id.org/xapi/video/extensions/progress": 1, 520 | "https://w3id.org/xapi/video/extensions/time": 46.613 521 | } 522 | }, 523 | "context": { 524 | "contextActivities": { 525 | "category": [ 526 | { 527 | "id": "https://w3id.org/xapi/video" 528 | } 529 | ] 530 | }, 531 | "extensions": { 532 | "https://w3id.org/xapi/video/extensions/session-id": "7a1f8a80-8b62-4cf5-9165-a4976280f6c4", 533 | "https://w3id.org/xapi/video/extensions/completion-threshold": "1.0", 534 | "https://w3id.org/xapi/video/extensions/length": 46.613333 535 | }, 536 | "registration": "70ec479c-a37d-4407-89ad-9727313e71dc" 537 | }, 538 | "id": "019b33ec-4426-40b7-b296-54f05cb9291e" 539 | } 540 | ``` 541 | 542 | ## Terminated 543 | 544 | ``` 545 | { 546 | "actor": { 547 | "mbox": "mailto:jlh@example.com", 548 | "name": "Video User", 549 | "objectType": "Agent" 550 | }, 551 | "verb": { 552 | "id": "http://adlnet.gov/expapi/verbs/terminated", 553 | "display": { 554 | "en-US": "terminated" 555 | } 556 | }, 557 | "timestamp": "2018-08-07T16:10:28.452Z", 558 | "object": { 559 | "definition": { 560 | "type": "https://w3id.org/xapi/video/activity-type/video", 561 | "name": { 562 | "en-US": "Ocean Life" 563 | }, 564 | "description": { 565 | "en-US": "A short video clip of ocean lifeforms, used by videojs.com as part of their demo." 566 | } 567 | }, 568 | "id": "http://vjs.zencdn.net/v/oceans.mp4", 569 | "objectType": "Activity" 570 | }, 571 | "result": { 572 | "extensions": { 573 | "https://w3id.org/xapi/video/extensions/played-segments": "0[.]46.613", 574 | "https://w3id.org/xapi/video/extensions/progress": 1, 575 | "https://w3id.org/xapi/video/extensions/time": 46.613 576 | } 577 | }, 578 | "context": { 579 | "contextActivities": { 580 | "category": [ 581 | { 582 | "id": "https://w3id.org/xapi/video" 583 | } 584 | ] 585 | }, 586 | "extensions": { 587 | "https://w3id.org/xapi/video/extensions/session-id": "7a1f8a80-8b62-4cf5-9165-a4976280f6c4", 588 | "https://w3id.org/xapi/video/extensions/completion-threshold": "1.0", 589 | "https://w3id.org/xapi/video/extensions/length": 46.613333 590 | }, 591 | "registration": "70ec479c-a37d-4407-89ad-9727313e71dc" 592 | }, 593 | "id": "b3cd221b-cd2c-40cd-9291-e3fdcd1f4129" 594 | } 595 | ``` 596 | 597 | 598 | 599 | -------------------------------------------------------------------------------- /statement_data_model.md: -------------------------------------------------------------------------------- 1 | Current Version: xAPI Video Profile v1.0 2 | 3 | 4 | #2. xAPI Statement Data Model 5 | 6 | 7 | ##2.1 Statement ID 8 | 9 | The LRP MUST assign a statement id property in UUID format (as defined in the xAPI specification) for all statements it issues. 10 | 11 | 12 | ##2.2 Actor 13 | 14 | The Actor property must be defined as per the xAPI Specification. 15 | 16 | When the video is launched in an LMS, Actor must be provided by the LMS. 17 | 18 | ##2.3 Verbs 19 | 20 | The following xAPI verbs are defined in this specification. 21 | 22 | LRP MUST use the below verbs that are indicated as mandatory in other sections of this specification. 23 | 24 | 25 | ###2.3.1 Initialized 26 | 27 | 28 | 29 | 30 | 31 | 32 |
VerbInitialized
IDhttp://adlnet.gov/expapi/verbs/initialized
DescriptionAn "Initialized" statement is used by the LRP to indicate that the video has been fully initialized or launched.
LRP ObligationsThe LRP MUST use "Initialized" in the first statement in the video session. The LRP MUST NOT issue multiple statements with "Initialized" for the same video session.
UsageAn "Initialized" statement is used by the LRP to indicate that the video has been fully initialized or launched.
33 | 34 | 35 | 36 | ###2.3.2 Played 37 | 38 | 39 | 40 | 41 | 42 | 43 |
VerbPlayed
IDhttps://w3id.org/xapi/video/verbs/played
DescriptionIndicates that the actor started experiencing the recorded media object.
LRP ObligationsThe LRP MUST use "Played" when the actor starts experiencing the media.
UsageUsed when the actor generally played a video or clicked the play button.
44 | 45 | 46 | ###2.3.3 Paused 47 | 48 | 49 | 50 | 51 | 52 | 53 |
VerbPaused
IDhttps://w3id.org/xapi/video/verbs/paused
DescriptionIndicates that the actor temporary or permanently stopped experiencing the recorded media object.
LRP ObligationsThe LRP MUST use "Paused" when the media is stopped. A paused statement MUST be sent before a terminated statement if not already sent.
UsageIndicates that the actor temporary or permanently stopped experiencing the recorded media object.
54 | 55 | 56 | ###2.3.4 Seeked 57 | 58 | 59 | 60 | 61 | 62 | 63 |
VerbSeeked
IDhttps://w3id.org/xapi/video/verbs/seeked
DescriptionIndicates the actor changed the progress towards a specific point.
LRP ObligationsThe LRP MUST use "Seeked" when the Actor moves the progress bar forward or backward to a specific time in video.
UsageUsed in combination with time-from and time-to extensions when the Actor moves the progress bar forward or backward to a specific time in the video.
64 | 65 | 66 | ###2.3.5 Interacted 67 | 68 | 69 | 70 | 71 | 72 | 73 |
VerbInteracted
IDhttp://adlnet.gov/expapi/verbs/interacted
DescriptionUsed to express that the actor interacted with the player (except play, pause, seek). e.g. mute, unmute, change resolution, change player size, etc.
LRP ObligationsOptional
UsageUsed to express that the actor interacted with the player (except play, pause, seek). e.g. mute, unmute, change resolution, change player size, etc.
74 | 75 | 76 | 77 | ###2.3.6 Completed 78 | 79 | 80 | 81 | 82 | 87 | 88 |
VerbCompleted
IDhttp://adlnet.gov/expapi/verbs/completed
DescriptionUsed to express that the actor completed a video by watching all parts of the video at least once.
LRP ObligationsThe LRP MUST use "Completed" when the Actor has completed a video by watching all parts of the video at least once.
83 | The "completion" property of the result MUST be set to true for this statement.
84 | The "duration" property of the result MUST be included in this statement and MUST represent total time spent during consuming the video under current registration. e.g. PT218S 85 | 86 |
UsageUsed to express that the actor completed a video by watching all parts of the video at least once. The progress and heatmap result extension can be used to calculate the duration and completion of video.
89 | 90 | 91 | ###2.3.7 Terminated 92 | 93 | 94 | 95 | 96 | 105 | 106 |
VerbTerminated
IDhttp://adlnet.gov/expapi/verbs/terminated
DescriptionUsed to express that the actor ended a video.
LRP ObligationsOptional. 97 |
    98 |
  • The LRP MAY use "Terminated" when the Actor has terminated the video.
  • 99 |
  • A "Paused" statement MUST be sent before "Terminated" statement if not already sent.
  • 100 |
  • Any statements after this in the current video session MUST NOT be sent, and will be ignored if sent.
  • 101 |
102 | 103 | 104 |
UsageUsed to express that the actor ended a video.
107 | 108 | ##2.4 Object 109 | 110 | An Object with objectType "Activity" MUST be present, as specified in the xAPI Spec. 111 | 112 | The Object represents the video or media being consumed by the Actor. 113 | 114 | ###2.4.1 Definition 115 | 116 | Object definition MAY contain name, description and other details of the media, as per the xAPI Spec. 117 | 118 | Object definition MUST be present and MUST contain activity "type" as: https://w3id.org/xapi/video/activity-type/video 119 | 120 | 121 | 122 | ##2.5 Result 123 | 124 | Result is an optional property that represents a measured outcome related to the Statement in which it is included. 125 | 126 | It may be present in a statement depending on the verb used. 127 | 128 | ###2.5.1 Score 129 | 130 | A score is not required to be reported. If a score is reported, it must be as per the xAPI Spec. 131 | 132 | 133 | ###2.5.2 Completion 134 | 135 | The "completion" property of the result MUST be set to true for the 'completed' statement. 136 | 137 | Other Video Profile statements MUST NOT include the "completion" property. 138 | 139 | ###2.5.3 Duration 140 | 141 | The "duration" property is an ISO 8601 formatted time value. 142 | 143 | Duration MUST be included in "completed" statement and MUST represent total time spent consuming the video under current registration. e.g. PT218S 144 | 145 | ###2.5.4 Result Extensions 146 | 147 | There are several additional results related values defined in Video Profile that can be added to the statement under result extensions. 148 | 149 | ###2.5.4.1 Time 150 | 151 | 152 | 154 | 155 | 156 | 163 | 164 |
Extensiontime 153 |
IDhttps://w3id.org/xapi/video/extensions/time
DescriptionUsed to express the time into the video.
LRP Obligations 157 |
    158 |
  • The LRP MUST assign time value to statements with "played", "paused", "terminated", "interacted" and "completed" verbs.
  • 159 |
  • Float Value with maximum 3 decimals.
  • 160 |
161 | 162 |
UsageExample: "23.560" represents video position at 23 seconds and 560 milliseconds.
165 | 166 | ###2.5.4.2 Time From 167 | 168 | 169 | 171 | 172 | 173 | 180 | 181 |
Extensiontime-from 170 |
IDhttps://w3id.org/xapi/video/extensions/time-from
DescriptionUsed to identify the point in time the actor changed from in a media object during a seek operation.
LRP Obligations 174 |
    175 |
  • The LRP MUST assign time-from value to statements with "seeked" verbs only.
  • 176 |
  • Float Value with maximum 3 decimals.
  • 177 |
178 | 179 |
UsageExample: "23.560" represents video position at 23 seconds and 560 milliseconds.
182 | 183 | ###2.5.4.3 Time To 184 | 185 | 186 | 188 | 189 | 190 | 197 | 198 |
Extensiontime-to 187 |
IDhttps://w3id.org/xapi/video/extensions/time-to
DescriptionUsed to identify the point in time the actor changed to in a media object during a seek operation.
LRP Obligations 191 |
    192 |
  • The LRP MUST assign time-to value to statements with "seeked" verbs only.
  • 193 |
  • Float Value with maximum 3 decimals.
  • 194 |
195 | 196 |
UsageExample: "23.560" represents video position at 23 seconds and 560 milliseconds.
199 | 200 | 201 | ###2.5.4.4 Progress 202 | 203 | 204 | 206 | 207 | 208 | 216 | 217 |
Extensionprogress 205 |
IDhttps://w3id.org/xapi/video/extensions/progress
DescriptionUsed to expresses the percentage of media consumed by the actor.
LRP Obligations 209 |
    210 |
  • The LRP MUST assign progress value to statements with "paused", "terminated" and "completed" verbs.
  • 211 |
  • The LRP MAY assign progress value to other statements.
  • 212 |
  • Float value between 0 and 1, with a maximum of 3 decimals.
  • 213 |
214 | 215 |
UsageThe progress value includes all attempts made during the current registration. The heatmap extension can be used to calculate the progress.
218 | 219 | ###2.5.4.5 Played Segments 220 | 221 | 222 | 223 | 225 | 227 | 229 | 238 | 240 | 241 | 242 |
Extensionplayed-segments 224 |
IDhttps://w3id.org/xapi/video/extensions/played-segments 226 |
DescriptionPlayed segments 228 | data shows parts of the video the actor watched during current registration in chronological order.
LRP Obligations 230 |
    231 |
  • The LRP MUST assign played-segments value to statements with "paused", "terminated" and "completed" verbs.
  • 232 |
  • The LRP MAY assign played-segments value to other statements.
  • 233 |
  • Value is a string. Each part of the video watched is separated with [,]. The 'Time From' and 'Time To' values are separated with [.].
  • 234 |
  • The time values must match the values recorded as time, time-to and time-from in played, paused, seeked statements.
  • 235 |
236 | 237 |
UsageThe played-segments value includes all attempts made during the current registration. It is used for computing the progress and completion. It can also be used to generate heat map of the users consumption of the video. 239 |
Example: 0.000[.]12.000[,]14.000[.]21.000[,]18.000[.]30.000
243 | 244 | 245 | ##2.6 Context 246 | 247 | All Video Profile statements MUST contain a context that includes all objects/values as defined in this section. 248 | 249 | ###2.6.1 Registration 250 | 251 | The value for the registration property used in the context object MAY be the value provided by the LMS via the launch URL. If registration is not provided via the launch mechanism, the LRP MAY set a fixed registration value. 252 | 253 | The registration value is important because the "progress", the "played-segments" value and "completion" is based on aggregate of all attempts with same registration value attempted by the Actor for the specific media. 254 | 255 | ###2.6.2 Language 256 | 257 | Code representing the language in which the experience being recorded in this Statement (mainly) occurred in, if applicable and known. 258 | 259 | Language is used to provide the spoken language for the audio. 260 | 261 | The value must be RFC 5646, e.g en, en-US, etc 262 | 263 | ###2.6.2 Context Extensions 264 | 265 | ####2.6.2.1 Session ID 266 | 267 | 268 | 270 | 271 | 272 | 279 | 280 |
Extensionsession-id 269 |
IDhttps://w3id.org/xapi/video/extensions/session-id
DescriptionUsed to tell which session the statement is part of. A session starts with the initiated statement and ends with terminated statement.
LRP Obligations 273 |
    274 |
  • The LRP SHOULD assign a session id to all the statements sent during a session.
  • 275 |
  • Value of session id MUST be the UUID statement id of the initiated statement, i.e. the initialized statement.
  • 276 |
277 | 278 |
Usage
281 | 282 | 283 | ###2.6.2.2 CC/Subtitle Enabled 284 | 285 | 286 | 288 | 289 | 290 | 296 | 297 |
Extensioncc-subtitle-enabled 287 |
IDhttps://w3id.org/xapi/video/extensions/cc-subtitle-enabled
DescriptionUsed to expresses whether subtitle or closed captioning is enabled.
LRP Obligations 291 |
    292 |
  • Value MUST be boolean i.e. true or false.
  • 293 |
294 | 295 |
Usage
298 | 299 | 300 | ###2.6.2.3 CC/Subtitle Language 301 | 302 | 304 | 305 | 306 | 312 | 314 |
Extensioncc-subtitle-lang 303 |
IDhttps://w3id.org/xapi/video/extensions/cc-subtitle-lang
DescriptionUsed to express the language of subtitle or closed captioning.
LRP Obligations 307 |
    308 |
  • Used only when cc-subtitle-enabled is true.
  • 309 |
310 | 311 |
UsageThe lexical and value spaces of xsd:language are the set of language codes defined by RFC 5646. Examples: "en" for English or "en-US" for American English 313 |
315 | 316 | ###2.6.2.4 Frame Rate 317 | 318 | 319 | 321 | 322 | 323 | 325 | 326 |
Extensionframe-rate 320 |
IDhttps://w3id.org/xapi/video/extensions/frame-rate
DescriptionUsed 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).
LRP Obligations 324 |
UsageRepresented as a decimal, such as 29.970.
327 | 328 | ###2.6.2.5 Full Screen 329 | 330 | 331 | 333 | 334 | 335 | 341 | 342 |
Extensionfull-screen 332 |
IDhttps://w3id.org/xapi/video/extensions/full-screen
DescriptionUsed to expresses that the video is played in full screen mode.
LRP Obligations 336 |
    337 |
  • Value MUST be boolean i.e. true or false.
  • 338 |
339 | 340 |
Usage
343 | 344 | 345 | ###2.6.2.6 Quality 346 | 347 | 348 | 350 | 351 | 352 | 357 | 358 |
Extensionquality 349 |
IDhttps://w3id.org/xapi/video/extensions/quality
DescriptionUsed to express the video resolution or quality.
LRP Obligations 353 |
    354 |
  • Value is a string. e.g. 360, 480, 720, 1080, 2160, sd, hd, 4k, 8k etc.
  • 355 |
356 |
Usage
359 | 360 | ###2.6.2.7 Screen Size 361 | 362 | 363 | 365 | 366 | 367 | 372 | 373 |
Extensionscreen-size 364 |
IDhttps://w3id.org/xapi/video/extensions/screen-size
DescriptionUsed to express the device playback screen size or the maximum available screen size for Video playback.
LRP Obligations 368 |
    369 |
  • Value MUST be in WxH format in pixels. e.g. 1080x960, 640x480, 800x600
  • 370 |
371 |
Usage
374 | 375 | ###2.6.2.8 Video Playback Size 376 | 377 | 378 | 380 | 381 | 382 | 387 | 388 |
Extensionvideo-playback-size 379 |
IDhttps://w3id.org/xapi/video/extensions/video-playback-size
DescriptionUsed to identify the size in Width x Height of the video as viewed by the user.
LRP Obligations 383 |
    384 |
  • Value MUST be in WxH format in pixels. e.g. 1080x960, 640x480, 800x600
  • 385 |
386 |
Usage
389 | 390 | ###2.6.2.9 Speed 391 | 392 | 393 | 395 | 396 | 397 | 402 | 409 |
Extensionspeed 394 |
IDhttps://w3id.org/xapi/video/extensions/speed
DescriptionUsed to express the play-back speed.
LRP Obligations 398 |
    399 |
  • Value MUST be represented with decimal or integer values along with an 'x' meaning multiplying factor to the normal speed. e.g. -2x, -1x, -0.5x, 0.5x, 1x, 2x.
  • 400 |
401 |
Usage 403 |
    404 |
  • Negative value means rewind. e.g. -1x, -2x
  • 405 |
  • Positive value with value greater than 1x means fast forward. e.g. 1.5x, 2x, 4x
  • 406 |
  • Positive value with value less than 1x means slow motion play back. e.g. 0.5x, 0.25x, 0.125x
  • 407 |
408 |
410 | 411 | 412 | ###2.6.2.10 Track 413 | 414 | 415 | 417 | 418 | 419 | 424 | 425 |
Extensiontrack 416 |
IDhttps://w3id.org/xapi/video/extensions/track
DescriptionUsed to identify the name of the audio track in a media object.
LRP Obligations 420 |
    421 |
  • Value MUST be a string.
  • 422 |
423 |
Usage
426 | 427 | ###2.6.2.11 User Agent 428 | 429 | 430 | 432 | 433 | 434 | 439 | 440 |
Extensionuser-agent 431 |
IDhttps://w3id.org/xapi/video/extensions/user-agent
DescriptionUsed to identify the User Agent string of the browser, if the video is launched in browser.
LRP Obligations 435 |
    436 |
  • Value MUST be a string.
  • 437 |
438 |
Usage
441 | 442 | ###2.6.2.12 Volume 443 | 444 | 445 | 447 | 448 | 449 | 454 | 455 |
Extensionvolume 446 |
IDhttps://w3id.org/xapi/video/extensions/volume
DescriptionUsed to identify the loudness of sound specified for a media object.
LRP Obligations 450 |
    451 |
  • Value MUST be a float value between 0 and 1.
  • 452 |
453 |
UsageMinimum 0 = Mute. Maximum 1 = 100% Volume
456 | 457 | ###2.6.2.13 Length 458 | 459 | 460 | 462 | 463 | 464 | 470 | 471 |
Extensionlength 461 |
IDhttps://w3id.org/xapi/video/extensions/length
DescriptionThe actual length of the media in seconds.
LRP Obligations 465 |
    466 |
  • Value MUST be a float value with maximum 3 decimals.
  • 467 |
  • It MUST be included in Video Profile statements with these verbs: initialized, completed, terminated and paused.
  • 468 |
469 |
Usage
472 | 473 | ###2.6.2.14 Completion Threshold 474 | 475 | 476 | 478 | 479 | 480 | 489 | 490 |
Extensioncompletion-threshold 477 |
IDhttps://w3id.org/xapi/video/extensions/completion-threshold
DescriptionCompletion Threshold specifies the percentage of media that should be consumed to trigger a completion.
LRP Obligations 481 |
    482 |
  • Value MUST be between 0 and 1.
  • 483 |
  • Value MUST be a float value with maximum 3 decimals.
  • 484 |
  • If Completion Threshold is not included, it is assumed to be 1, i.e. 100%.
  • 485 |
  • If Completion Threshold is not 1, it MUST be included in Video Profile statements with these verbs: initialized, completed, terminated and paused.
  • 486 | 487 |
488 |
Usage
491 | 492 | 493 | ###2.6.2 Context Activities 494 | 495 | ####2.6.2.1 Category 496 | 497 | 498 | 499 | 500 | 502 | 503 |
IDhttps://w3id.org/xapi/video
DescriptionxAPI Video Profile statement
LRP ObligationsMust. 501 |
UsageIdentifies a statement as conforming to the xAPI Video Profile
504 | 505 | ###2.7 Summary of Extensions Usage 506 | 507 | 508 | 509 | 510 | 511 | 512 | 519 | 520 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 553 | 554 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 584 | 585 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 609 | 610 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 644 | 645 | 646 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 690 | 691 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 723 | 724 | 733 | 734 | 735 | 736 |
VerbsRequiredOptional
Initialized 513 | Context Extensions 514 |
    515 |
  • Length
  • 516 |
  • Completion Threshold (if value < 1)
  • 517 |
518 |
521 | Context Extensions 522 | 523 |
    524 |
  • Session ID
  • 525 |
  • CC/Subtitle Enabled
  • 526 |
  • CC/Subtitle Language
  • 527 |
  • Frame Rate
  • 528 |
  • Full Screen
  • 529 |
  • Quality
  • 530 |
  • Screen Size
  • 531 |
  • Video Playback Size
  • 532 |
  • Speed
  • 533 |
  • Track
  • 534 |
  • User Agent
  • 535 |
  • Volume
  • 536 |
  • Completion Threshold (if value = 1)
  • 537 |
538 |
Played 547 | 548 | Result Extensions 549 |
    550 |
  • Time
  • 551 |
552 |
555 | 556 | Context Extensions 557 |
    558 |
  • Session ID
  • 559 |
560 |
561 | 562 |
Paused 571 | Context Extensions 572 |
    573 |
  • Length
  • 574 |
  • Completion Threshold (if value < 1)
  • 575 |
576 |
577 | Result Extensions 578 |
    579 |
  • Time
  • 580 |
  • Progress
  • 581 |
  • Played Segments
  • 582 |
583 |
586 | Context Extensions 587 |
    588 |
  • Session ID
  • 589 |
  • Completion Threshold (if value = 1)
  • 590 |
591 |
592 | 593 |
Seeked 602 | 603 | Result Extensions 604 |
    605 |
  • Time From
  • 606 |
  • Time To
  • 607 |
608 |
611 | Context Extensions 612 |
    613 |
  • Length
  • 614 |
  • Session ID
  • 615 |
616 |
617 | 618 | Result Extensions 619 |
    620 |
  • Progress
  • 621 |
  • Played Segments
  • 622 |
623 |
Interacted 632 | 633 | Context Extensions 634 |
    635 |
  • Context Extensions for which the value has changed during interaction MUST be included
  • 636 |
637 |
638 | Result Extensions 639 |
    640 |
  • Time
  • 641 |
642 | 643 |
647 | Context Extensions 648 | 649 |
    650 |
  • Session ID
  • 651 |
  • CC/Subtitle Enabled
  • 652 |
  • CC/Subtitle Language
  • 653 |
  • Frame Rate
  • 654 |
  • Full Screen
  • 655 |
  • Quality
  • 656 |
  • Video Playback Size
  • 657 |
  • Speed
  • 658 |
  • Track
  • 659 |
  • Volume
  • 660 |
661 |
Completed 669 | Context Extensions 670 |
    671 |
  • Length
  • 672 |
  • Completion Threshold (if value < 1)
  • 673 |
674 |
675 | 676 | 677 | Result Extensions 678 |
    679 |
  • Time
  • 680 |
  • Progress
  • 681 |
  • Played Segments
  • 682 |
683 | Others 684 |
    685 |
  • result.completion = true
  • 686 |
  • result.duration = (total time spent consuming the video under current registration)
  • 687 |
688 | 689 |
692 | Context Extensions 693 |
    694 |
  • Session ID
  • 695 |
  • Completion Threshold (if value = 1)
  • 696 |
697 |
698 | 699 |
Terminated 707 | Context Extensions 708 |
    709 |
  • Length
  • 710 |
  • Completion Threshold (if value < 1)
  • 711 |
712 |
713 | 714 | Result Extensions 715 |
    716 |
  • Time
  • 717 |
  • Progress
  • 718 |
  • Played Segments
  • 719 |
720 | 721 | 722 |
725 | Context Extensions 726 |
    727 |
  • Session ID
  • 728 |
  • Completion Threshold (if value = 1)
  • 729 |
730 |
731 | 732 |
737 | 738 | *Session ID is optional. However, it SHOULD be added in all statements, unless there is a reason not to. 739 | 740 | --------------------------------------------------------------------------------