クリップボードのURLをflvのURLに変換してIrvineに登録するDMonkeyスクリプト
また、またどこかにありそうなスクリプトをさらしてみるテスト。
ブラウザからURLを抽出して、クリップボードにコピーしてから起動すると幸せになれるかもしれない。
function main() { var irvine = new ActiveXObject("Irvine.Api"); var urls = Clipboard.asText.split(/\s+/); var folder_name; if (WScript.Arguments.Count > 0) { folder_name = WScript.Arguments.Item(0); } else { folder_name = prompt("Folder Name"); } for (var i in urls) { if (!urls[i].match(/^http/)) { alert(urls[i] + " is not valid URL"); } var info = get_video_info(urls[i]); var filename = info.title + ".flv"; var data_text = info.url + "\t" + folder_name + "\t" + filename; for (var j = 0; j < 10; j++) { data_text += "\t"; } data_text += urls[i]; irvine.AddQueueItem("", data_text); } } function get_video_info(url) { var http = new HTTP(); try { http.autoRedirect = false; var u = new URL(url); var text = http.get(u.url).fromUTF8toSJIS(); if (text.match(/player2.swf(.*?)\"/)) { var next_url = "http://www.youtube.com/get_video.php" + RegExp.$1; http.request("HEAD", next_url); http.response(); var result = new Object(); result.url = http.responseHeader.location; result.title = get_title(text); result.id = get_video_id(url); return result; } else { println(url); println(http.responseHeader.code); return null; } } finally { http.disconnect(); } } function get_title(text) { if (text.match(/<h1>(.*?)<\/h1>/)) { return RegExp.$1; } else { return null; } } function get_video_id(url) { if (url.match(/[\?&]v=([^&]+)/)) { return RegExp.$1; } else { return null; } } main();