いものやま。

雑多な知識の寄せ集め

2015-05-01から1ヶ月間の記事一覧

ニコニコ動画のダウンロードツールを改良してみた。(まとめ)

これまでの各記事は、以下から。 ニコニコ動画のダウンロードツールを改良してみた。(その1) - いものやま。 ニコニコ動画のダウンロードツールを改良してみた。(その2) - いものやま。 ということで、最終的なコードは、以下。 実のところ、ここまで来…

ニコニコ動画のダウンロードツールを改良してみた。(その2)

昨日の続き。 今日は、アプリケーション側のコードを実装していく。 中断ファイルの処理 中断ファイルから中断時の情報を取り出す必要があるので、それに関するコードをまず用意。 最初に、中断情報を表す構造体を定義しておく。 module NicovideoDL module …

ニコニコ動画のダウンロードツールを改良してみた。(その1)

ということで、以前作ったニコニコ動画のダウンロードツールを改良し、RTMPで配信されている動画をダウンロードするときにも進捗度合いがわかるようにしてみた。 まず、ニコニコ動画のダウンロードツールをRubyで書いた話は、以下から。 そして、これを改善…

rtmpdumpのコードを読んでみた。(その3)

昨日の続き。 今日はDownload()の詳細を見ていく。 Download() Download()で行ってるのは、初期設定を行ったあと、データを取得してファイルに書き込み、進捗度合いを計算するくらい。 一応、流れを書いておくと、 終了判定(回避策) RTMP_READの設定 デー…

rtmpdumpのコードを読んでみた。(その2)

昨日の続き。 今日はOpenResumeFile()とGetLastKeyframe()の詳細を見ていく。 FLVファイルの構造 処理の詳細を見ていく前に、まずはFLVファイルの構造を理解しておいた方がコードが分かりやすいと思う。 (もっとも、以下の説明は仕様書を読んだものではなく…

rtmpdumpのコードを読んでみた。(その1)

Rubyでニコニコ動画のダウンロードツールを書いた話や、Ruby-FFIについて調べた話は、以下から。 下準備も整ったので、rtmpdumpのコードを読んで、どのようにlibrtmpを使っているのか調べてみた。*1 ファイル構成 今回関係があるファイルは、以下。 rtmpdump…

Ruby-FFIについて調べてみた。(まとめ)

これまでの各記事は、以下から。 Ruby-FFIについて調べてみた。(その1) - いものやま。 Ruby-FFIについて調べてみた。(その2) - いものやま。 Ruby-FFIについて調べてみた。(その3) - いものやま。 Ruby-FFIについて調べてみた。(その4) - いものや…

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で配信されている動画をダウンロードする場合、 ダウンロードの進捗が細かく表示されない ダウンロードの進捗度合いが分からない というもの。 これは、ダ…

TeXをMarkdown記法でも使ってみた。

はてなブログで記事を書くときには、いくつかの方法があるのは以前書いた通り。 このとき、も使えるということを書いたんだけど、いざ使おうとしてみるといくつか問題が・・・ 今日は、その問題の具体的な内容と、自分の見つけた回避策の紹介。 まずは基本か…

多数決の「妥当な解決策」について考えてみた。(その2)

昨日の続き。 別の観点 功利主義的に人口全体の満足度を最大にすることを考えた場合、従来の方法の方が妥当となるようだったので、別の観点で提案された方法を評価してみる。 具体的には、「格差」。 A案とB案に投票した人口それぞれの満足度の差を考えてみ…

多数決の「妥当な解決策」について考えてみた。(その1)

大阪で、「大阪都構想」の是非を問う住民投票があったみたい。 これについては詳細を調べてないので、自分の意見を言うつもりはないんだけど、ツイッターを見ていて気になった呟きがあったので、それについて考えてみた。 気になった呟きというのは、これ。 …

ニコニコ動画のダウンロードツールを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。 便利なツールなんだけど、ちょっと不満が。 具体的には、公式動画でいくつかダウンロード出来ないものがあるということ。 ただ、原因が分からない・・・ ブラウザでは…

Markdownで書いてみた。(まとめ)

これまでの各記事は、以下から。 Markdownで書いてみた。(その1) - いものやま。 Markdownで書いてみた。(その2) - いものやま。 Markdownで書いてみた。(その3) - いものやま。 さて、まとめということで、はてなブログで使えるMarkdown記法について…

Markdownで書いてみた。(その3)

昨日に引き続き、はてなブログでのMarkdown記法の話。 今日取り上げるのは、表組みと、はてなブログ独自の書き方について。 表組み GitHub Flavored Markdownでは、表組みに関する拡張もされてる。 Markdown 表見出し1|表見出し2 ---------|--------- 項目1_…

Markdownで書いてみた。(その2)

昨日に引き続き、はてなブログでのMarkdown記法の話。 Markdownと一言で言っても、基本的なものの他に拡張の入ったものもあるし、あと、はてなブログ独自の書き方もある。 はてなブログの場合、基本的な記法に加え、GitHubでの拡張であるGitHub Flavored Mar…

Markdownで書いてみた。(その1)

はてなブログでは、記事を書くときの編集方法にいくつかの方法があるみたい。 具体的には、 見たまま はてな記法 Markdown の3通り。 どの方法も一長一短だけど、テキストで簡単に書けて、かつ、他のサイトなどでもよく使われているMarkdownを使いこなせるよ…