Youtube Buffer Video

By Yansky Last update May 20, 2009 — Installed 29,737 times. Daily Installs: 68, 138, 91, 61, 75, 68, 85, 45, 89, 80, 68, 67, 71, 84, 106, 85, 81, 118, 56, 90, 88, 113, 154, 95, 79, 62, 89, 73, 84, 108, 107, 35

There are 9 previous versions of this script.

// ==UserScript==
// @name           Youtube Buffer Video
// @namespace      userscripts.org
// @description    Autoplay is disabled and it buffers the video .
// @version        0.3.2
// @include        http://youtube.com/watch*
// @include        http://*.youtube.com/watch*
// ==/UserScript==

var sGetter = document.createElement('script');
sGetter.type = "text/javascript";
sGetter.innerHTML = "function onYouTubePlayerReady(playerid){"+
						"if(playerid=='ytplayer'){"+
							"var movP = document.getElementById('movie_player');"+
							"movP.addEventListener('onStateChange', 'onytplayerStateChange');"+
							"movP.addEventListener('onPlaybackQualityChange','onPlayerFormatChanged');"+
						"}"+
					"};";
document.body.appendChild(sGetter);

var vidID = document.location.toString().split("v=")[1].split("#")[0].split("&")[0];
var pD = document.getElementById('watch-player-div');
var mP = document.getElementById('movie_player');
var fV = mP.getAttribute("flashvars");
if(fV.match('ad_module=http')){
	
	var toRemove = "ad_module="+fV.split('ad_module=')[1].split('.swf')[0]+".swf";
	fV=fV.replace(toRemove,'');
}

mP.setAttribute("flashvars",fV+"&playerapiid=ytplayer");
mP.src+="#";
mP.style.height='25px';


var cI ='startbuffer', sek2=0, uwmp;

var altPlayerIMG = document.createElement('img');
altPlayerIMG.setAttribute('id','myytplayerIMG');
altPlayerIMG.src='http://i2.ytimg.com/vi/'+vidID+'/default.jpg';
altPlayerIMG.setAttribute('style','width:640px;height:360px;');
pD.insertBefore( altPlayerIMG, mP );


function bufferAndImage(newState){

	if(newState==1){
		if(cI =='startbuffer'){
			uwmp = unsafeWindow.document.getElementById('movie_player');
			uwmp.seekTo(sek2);
			uwmp.pauseVideo();
			cI=null;
		}
		else{
			altPlayerIMG.display='none';//(altPlayerIMG);
			mP.style.height='385px';
			pD.removeEventListener("mouseover", pdmousOv, false);
			pD.removeEventListener("mouseout", pdmousOu, false);
		}
	
	}
}

unsafeWindow.onytplayerStateChange = function(newState){
	bufferAndImage(newState)
}
unsafeWindow.onPlayerFormatChanged = function(f){
	//f==1==regular quality
	//f==2==high quality
	//sek2=uwmp.getDuration(); if you don't want it to restart from start when change to hq
	pD.display='block';
	cI ='startbuffer';
	//generateVidImage();
}


pD.addEventListener('mouseover', pdmousOv = function(e){

	altPlayerIMG.style.display='none';
	mP.style.height='385px';

}, false);
pD.addEventListener('mouseout', pdmousOu = function(e){

	altPlayerIMG.style.display='block';
	mP.style.height='25px';

}, false);