Greasy Fork

Video.mediaset.it native video player and direct links

This script allows you to watch and download videos on Video Mediaset.

目前为 2015-10-29 提交的版本。查看 最新版本

// ==UserScript==
// @name        Video.mediaset.it native video player and direct links
// @namespace   http://andrealazzarotto.com
// @description This script allows you to watch and download videos on Video Mediaset.
// @include     http://www.video.mediaset.it/video/*
// @include     http://www.video.mediaset.it/player/playerIFrame*
// @version     5.6
// @require     http://code.jquery.com/jquery-latest.min.js
// @grant       GM_xmlhttpRequest
// @license     GPL version 3 or any later version; http://www.gnu.org/copyleft/gpl.html
// ==/UserScript==

var boxStyle = function(selector, color, textcolor) {
	$(selector).css({
		'padding': '.5em',
		'margin': '1em 4em',
		'text-align': 'center',
		'background-color': color,
		'color': textcolor
	});
	$(selector + ' a').css('color', textcolor);
};

// wrapper for non-Mozilla browsers
if(!exportFunction) var exportFunction = function(a,b) {return a;};

$(document).ready(function(){
	if(!unsafeWindow.Silverlight.isInstalled()) {
		unsafeWindow.CDN_SELECTOR_URL = "http://video.lazza.dk/vd.php?id=";
		unsafeWindow.CDN_SELECTOR_SECURE_URL = "https://video.lazza.dk/vd.php?id=";
	}

	// kill ads
	unsafeWindow.adsEnabled = false;
	
	var isIframe = (window.location.href.indexOf("playerIFrame") > 0);
	var id = (unsafeWindow.videoMetadataId) || 0;
	if (!id) {
		if(isIframe)
			id = window.location.href.split("id=")[1].split("&")[0];
		else {
			var chunks = window.location.pathname.replace(/[\._]/g, "/").split("/");
			for (var i in chunks) {
				id = chunks[i];
				if(!!parseInt(id) && id.length > 4)
					break;
			}
		}
	}
	
	// kill registration request
	if (!!unsafeWindow.trafficlight)
		unsafeWindow.Initialize(id);
	
	GM_xmlhttpRequest({
		method: 'GET',
		url: 'http://video.lazza.dk/vd.php?id='+id,
		headers: {
			'Accept': 'application/atom+xml,application/xml,text/xml'
		},
		onload: function(responseDetails) {
			var r = responseDetails.responseText;
			var doc = $.parseXML(r);
			$xml = $( doc );
			var videos = $xml.find("video");
			var vlinks = [];
			
			// parse video URLs
			videos.each(function (i) {
				var url = $( videos.get(i) ).attr("src");
				var type = url.slice(-3);
				var name = "";
				switch(type) {
					case "est": name = "Smooth streaming"; break;
					case "pl)": name = "Apple streaming"; break;
					case "flv": name = "Video FLV"; break;
					case "f4v": name = "Video F4V"; break;
					case "mp4": name = "Video MP4"; break;
					case "wmv": name = "Video WMV"; break;
				}
				vlinks.push( { na: name, url: url } );
			});
			
			// display video URLs
			num = vlinks.length;
			
			if(isIframe)
				$('<div id="video-links">').appendTo('body');
			else
				$('<div id="video-links">').appendTo('#box-apertura');
			for(var i=0; i<num; i++) {
				var o = vlinks[i];
				var s = '<a href="'+o.url+'">'+o.na+'</a>';
				$(s).appendTo('#video-links');
				if(i!=num-1)
					$('<span>&nbsp;|&nbsp;</span>').appendTo('#video-links');
			}
			boxStyle('#video-links', 'rgba(0,0,0,0.5)', 'white');
			
			if(isIframe) {
				$('#video-links').css({
					'position': 'absolute',
					'bottom': '1.5em',
					'left': '10%',
					'right': '10%',
					'font-size': '.9em',
					'z-index': '9999'
				})
				.append("<span id='close'>&times;</span>");
				$("#close").css({
					'font-weight': 'bold',
					'position': 'absolute',
					'right': '1em',
					'cursor': 'pointer'
				}).click(function() {
					$("#video-links").fadeOut();
				});
				boxStyle('#video-links', 'rgba(255,255,255,0.5)', 'black');
			}
			
			$("#spinner").remove();
		}
	});
});