{"id":1464,"date":"2016-12-26T21:07:03","date_gmt":"2016-12-26T21:07:03","guid":{"rendered":"https:\/\/www.vdocipher.com\/blog\/?p=1464"},"modified":"2022-08-30T09:14:59","modified_gmt":"2022-08-30T09:14:59","slug":"using-tin-can-api-in-video","status":"publish","type":"post","link":"https:\/\/www-uat.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/","title":{"rendered":"Using Tin Can API in video: Complete Documentation"},"content":{"rendered":"<p>Tin Can API is a specification for learning technologies that enables Learning Management Systems to collect data from various learning activities that a student may undertake. Tin Can API has succeeded SCORM (Sharable Content Object Reference Model) as the new standard for learner analytics.<\/p>\n<h2><a href=\"http:\/\/tincanapi.com\/overview\/\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1472\" src=\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg\" alt=\"tin can api in video\" width=\"613\" height=\"274\" srcset=\"https:\/\/www-uat.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg 300w, https:\/\/www-uat.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-768x342.jpg 768w, https:\/\/www-uat.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-624x278.jpg 624w, https:\/\/www-uat.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api.jpg 950w\" sizes=\"auto, (max-width: 613px) 100vw, 613px\" \/><\/a><\/h2>\n<h2>Requirements for Tin Can API<\/h2>\n<p>In Tin Can API any learner activity on the web may be integrated and logged to the LMS. This includes activities such as reading a blog and watching a video online. For Tin Can API to succeed, all learning activities that a learner performs should be able to transmit learning data to the LMS.<\/p>\n<p>Statements in the Tin Can API are rendered in the form Noun Verb Activity. For example if Learner A has completed watching a video on &#8220;Machine Learning: Supervised Learning Part 1&#8221;, the corresponding Tin Can API statement would be:<\/p>\n<ul>\n<li>Learner A completed <em>Machine Learning: Supervised Learning Part 1<\/em><\/li>\n<\/ul>\n<h2>Tin Can API with videos<\/h2>\n<p>The motive of Tin Can API is to have maximum feedback for user experience and act on to improve the key metrics. As in case with video, fetching in side video data becomes quite tricky owing to the variety and scale of actions performed by viewers on a video.<\/p>\n<p>VdoCipher as a part of its secure video hosting service, \u00a0currently provides viewer data points on all the relevant analytics requirement for Tin Can API<\/p>\n<p>Below are some of the prominent actions of viewers on video (start, pause, end, seek, progress, repeat, load, buffer, view) which are a part of Tin Can API and VdoCipher provides direct JavaScript codes for them.<\/p>\n<p>It is interesting to note that there is always a debate amongst content creators and marketers on what should be taken as a view for the video ? Should\u00a0just clicking on the play button be considered sufficient to be counted as a view ? Some times it is decided to take say 10 seconds of playback or 2 mins of playback as a view. With the information collected by\u00a0VdoCipher&#8217;s start and progress event trackers you can easily collect viewer information for your particular definition of a video\u00a0view.<\/p>\n<h3>Start, End, Pause, Mute, Unmute events on video player<\/h3>\n<div>Please check this javascript code to capture the play and pause events from the embedded video player:<\/div>\n<div><\/div>\n<div>\n<pre class=\"m_-7161090222619084572gmail-m_-9087828019002247771gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-K0-aPE m_-7161090222619084572gmail-m_-9087828019002247771gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-aLK-ayr-auR\">&lt;script&gt;\t\t\r\nfunction onVdoCipherAPIReady(){\r\n    console.log(\"VdoCipher API init\");\r\n    var videoObjects = vdo.getObjects();\r\n    var video_ = videoObjects[videoObjects - 1];\r\n    video_.addEventListener(\"<wbr \/>resume\", function(){\r\n        console.log(\"ready event called\" , video_.time);\r\n    });\r\n    video_.addEventListener(\"<wbr \/>pause\", function(data){\r\n        \/\/ document.getElementById('total<wbr \/>Played').value = video_.totalPlayed;\r\n    });\r\n    }\r\n&lt;\/script&gt;<\/pre>\n<\/div>\n<div><\/div>\n<div>You can similarly listen for &#8220;start&#8221;, &#8220;end&#8221; and &#8220;mute&#8221;, &#8220;unmute&#8221;.<\/div>\n<h3>Time Calculation per video playback<\/h3>\n<div>\n<pre class=\"gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-K0-aPE gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-aLK-ayr-auR\">&lt;div id=\"vdo&lt;?= $OTP ?&gt;\" style=\"height: 300px; width: 520px;\"&gt;&lt;\/div&gt;\r\n&lt;input type=\"text\" id=\"totalPlayed\" value=\"\" \/&gt;<\/pre>\n<p class=\"gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-K0-aPE gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-aLK-ayr-auR\">\/\/\/ this is the embed code<\/p>\n<pre class=\"gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-K0-aPE gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-aLK-ayr-auR\">&lt;script&gt;\r\n    (function(v,i,d,e,o){v[o]={}; v[o].a = v[o].a || function V(a){ (v[o].d=v[o].d||[]).push(a);};\r\n    if(!v[o].l) { v[o].l=1*new Date(); a=i.createElement(d), m=i.getElementsByTagName(d)[0]<wbr \/>;\r\n    a.async=1; a.src=e; m.parentNode.insertBefore(a,m)<wbr \/>;}\r\n    })(window,document,'script','\/<wbr \/>\/<a href=\"http:\/\/de122v0opjemw.cloudfront.net\/vdo.js\" target=\"_blank\" rel=\"noopener noreferrer\">de122v0opjemw.cloudfront.net\/<wbr \/>vdo.js<\/a>','vdo');\r\n    vdo.a({\r\n        o: \"&lt;?= $OTP ?&gt;\",\r\n    });\r\n&lt;\/script&gt;<\/pre>\n<p class=\"gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-K0-aPE gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-aLK-ayr-auR\">\/\/\/ this is the script<\/p>\n<pre class=\"gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-K0-aPE gmail-m_7305849199533887321gmail-m_-8703967487323679024gmail-aLF-aPX-aLK-ayr-auR\">&lt;script&gt;\t\t\r\nfunction onVdoCipherAPIReady(){\r\n    console.log(\"VdoCipher API init\");\r\n    var videoObjects = vdo.getObjects();\r\n    var video_ = videoObjects[0];\r\n    video_.addEventListener(\"ready<wbr \/>\", function(data){\r\n        console.log(\"ready event called\" , data);\r\n    });\r\n    video_.addEventListener(\"progr<wbr \/>ess\", function(data){\r\n        document.getElementById('total<wbr \/>Played').value = data.totalPlayed;\r\n    });\r\n    }\r\n&lt;\/script&gt;<\/pre>\n<\/div>\n<div><b>\u00a0<\/b><\/div>\n<div><b>Note: The function wrapper with\u00a0onVdoCipherAPIReady\u00a0is needed only when it is part of the document load. If this script is to be\u00a0<\/b><b>run after document load, you can run it directly.<\/b><\/div>\n<div><\/div>\n<div><\/div>\n<div><\/div>\n<div>Let us know for any custom tracking functionality you require. Most of them are possible with a combination of the above scripts.<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Tin Can API is a specification for learning technologies that enables Learning Management Systems to collect data from various learning activities that a student may undertake. Tin Can API has succeeded SCORM (Sharable Content Object Reference Model) as the new standard for learner analytics. Requirements for Tin Can API In Tin Can API any learner [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46,33,136,14],"tags":[],"class_list":{"0":"post-1464","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-api","7":"category-e-learning","8":"category-tin-can-api","9":"category-using-vdocipher","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.0 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Using Tin Can API in video: Complete Documentation - VdoCipher Blog<\/title>\n<meta name=\"description\" content=\"Tin Can API for video. Codes to collect all viewer actions. Start, view, pause, play, seek, end , mute , unmute capturing with VdoCipher video hosting.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using Tin Can API in video: Complete Documentation\" \/>\n<meta property=\"og:description\" content=\"Tin Can API for video. Codes to collect all viewer actions. Start, view, pause, play, seek, end , mute , unmute capturing with VdoCipher video hosting.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/\" \/>\n<meta property=\"og:site_name\" content=\"VdoCipher Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vdociphertech\/\" \/>\n<meta property=\"article:published_time\" content=\"2016-12-26T21:07:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-30T09:14:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg\" \/>\n<meta name=\"author\" content=\"Siddhant Jain\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@siddhantjain92\" \/>\n<meta name=\"twitter:site\" content=\"@vdocipher\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Siddhant Jain\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/\"},\"author\":{\"name\":\"Siddhant Jain\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#\/schema\/person\/1f5be029a52d3e08694798f309353a11\"},\"headline\":\"Using Tin Can API in video: Complete Documentation\",\"datePublished\":\"2016-12-26T21:07:03+00:00\",\"dateModified\":\"2022-08-30T09:14:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/\"},\"wordCount\":463,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg\",\"articleSection\":[\"APIs and Sample Codes\",\"E-learning\",\"Tin Can API\",\"Using VdoCipher\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/\",\"url\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/\",\"name\":\"Using Tin Can API in video: Complete Documentation - VdoCipher Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg\",\"datePublished\":\"2016-12-26T21:07:03+00:00\",\"dateModified\":\"2022-08-30T09:14:59+00:00\",\"description\":\"Tin Can API for video. Codes to collect all viewer actions. Start, view, pause, play, seek, end , mute , unmute capturing with VdoCipher video hosting.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage\",\"url\":\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg\",\"contentUrl\":\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vdocipher.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using Tin Can API in video: Complete Documentation\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#website\",\"url\":\"https:\/\/www.vdocipher.com\/blog\/\",\"name\":\"VdoCipher Blog\",\"description\":\"Secure Video Streaming\",\"publisher\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vdocipher.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#organization\",\"name\":\"VdoCipher\",\"url\":\"https:\/\/www.vdocipher.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/11\/VdoCipher-logo2.png\",\"contentUrl\":\"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/11\/VdoCipher-logo2.png\",\"width\":1625,\"height\":1925,\"caption\":\"VdoCipher\"},\"image\":{\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vdociphertech\/\",\"https:\/\/x.com\/vdocipher\",\"https:\/\/www.linkedin.com\/company\/vdocipher\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#\/schema\/person\/1f5be029a52d3e08694798f309353a11\",\"name\":\"Siddhant Jain\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vdocipher.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/74f0e0dbaac81ce6b4bd2da975f0631b567077f4771700a81cec4a59ac42ec1a?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/74f0e0dbaac81ce6b4bd2da975f0631b567077f4771700a81cec4a59ac42ec1a?s=96&r=g\",\"caption\":\"Siddhant Jain\"},\"description\":\"Siddhant Jain is the CEO of VdoCipher, a video infrastructure company specializing in secure video streaming and piracy protection. He has deep expertise in DRM technologies, anti-piracy solutions, and video hosting systems. Siddhant works extensively on building scalable video APIs, customisable video players, and SaaS products for global media and education platforms. His work focuses on helping EdTech, MediaTech, and OTT businesses protect and monetize their premium video content. He regularly engages with companies on building secure, scalable video technology stacks for modern streaming platforms.\",\"sameAs\":[\"https:\/\/www.vdocipher.com\/\",\"https:\/\/www.linkedin.com\/in\/siddhant-jain-3854545a\/\",\"https:\/\/x.com\/siddhantjain92\"],\"url\":\"https:\/\/www-uat.vdocipher.com\/blog\/author\/siddhantjain\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Using Tin Can API in video: Complete Documentation - VdoCipher Blog","description":"Tin Can API for video. Codes to collect all viewer actions. Start, view, pause, play, seek, end , mute , unmute capturing with VdoCipher video hosting.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/","og_locale":"en_US","og_type":"article","og_title":"Using Tin Can API in video: Complete Documentation","og_description":"Tin Can API for video. Codes to collect all viewer actions. Start, view, pause, play, seek, end , mute , unmute capturing with VdoCipher video hosting.","og_url":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/","og_site_name":"VdoCipher Blog","article_publisher":"https:\/\/www.facebook.com\/vdociphertech\/","article_published_time":"2016-12-26T21:07:03+00:00","article_modified_time":"2022-08-30T09:14:59+00:00","og_image":[{"url":"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg","type":"","width":"","height":""}],"author":"Siddhant Jain","twitter_card":"summary_large_image","twitter_creator":"@siddhantjain92","twitter_site":"@vdocipher","twitter_misc":{"Written by":"Siddhant Jain","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#article","isPartOf":{"@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/"},"author":{"name":"Siddhant Jain","@id":"https:\/\/www.vdocipher.com\/blog\/#\/schema\/person\/1f5be029a52d3e08694798f309353a11"},"headline":"Using Tin Can API in video: Complete Documentation","datePublished":"2016-12-26T21:07:03+00:00","dateModified":"2022-08-30T09:14:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/"},"wordCount":463,"commentCount":1,"publisher":{"@id":"https:\/\/www.vdocipher.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg","articleSection":["APIs and Sample Codes","E-learning","Tin Can API","Using VdoCipher"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/","url":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/","name":"Using Tin Can API in video: Complete Documentation - VdoCipher Blog","isPartOf":{"@id":"https:\/\/www.vdocipher.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage"},"image":{"@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage"},"thumbnailUrl":"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg","datePublished":"2016-12-26T21:07:03+00:00","dateModified":"2022-08-30T09:14:59+00:00","description":"Tin Can API for video. Codes to collect all viewer actions. Start, view, pause, play, seek, end , mute , unmute capturing with VdoCipher video hosting.","breadcrumb":{"@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#primaryimage","url":"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg","contentUrl":"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/12\/tin-can-api-300x134.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.vdocipher.com\/blog\/2016\/12\/using-tin-can-api-in-video\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vdocipher.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Using Tin Can API in video: Complete Documentation"}]},{"@type":"WebSite","@id":"https:\/\/www.vdocipher.com\/blog\/#website","url":"https:\/\/www.vdocipher.com\/blog\/","name":"VdoCipher Blog","description":"Secure Video Streaming","publisher":{"@id":"https:\/\/www.vdocipher.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vdocipher.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vdocipher.com\/blog\/#organization","name":"VdoCipher","url":"https:\/\/www.vdocipher.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vdocipher.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/11\/VdoCipher-logo2.png","contentUrl":"https:\/\/www.vdocipher.com\/blog\/wp-content\/uploads\/2016\/11\/VdoCipher-logo2.png","width":1625,"height":1925,"caption":"VdoCipher"},"image":{"@id":"https:\/\/www.vdocipher.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vdociphertech\/","https:\/\/x.com\/vdocipher","https:\/\/www.linkedin.com\/company\/vdocipher"]},{"@type":"Person","@id":"https:\/\/www.vdocipher.com\/blog\/#\/schema\/person\/1f5be029a52d3e08694798f309353a11","name":"Siddhant Jain","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vdocipher.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/74f0e0dbaac81ce6b4bd2da975f0631b567077f4771700a81cec4a59ac42ec1a?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/74f0e0dbaac81ce6b4bd2da975f0631b567077f4771700a81cec4a59ac42ec1a?s=96&r=g","caption":"Siddhant Jain"},"description":"Siddhant Jain is the CEO of VdoCipher, a video infrastructure company specializing in secure video streaming and piracy protection. He has deep expertise in DRM technologies, anti-piracy solutions, and video hosting systems. Siddhant works extensively on building scalable video APIs, customisable video players, and SaaS products for global media and education platforms. His work focuses on helping EdTech, MediaTech, and OTT businesses protect and monetize their premium video content. He regularly engages with companies on building secure, scalable video technology stacks for modern streaming platforms.","sameAs":["https:\/\/www.vdocipher.com\/","https:\/\/www.linkedin.com\/in\/siddhant-jain-3854545a\/","https:\/\/x.com\/siddhantjain92"],"url":"https:\/\/www-uat.vdocipher.com\/blog\/author\/siddhantjain\/"}]}},"yoast":{"focuskw":"Tin Can API","title":"","metadesc":"Tin Can API for video. Codes to collect all viewer actions. Start, view, pause, play, seek, end , mute , unmute capturing with VdoCipher video hosting.","linkdex":"95","metakeywords":"","meta-robots-noindex":"","meta-robots-nofollow":"","meta-robots-adv":"","canonical":"","redirect":"","opengraph-title":"","opengraph-description":"","opengraph-image":"","twitter-title":"","twitter-description":"","twitter-image":""},"_links":{"self":[{"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/posts\/1464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/comments?post=1464"}],"version-history":[{"count":1,"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/posts\/1464\/revisions"}],"predecessor-version":[{"id":11910,"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/posts\/1464\/revisions\/11910"}],"wp:attachment":[{"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/media?parent=1464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/categories?post=1464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www-uat.vdocipher.com\/blog\/wp-json\/wp\/v2\/tags?post=1464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}