Hatena::ブログ(Diary)

tawamure/kikou

2006-10-27

「Save YouTube as File」を修正してみる

(2006/11/06追記:「Save YouTube as File」は、オリジナルにおいて既に修正版がリリースされています→http://yadorigi.seesaa.net/article/26865150.html。 以下はそれ以前に記載した内容です)



YouTubeにダウンロードリンクを追加するGreasemonkeyが動かないので作ってみた」にて公開されていたsaveyoutubeasfile.user.jsを愛用していたのだが、今日試すと使えなくなっていた。

そこで、憶えたてjavascriptの勉強代わりに調べて直してみた。

調べてみて分かった原因は、推測だが、多分今までdivタグのid属性だった「interactDiv」がclass属性に変更されため。

なんで、XPathclass属性が「interactDiv」なのを引っこ抜く動作に変更した。


saveyoutubeasfile.user.js


前よりもレイアウト的に収まり良い感じになった。

ソースはこちら。

// generate download url

var video_url = "http://youtube.com/get_video?video_id="+location.href.split("=")[1]+document.getElementById("interactDiv").innerHTML.match(/&t=[^"]+/);

// add download link

var download_link = document.createElement("div");
download_link.innerHTML = '<div class="actionRow"><a href="' + video_url + '" class="noul"><img src="/img/fav_w_icon.gif" border="0" class="alignMid" alt="Save as File" /> <span class="eLink">Save as File</span></a></div>';

var expr = '//div[@class="actionsDiv"]';
var items = document.evaluate(expr, document, null,XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
var actions_div = items.iterateNext();
actions_div.insertBefore(download_link, actions_div.firstChild);

あまりこういったことやりなれてない。知らないうちに非礼なことしてたら即謝りする所存。