ニコニコ動画(9) 動画ダウンロードJavaScript
Thursday, December 3, 2009 1:42:30 PM
2010/08/28追記: NicoDownlodaが新しくなりました
今のニコニコ動画(9)に対応した動画ダウンロードスクリプトを紹介します。というか、作りました。
ブックマークレットはこちらです。…はれません。リンクが無効化されてしまうとかOperaのリンクの中からとかになってしまいます…仕方ないのでyaxyzに孤立ページ作ります。…と、思いましたがやめました。
こちらにあります。

右クリックでブックマークに保存するか、ツールバーにドラックしてみてください。ニコニコ動画の動画ページで使用すると以下のようにボタンとタイトルが代わって表示されます。ちなみにIEでは動きません。IE以外は動くと思います。
また、エラー処理を一切していません。ブックマークレット二回押すとばぐります。一回だけで大丈夫です。
JavaScriptは以下です。
var ad=location.href;
var idpos=ad.lastIndexOf("/")+1;
var id=ad.slice(idpos);
var movieid ="http://www.nicovideo.jp/api/getflv?v="+id
var HttpObj;
if(navigator.userAgent.indexOf("MSIE") != -1){
HttpObj = new ActiveXObject("Microsoft.XMLHTTP");
HttpObj.onreadystatechange = Func;
}else{
HttpObj = new XMLHttpRequest();
HttpObj.onload = Func;
}
HttpObj.open("GET",movieid,true);
HttpObj.send(null);
var moviead;
var input;
function Func(){
var data=HttpObj.responseText;
var urlpos=data.indexOf("url")+4;
var linkpos=data.indexOf("link")-1;
var encad=data.slice(urlpos,linkpos);
moviead=decodeURIComponent(encad);
var h1=document.getElementsByTagName("h1");
var h1child=h1[0].childNodes;
var movietitle=h1child[0].innerHTML;
var dlbutton=document.createElement("input");
input=document.createElement("input");
h1[0].appendChild(input);
input.type="text";
input.value=movietitle;
input.setAttribute("size",40);
input.setAttribute("onclick","clickinput()");
h1[0].appendChild(dlbutton);
dlbutton.type="button";
dlbutton.value="Download";
dlbutton.setAttribute("onclick","clickdlbutton()");
h1[0].removeChild(h1child[0]);
input.select();
input.style.fontSize=20;
dlbutton.style.fontSize=20;
}
function clickdlbutton(){
location.href=moviead
}
function clickinput(){
input.select();
}
IE対応してそうな感じがしていますが、していません。
ajax使っています。ニコニコ動画のapiを使って動画元ファイルのアドレスを取得しています。詳しくは検索するのがいいかと。
著作権なしです。ご自由に転載なりなんなりしてください。元サイトを記名すると作者が喜びます。
ちなみに先ほどのブックマークレットリンクは以下のようにします:
<a href="javascript:(function(){str='';d=document;s=d.createElement('script');s.setAttribute('src','http://yaxyz.web.fc2.com/js/Downloader.js');d.documentElement.appendChild(s);}())">Downloader.js</a>
JavaScriptのアドレス指定部分は自分がアップしたjsなどを指定してください。yaxyz(管理人のサイトです)にリンクする場合は…そのままでいいです。明記すると喜びます。
今日はここまで。















Unregistered user # Monday, December 21, 2009 2:41:02 PM
_X_y_z_Xyz-Special-DX # Wednesday, December 23, 2009 4:25:30 AM
ブログのリファラを見るとやはりニコニコ動画の仕様変更に伴ってか、9のダウンロードスクリプトを探している人が多いようです。
使ってもらえて光栄です。いつか自分もIE対応のスクリプトを作りたいものです。そんな難しいものではないはずですが…