Which player are you using. If you are using open source video players such as JWPlayer or Flow Player. You can track events. I personally prefer the stream player, and you can use google analytics to track the duration and any other task you want on the page.
since you have an authentication mechanism on the page, you can get the student’s username (or identifier). Click events to analyze Google with this as a shortcut, and you can keep track of everything the student does, including the links he clicked, playing time, when he played ...
setup example
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', '#########']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
Track
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);
this is part of the real-time code that I took from http://vsp.ideawide.com/ in which I track some of these events.
var events = { clip : { onStart: function(clip) { _gaq.push(['_trackEvent',"Videos", "Play", defaults.source]); }, onPause: function(clip) { _gaq.push(['_trackEvent',"Videos", "Pause", defaults.source, parseInt(this.getTime())]); }, onResume: function(clip) { _gaq.push(['_trackEvent',"Videos", "Resume", defaults.source, parseInt(this.getTime())]); }, onSeek: function(clip) { _gaq.push(['_trackEvent',"Videos", "Seek", defaults.source ]); }, onStop: function(clip) { _gaq.push(['_trackEvent',"Videos", "Stop", defaults.source, parseInt(this.getTime())]); }, onFinish: function(clip) { _gaq.push(['_trackEvent',"Videos", "Finish", defaults.source]); } }, onFullscreen: function() { _gaq.push(['_trackEvent',"Videos", "Full Screen", defaults.source]); }, onError: function(errorCode , errorMessage) { _gaq.push(['_trackEvent',"Videos", "Error", defaults.source, errorCode ]); } }
As a final note with analytic setup with the right player, you can upgrade your 80/20 to 99/1.