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; }); } } })