Skip to content

Instantly share code, notes, and snippets.

@andymason
Last active March 9, 2017 12:21
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save andymason/3bdfc9d6a8bec155de86ba155761c94d to your computer and use it in GitHub Desktop.
Save andymason/3bdfc9d6a8bec155de86ba155761c94d to your computer and use it in GitHub Desktop.
Lower CPU usage than Flash player with the benefits of bitrate stream switching.
// How to use:
// 1. Save the bookmarklet
// 2. Go to a Giantbomb video page and click the Bookmarklet
// Bonus. Works on CBSi player so Gamespot video's work too
// ## Bookmarklet
javascript:(function(){var%20videoStream;var%20videoEl;var%20el;var%20vidWrapper=document.querySelector('.av-video-player');if(!vidWrapper||!vidWrapper.dataset.video){console.log('No%20video%20player%20element%20or%20dataset');}var%20videoData=JSON.parse(vidWrapper.dataset.video);videoStream=videoData.videoStreams.adaptive_stream;console.log(videoStream);videoEl=document.createElement('video');videoEl.controls=true;videoEl.style='width:100%;height:100%;position:relative;z-index:999;';vidWrapper.parentNode.replaceChild(videoEl,vidWrapper);el=document.createElement('script');el.addEventListener('load',function(){if(Hls.isSupported()){var%20hls=new%20Hls();hls.loadSource(videoStream);hls.attachMedia(videoEl);hls.on(Hls.Events.MANIFEST_PARSED,function(){videoEl.play();});}},false);el.src='https://cdn.rawgit.com/dailymotion/hls.js/master/dist/hls.min.js';document.body.appendChild(el);})();
// Original source code
var videoStream;
var videoEl;
var el;
var vidWrapper = document.querySelector('.av-video-player');
if (!vidWrapper || !vidWrapper.dataset.video) {
console.log('No video player element or dataset');
}
var videoData = JSON.parse(vidWrapper.dataset.video);
videoStream = videoData.videoStreams.adaptive_stream;
console.log(videoStream);
videoEl = document.createElement('video');
videoEl.controls=true;
videoEl.style = 'width:100%;height:100%;position:relative;z-index:999;';
vidWrapper.parentNode.replaceChild(videoEl, vidWrapper);
el = document.createElement('script');
el.addEventListener('load', function(){
if(Hls.isSupported()) {
var hls = new Hls();
hls.loadSource(videoStream);
hls.attachMedia(videoEl);
hls.on(Hls.Events.MANIFEST_PARSED,function() {
videoEl.play();
});
}
}, false);
el.src='https://cdn.rawgit.com/dailymotion/hls.js/master/dist/hls.min.js';
document.body.appendChild(el);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment