YTRating

By Blasium Last update Dec 3, 2012 — Installed 26,920 times.

There are 31 previous versions of this script.

// ==UserScript==
// @name          YTRating
// @namespace     absolut-fair.com
// @description   Shows the rating of videos in the related videos
// @include       http://*youtube.com*
// @include       https://*youtube.com*
// @require       http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js
// ==/UserScript==

$(document).ready(function () {
	if( $(".feed-container").length!=0) //main
	{
		goload();
		window.setInterval(function() { goload(); },1000);
	}
	else if( $(".playlist-video-item").length!=0) //playlist
	{
		loadrating("li.playlist-video-item",".tile-link-block, .yt-uix-tile-link");
	}
	else //standart
	{
		goload();
	}
});

function goload()
{
	loadrating(
	".yt-lockup-list, .yt-lockup2, .video-list-item, .video-entry, .thumb-container, .feed-item-container,\
	.browse-item, .playnav-video-thumb, li.video, li.yt-c3-grid-item, .channels-content-item, .vm-video-item-content",
	"a.related-video, a.video-list-item-link, a.ux-thumb-wrap, a.browse-item-content"); 
}

function loadrating(div,link)
{
	$(div).each(function (i) {
		var that=this;
		var inda=i;
		var hrea = $(link,this).attr('href');
		hrea=hrea+"&";
		var vidid = hrea.between('?v=','&');
		if( $(link,this).attr('done') == 1) return true;
		else $(link,this).attr('done','1');
		//alert(vidid);
	
		GM_xmlhttpRequest({
			method: "GET",
			url: "http://gdata.youtube.com/feeds/api/videos/"+vidid+"?v=2",
			headers: {
				"Accept": "text/xml",
				"GData-Version": "2",
				"X-GData-Key": "key=AI39si59MgtnnLtTwZTnvZ--XNvnXWlYpVcDfYO8AJK-CJSmS3pTytqktlxTp3YVriK0IYGcx1z2BK1_ud1DEduKBAI7T3JdpQ"
			  },
			onload: function(resp) {
				var xmldat = new DOMParser().parseFromString(resp.responseText, "text/xml");
				var conti=resp.responseText;
				var rating = xmldat.getElementsByTagNameNS("http://gdata.youtube.com/schemas/2007","rating");
				if(conti.indexOf("yt:rating")!=-1)
				{
					var likes = rating[0].getAttribute("numLikes");
					var dislikes = rating[0].getAttribute("numDislikes");
				}
				else 
				{
					var likes="1";
					var dislikes="0";
				}
				//console.log("Ergebnis:"+likes+"/"+dislikes);
				likes=likes.replace('.', '');
				dislikes=dislikes.replace('.', '');
				if(likes.length>0 && conti.indexOf("action='rate' permission='denied'")==-1)
				{
					var resul = likes+"/"+dislikes;
					likes=parseInt(likes);
					dislikes=parseInt(dislikes);
					
					var dr = (likes/(likes+dislikes))*100;
					dr=Math.round(dr);

					if((likes+dislikes)>80)
					{
						if(dr > 70) $('.video-time', that).append("<label style='color:#82FA58;font-size:18px;'> "+dr+"%</label>");
						else if(dr > 40) $('.video-time', that).append("<label style='color:#C9C618;font-size:18px;'> "+dr+"%</label>");
						else $('.video-time', that).append("<label style='color:red;font-size:18px;'> "+dr+"%</label>");
					}
					else 
					{
						if((likes+dislikes)==0)	$('.video-time', that).append("<label style='color:#848484; font-size:18px;'> NO</label>");
						else $('.video-time', that).append("<label style='color:#848484; font-size:18px;'> "+dr+"%</label>");
					}
				}
				else 
				{
					$('.video-time', that).append("<label style='color:red;font-size:18px;'> OFF</label>");
				}
			}
		});
		//return false;
	});
}


String.prototype.between = function(prefix, suffix) {
s = this;
var i = s.indexOf(prefix);
if (i >= 0) {
s = s.substring(i + prefix.length);
}
else {
return '';
}
if (suffix) {
i = s.indexOf(suffix);
if (i >= 0) {
s = s.substring(0, i);
}
else {
return '';
}
}
return s;
}