link もっと前
   2012年 10月 25日 -
      2012年 10月 16日  
link もっと後

link 未来から過去へ表示(*)
link 過去から未来へ表示

日々

link permalink

ニコニコ API

いまさらですが、ニコニコ動画にニコニコ API というのがあることを知りました。

コメントとか動画情報とかいろいろ取れるようですが、中でも getflv といういかにも「FLV をダウンロードしてくださいね!」と言わんばかりの API があります。

Javascript からニコニコ 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 ぽくないのは、ひとえに私の腕がヘボいせいです。精進します。

[編集者: すずき]
[更新: 2012年 10月 25日 23:28]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link permalink

先週の続き

速いと評判の SanDisk の SDCZ80-064G-X46 を買いました(2012年 10月 13日の日記参照)。注文してから 2日で届きました。週末に買いに行くより、Amazon で注文したほうが早いな…。

ベンチマークを取りました。さすがに速い。

高速 USB メモリ

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

先週の再掲になりますが、ノート PC の内蔵 HDD はこのくらいの速さです。

内蔵 HDD

[編集者: すずき]
[更新: 2012年 10月 21日 11:33]
link 編集する

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
   2012年 10月 25日 -
      2012年 10月 16日  
link もっと後

管理用メニュー

link 記事を新規作成

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDF ファイル RSS 1.0
QR コード QR コード

最終更新: 11/14 02:08

カレンダー

<2012>
<<<10>>>
-123456
78910111213
14151617181920
21222324252627
28293031---

最近のコメント 5件

  • link 18年10月12日
    すずき 「なるほど!\n京急、京成はヤバそうですね...」
    (更新:10/15 23:02)
  • link 18年10月12日
    ちかふみ 「閉会式直後の出国ラッシュ対策のためだそう...」
    (更新:10/15 20:43)
  • link 18年10月12日
    すずき 「あー、なるほど!閉会式の次にくっつけたん...」
    (更新:10/14 15:44)
  • link 18年10月12日
    hdk 「2020年の東京オリンピックが8月9日ま...」
    (更新:10/14 10:45)
  • link 18年09月07日
    すずき 「ありがとう!\nこちらこそ、楽しみにして...」
    (更新:09/11 19:30)

最近の記事 3件

link もっとみる
  • link 18年11月13日
    すずき 「[お気に入りのマンガ] Kindle Fire HD は大量の本を...」
    (更新:11/14 02:08)
  • link 18年11月10日
    すずき 「[ROCK64 の I2S が動かない] 先日(2018年 7月 ...」
    (更新:11/14 01:53)
  • link 18年11月11日
    すずき 「[linux-next で動かない ROCK64 の I2S] 昨...」
    (更新:11/14 01:52)

こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報