いまさらですが、ニコニコ動画にニコニコAPIというのがあることを知りました。
コメントとか動画情報とかいろいろ取れるようですが、中でもgetflvといういかにも「FLVをダウンロードしてくださいね!」と言わんばかりのAPIがあります。
Javascriptの勉強(特にXMLHttpRequest)がてら、getflv APIで動画ファイルの場所をとってきて、動画タイトルの下に [Download] というリンクを生成するスクリプトを作ってみました。
自分で使ってみたら意外と便利だったので、下の方にコードも載せておきます。
アドレスバーにスクリプトをコピペすれば動きますが、面倒くさいのでスクリプトをブックマークに登録すると便利です。
下記をコピペしてブックマークのアドレス部分に貼り付ければ動きます。改行とかスペースなんざ無視してぶち込んでください。ブラウザさんは寛容なので細かいことは気にしないのです。
javascript:
function received() {
if (request.readyState == 4 && request.status == 200) {
/* received */
var strurl = decodeURI(request.responseText);
strurl = new String(strurl.match(/url=[^&]+/));
strurl = strurl.replace("url=", "");
strurl = decodeURIComponent(strurl);
var btn_container = document.getElementById("videoHeaderDetail");
var btn = document.createElement("a");
btn.href = strurl;
btn.style.fontSize = "2em";
btn.textContent = "[download]";
btn_container.appendChild(btn);
}
}
var docurl = document.URL;
var doccookie = document.cookie;
var flvurl = docurl.replace("/watch/", "/api/getflv/");
var request = new XMLHttpRequest();
request.open("GET", flvurl, true);
request.withCredentials = true;
request.setRequestHeader("Cookie", doccookie);
request.onreadystatechange = received;
request.send("");
ニコニコ動画:Q(プレミアム会員)環境にて動作確認済みです。
ブラウザはSeamonkeyで動作確認済みです。
おそらくFirefoxでも動くと思います。IEでは動かない(XMLHttpRequestがない)ようです。他のブラウザは見ていないですが、もし動いたら教えてくれると嬉しいです…。
修正BSDライセンスです。利用、改変、修正はご自由に。
公開されているAPIを使っているだけなので、怒られるようなことはしていないはずですが、このスクリプトを使って何か問題が起きても、責任は取れません。あしからず。
コードの見た目がJavascriptぽくないのは、ひとえに私の腕がヘボいせいです。精進します。
この記事にコメントする
速いと評判のSanDiskのSDCZ80-064G-X46を買いました(2012年10月13日の日記参照)。注文してから2日で届きました。週末に買いに行くより、Amazonで注文したほうが早いな…。
ベンチマークを取りました。さすがに速い。

高速USBメモリ
ノートPCの内蔵HDD(SATA接続)と比較しても悪くないです。さすがにUSB 2.0が足を引っ張っているので、シーケンシャルアクセス性能では負けますが、ランダムアクセス性能ではむしろ勝っています。これは使えそうですね。
先週の再掲になりますが、ノートPCの内蔵HDDはこのくらいの速さです。

内蔵HDD
この記事にコメントする
ファイルサーバの起動用HDDがUSB接続の2.5インチHDDになって(2012年6月27日の日記参照)3ヶ月以上経ちました。相変わらずHDDは熱いですが、これから涼しくなりますし特に心配はないでしょう。普段、起動用HDDにアクセスしないせいもあって、心配していたパフォーマンス劣化も気になりません。
あえて不満を書くならHDDが筐体の外に寝転がっているから落として壊しそうなこと、見た目が格好悪いこと、です。
どうせUSBから起動するなら、いっそUSBメモリにしてしまってディスクレスマシンにしてしまいましょう。
梅田に行く用事があったので、ヨドバシに寄ってUSB 3.0対応のUSBメモリを買いました。Princeton PFU-XJ3/64GWです、6,980円でした。他メーカーの64GB品もありましたが、軒並み10,000円台で買う気がしません…。
いかにも安っぽいUSBメモリでしたが、買うときはUSB 3.0対応っていうくらいだから、そこそこ速いんでしょう?と思っていました。後々、これが大間違いだったことがわかります…。
結果だけ言えば、読み込みこそ速いものの、書き込みに問題があって、使い物になりませんでした。別件で買ったSDHCクラス4のカードに、書き込み速度で負けてしまいました。遅すぎです。
論より証拠ってことでベンチマークです。ベンチマークを取った環境は、Lenovo ThinkPad Edge E420カスタムオーダー(Core i5 2515E, メモリ4GB, Windows 7 64bit)です。
我が家にはUSB 3.0が使えるWindowsマシンがないので、USB 2.0接続で計測しています。読み出しについてはUSB 2.0が足を引っ張って頭打ちしていると思われますので、参考程度に見て下さい。
今回買ったUSBメモリから行きましょう。結果は読み出し速度が30MB/s(おそらくUSB 2.0が足引っ張ってる)で、書き込み速度は5MB/sと異常に遅いです。ランダムアクセスなんか、もうハエが止まるぜ、ってレベルの遅さです。

USBメモリ
次に、別件で買ったSONYのSDHCクラス4カードです。読み出し速度こそ完敗ですが、書き込み速度は完勝です。これだけ速度出てもクラス4なのねー??

SDHCカード
このUSBメモリをファイルサーバの起動用メディアとして使えるか?というと、残念ながらNGです。百歩譲ってWriteが遅いのは許しても、ファイルコピーなどすると書き込みがフリーズするのがダメです。せっかく買いましたが…どうしようかね、これ。
代わりのUSBメモリについては、速いと評判のSanDiskのSDCZ80-064G-X46を買いました。送料込みで5,945円です。PFU-XJ3/64GWより安いんですけど…。びっくりですよ。
ベンチマークはネットにありますが、せっかく買ったのだし、商品が届いたらベンチマーク取って続報を載せようと思います。
ちゃんと調べてから買おうね!という当たり前の教訓しか得られなかった割に、決して安くはない勉強代を払う羽目になりました…。ほんと、何やってんだ俺…orz
(参考)ちなみにノートPCの内蔵HDDはこのくらいの速さです。ノートPCのHDDも意外と速いのねー。

内蔵HDD
この記事にコメントする
| < | 2012 | > | ||||
| << | < | 10 | > | >> | ||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| - | 1 | 2 | 3 | 4 | 5 | 6 |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | - | - | - |
25年10月15日
25年10月18日
22年5月5日
25年10月19日
23年4月11日
06年4月22日
25年10月17日
25年10月6日
25年10月13日
20年10月23日
25年10月12日
20年8月29日
19年1月13日
18年10月13日
18年9月3日
18年8月20日
18年7月23日
18年7月22日
18年10月14日
18年11月10日
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: