いものやま。

雑多な知識の寄せ集め

Ruby

Ruby-FFIについて調べてみた。(その4)

残すはFFI::MemoryPointerの話のみ。 OUT引数 Cのインタフェースを設計するときに、関数にポインタを渡し、ポインタを介することで関数の出力を受け取るようにするということがよくある。 例えば、次のようなコードが一例。 /* rbuf.h */ typedef struct _ri…

Ruby-FFIについて調べてみた。(その3)

昨日の続き。 いよいよCインタフェースとの結びつけをやっていく。 グローバル変数の結びつけ グローバル変数の結びつけを行うには、FFI::Library#attach_variableを使う。 そうすると、グローバル変数にアクセスするアクセサメソッドが使えるようになる。 a…

Ruby-FFIについて調べてみた。(その2)

昨日の続き。 Ruby-FFIのコア・コンポーネント Ruby-FFIを理解する上で、重要なクラス、モジュールがいくつかある。 FFI::Library ライブラリのロードや、グローバル変数、関数を結びつける機能などを提供する。 FFI::Pointer ライブラリで確保されたネイテ…

Ruby-FFIについて調べてみた。(その1)

ニコニコ動画のダウンロードツールを作ってみたものの、ちょっと不満点が。 それは何かと言うと、RTMPで配信されている動画をダウンロードする場合、 ダウンロードの進捗が細かく表示されない ダウンロードの進捗度合いが分からない というもの。 これは、ダ…

ニコニコ動画のダウンロードツールをRubyで書いてみた。(まとめ)

これまでの各記事は、以下から。 ニコニコ動画のダウンロードツールをRubyで書いてみた。(その1) - いものやま。 ニコニコ動画のダウンロードツールをRubyで書いてみた。(その2) - いものやま。 ニコニコ動画のダウンロードツールをRubyで書いてみた。(…

ニコニコ動画のダウンロードツールをRubyで書いてみた。(その5)

昨日までの内容は、以下から。 さて、HTTPの動画はダウンロード出来たので、次はRTMPの動画のダウンロード。 gem探し RTMPのプロトコルを読み込んで実装するのはさすがに難しいので、RTMPを扱えるgemを検索。 しかし・・・見つからない! 厳密に言えば、それ…

ニコニコ動画のダウンロードツールをRubyで書いてみた。(その4)

Nicovideo DownloaderをRubyへポーティングしたはずなのに、なぜか正しくダウンロード出来ない。 ということで、今日はその調査と解決。 Cookieの確認 Forbiddenが出てるということは、認証で何か失敗しているということ。 そうなると、怪しいのはCookie。 …

ニコニコ動画のダウンロードツールをRubyで書いてみた。(その3)

昨日に引き続き、Rubyへのポーティング。 Rubyへのポーティング(続き) 昨日やったのは、ログイン処理まで。 元のNicovideo Downloaderは、ログインしたあとに動画のURLにアクセスしているけれど、そのレスポンスでやってるのは動画のタイトル情報を取得し…

ニコニコ動画のダウンロードツールをRubyで書いてみた。(その2)

Nicovideo Downloaderのコードは読んだので、次は原因探し。 printfデバッグ(笑) さて、ちゃんとPythonに精通した人とかならデバッガを使って調査をしたりするんだろうけど、残念ながら自分はPythonについてそれほど詳しくない。 なので、あまり褒められた…

ニコニコ動画のダウンロードツールをRubyで書いてみた。(その1)

自分がニコニコ動画のダウンロードツールとして使っていたのが、Nicovideo Downloader。 便利なツールなんだけど、ちょっと不満が。 具体的には、公式動画でいくつかダウンロード出来ないものがあるということ。 ただ、原因が分からない・・・ ブラウザでは…