NHK語学講座のラジオ番組ストリーミングを取得するRubyスクリプトgogakuondemand.rb(v2.0→2.2)

新しいバージョンv3.4(Windows対応、 mp3・m4a・wmaogg対応)を公開しました。
NHK語学講座のラジオ番組ストリーミングを取得するRubyスクリプトgogakuondemand.rb(v3.4 Windows対応)



NHK大好きな[twitter:@riocampos]です。
語学講座ストリーミング取得Rubyスクリプトgogakuondemand.rbを公開しました。

そして旧形式のダウンロードが使えなくなった本日10時、このスクリプトも使えなくなりましたorz

ということで、何が変更になったのか確認しておりました。

で、対策できましたので、対策を講じたバージョン2.0を公開します。

しかし、バージョン2.0まではメモリを喰いやすい設定になっていました。また、Windowsで使われていない(であろうと思われる)OpenSSLをコマンドとして使っていました(MacLinuxでは当然入ってるので使えないと思いつかなかった…すみません)。さらにcatコマンド使ってましたorz
ので、これらに対応したバージョン2.2を公開しました。
全ての方にアップデートをお勧めします。Windowsで動作しやすくなっているとも思われます。
ようやくv3.0で対応しましたお待たせしましたm(_ _)m
NHK語学講座のラジオ番組ストリーミングを取得するRubyスクリプトgogakuondemand.rb(v3.0 Windows対応)

環境
  • Ruby 1.9.3(おそらく2.0.0でも大丈夫。1.8.7は申し訳ないですが対応しません)
  • FFmpeg

スクリプトのダウンロードファイル

http://www.mediafire.com/download/mtha3jb49ym66hi/gogaku220.zip ←旧版ですので公開を終了しました。
このzipファイルに3つのファイルが入っています。(これでエラーが出る場合は下の別バージョンでご確認を。)

  • gogakuondemand.rb
  • pref.rb
  • subjects.rb

使い方

上記環境をセットアップしてください。
上記3ファイル全てをストリーミングファイルを保存したいところへ置いてください。
ダウンロードする講座講座名はpref.rbで設定します。デフォルトでは「入門ビジネス英語」「実践ビジネス英語」が選択(falseからtrueに変更)されています。
設定を終えた後に

$ ruby gogakuondemand.rb

を実行すればストリーミングファイルが取得されます。

別バージョン

上記リンクのスクリプトでOpenSSLのcertificate verify failedエラー(具体的にはコメント欄のおぐりん☆さんのエラー)が出る場合には、こちらのスクリプトをダウンロードして使ってみてください。gogakuondemand.rbのみ異なっています。
http://www.mediafire.com/download/i7pfp1534qrm48r/gogaku220_SSL_VERIFY_NONE.zip ←旧版ですので公開を終了しました。
使い方は同じです(SSLのセキュリティ確認を無視する設定になっています)。


動作環境詳細

当方の開発環境はhomebrewを使ったMacOS X 10.7.5 Lion)です。またRubyはrbenvを使ってインストールしています。
Ruby再インストール - 別館 子子子子子子(ねこのここねこ)

$ ruby -v
ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-darwin11.4.2]

nokogiriはrubygemsで入れます。*1
ffmpegもhomebrewでインストールしました。*2

$ ffmpeg -v
ffmpeg version 1.2.1 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun 26 2013 17:54:52 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
  libavutil      52. 18.100 / 52. 18.100
  libavcodec     54. 92.100 / 54. 92.100
  libavformat    54. 63.104 / 54. 63.104
  libavdevice    54.  3.103 / 54.  3.103
  libavfilter     3. 42.103 /  3. 42.103
  libswscale      2.  2.100 /  2.  2.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100

また、Mac OS X Snow Leopard 10.6.8での動作のみ確認済みです。
その他環境では未確認です。動作報告をいただければ幸いです。
[twitter:@riocampos]へのご連絡が一番ありがたいです。コメント欄は見てないことが多いです。いまはまだしっかり見てますw

スクリプトソース

ライセンスとかはよく知らないですが、ひとまず、利用や紹介をする場合には、この7/31分のはてなダイアリーへのリンク
NHK語学講座のラジオ番組ストリーミングを取得するRubyスクリプトgogakuondemand.rb(v1804_1 2018/5/5更新版) - 別館 子子子子子子(ねこのここねこ)
を貼ってください。

更新履歴

  • 2013/7/25

バージョン1公開(Ruby+PhantomJS版)

  • 2013/7/26

バージョン1.1公開(Ruby版)

  • 2013/7/29

バージョン2.0公開(このページ)
7/29のNHK側設定変更に対応

  • 2013/7/30

バージョン2.1公開(このページ)
[twitter:@Mofus1]さんご指摘、及びおぐりん☆さんコメントに対応*3

  • 2013/7/30

バージョン2.2公開(このページ)
[twitter:@honda0510]さんのWindows向け指針に従い修正(当方に環境がないため検証できず)。

動作確認ご報告(ありがとうございます)

サポート

私も使ってるスクリプトなので、今後NHK側が行った変更には対応していくするつもりです。
ただし当方の環境以外(特にWindows環境)でスクリプトが動作しないことへの対応はおそらくできないです。ごめんなさい。
Mac向けデスクトッププログラムは作りたいと思っています。
プログラムへのffmpeg組込方法が分かれば、Win用デスクトッププログラムも作るかもやるかもしれません。
コメントは[twitter:@riocampos]へ。

他の方が作られたRubyスクリプト

v1.1の記事でコメントくださった id:fafhrd さんの記事。

同じRubyなのに、書き方が全く違うw
使っているライブラリもほとんど違います。
面白いですね^_^

投げ銭

このスクリプトが役立ったときには、Amazonギフト券をお送り頂ければありがたいです。
メールアドレスは「riocampos22あっとまーくgmail.com」です。
よろしくお願いします。

プログラミング言語 Ruby

プログラミング言語 Ruby

リファクタリング:Rubyエディション

リファクタリング:Rubyエディション

メタプログラミングRuby

メタプログラミングRuby

初めてのRuby

初めてのRuby

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック

Rubyベストプラクティス -プロフェッショナルによるコードとテクニック

↑いま欲しい本たち

はてブのコメ欄へのコメ

id:hidex7777
うーむ、SSLでcertベリファイエラーがでる・・・

追加した別バージョンで試してみてください。