CmdUtils.CreateCommand({
name: "tube-link",
takes: {"url": noun_arb_text},
homepage: "http://cameronjones.com/",
author: { name: "Cameron Jones", email: "mcj@cameronjones.com"},
contributors: ["Ayman Shamma"],
license: "MPL",
description: "Extracts YouTube video download link.",
help: "Provides a download URL for downloading YouTube videos as FLV files.",
preview: function( pblock, url ) {
pblock.innerHTML = "";
var myURL = url.text;
if ( (!myURL) || (myURL == "") ) {
myURL = Application.activeWindow.activeTab.document.location;
}
var ytre = /^http:\/\/www.youtube.com\/watch\?v=([^]+)/i;
if (ytre.test(myURL)) {
var videoID = RegExp.$1
var params = {v:videoID};
jQuery.get( "http://www.youtube.com/watch", params, function( html ) {
var downlink = "http://youtube.com/get_video.php?video_id=" + videoID;
// match video_id and t
var tre = /"t": "([^\"]+)"/;
if (tre.test(html)) {
downlink += "&t=" + RegExp.$1;
}
var msg = '
Download Video';
var subs = {url: url.text, link:downlink, videoid:videoID};
pblock.innerHTML = CmdUtils.renderTemplate( msg, subs );
});
}
else {
pblock.innerHTML = "Get YouTube Download Link";
}
},
execute: function( url ) {
var myURL = url.text;
if ( (!myURL) || (myURL == "") ) {
myURL = Application.activeWindow.activeTab.document.location;
}
var ytre = /^http:\/\/www.youtube.com\/watch\?v=(.+)$/i;
if (ytre.test(myURL)) {
var videoID = RegExp.$1
var params = {v:videoID};
jQuery.get( "http://www.youtube.com/watch", params, function( html ) {
var downlink = "http://youtube.com/get_video.php?video_id=" + videoID;
// match video_id and t
var tre = /"t": "([^\"]+)"/;
if (tre.test(html)) {
downlink += "&t=" + RegExp.$1;
}
Application.activeWindow.activeTab.document.location = downlink;
});
}
}
})