以下の内容はhttps://riocampos-tech.hatenablog.com/entry/20200402/radirudegogakuより取得しました。


NHK語学講座のらじる★らじる聴き逃しサービスを取得するRubyスクリプトradirudegogaku0.rb(2025/04更新)

2025年度対応

してませんm(_ _)m 終了した番組の ID を削除したぐらいです。

ごあいさつ

こんにちは。gogakuondemand.rb 作者の @riocampos です。ご無沙汰しております、というか gogakuondemand.rb をほとんど放置していて申し訳ありませんでした。

NHKゴガクでの語学番組ストリーミング配信がとうとう終了

NHKゴガクにて長らく独自配信を続けてきた語学番組のストリーミング配信がとうとう終わり、らじる★らじるの聴き逃しサービスに統合されました。

らじる★らじる聴き逃しサービスからの取得

ということで対応スクリプトを作りました。しかしまだ不完全版でして、UI というか gogakuondemand.rb のような

"ラジオ英会話"             => true,

のような設定ファイルがまだ作れてません。気長に開発してると年度始め第1週(というか昨年度最終週)のストリーミングが取得出来なくなっちゃうので、暫定版*2として公開しました。

(おまじないとしての)お断り

  • このスクリプトの動作は保証されません。Mac にて開発していますので Windows での動作はよく分かりません。が、gogakuondemand.rb が動作していた環境であれば動作するはずです。
  • このスクリプトで取得したストリーミング配信ファイルは私用にのみご利用ください。他の方が取得可能となる公開サイトへのアップロードなど著作権法違反行為は禁止します。
  • スクリプト著作権は放棄しておりません。有償アプリケーション作成の基礎にすることは絶対にやめてください。

必要環境

  • Ruby 言語
  • OpenSSL または GnuTLS 対応の FFmpeg(なお 2024/6 現在バージョン6まで対応で バージョン7以降は非対応 です)

動作環境の構築などについては以前の NHK語学講座のラジオ番組ストリーミングを取得するRubyスクリプトgogakuondemand.rb(v1804_1 2018/5/5更新版) - 別館 子子子子子子(ねこのここねこ)はてブロ部 などを参考にしてください。

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

  • 2024/08更新版 radirudegogaku0_2408.zip

drive.google.com

  • 2024/08更新版(Windows向け) radirudegogaku0_2408_1.zip

drive.google.com

リンク先で表示されるダウンロードボタンを押して zip ファイルをダウンロードしてください(下図は以前の radirudegogaku0_2406.zip ですが上記リンクは新しいスクリプトになっています)。

zip ファイルの中には

  • radirudegogaku0.rb
  • __ffmpeg_prior_43.txt

の2ファイルが入っています。FFmpeg バージョン 4.2.x 以前を(やむなく)使用しておられる方は __ffmpeg_prior_43.txt をご確認頂きファイル名を変更してください。バージョン 4.3.x 以降 7 未満を使用しておられる方は変更不要です( __ffmpeg_prior_43.txt ファイルを削除していただいても問題ありません)。

radirudegogaku0_2406.zip と radirudegogaku0_2406_1.zip の違いについて

ファイルのメタデータにはサブタイトルを書き込んでいます。例えば「中高生の基礎英語 in English」ではサブタイトルが全て全角アルファベットで、二重引用符「“”」が使われています。 今回の更新では全角記号を半角に変更しました(見映えの問題です)が Windows では半角記号を含むファイル名で不具合が生じたので変更しないようにしました。加えて radirudegogaku0_2406.zip では全角の二重引用符を半角に変換し、 radirudegogaku0_2406_1.zip では全角の二重引用符をそのまま残しています。Windows 利用者は必ず radirudegogaku0_2406_1.zip を利用して下さいWindows 以外の利用者は好みでご利用ください。

使い方

各語学番組にはそれぞれ ID が割り振られています。その ID は各番組サイトの URL で分かります。例えば

であればサイトの URL の末尾 PMMJ59J6N2_01 が ID です。radirudegogaku0.rb では、この ID によりダウンロード番組を指定します。「ラジオ英会話」をダウンロードする場合は

$ ruby radirudegogaku0.rb PMMJ59J6N2_01

とします。今日(2024年8月2日)の時点でこのスクリプトを実行すると

$ ruby radirudegogaku0.rb PMMJ59J6N2_01
1 
 1【ラジオ英会話(PMMJ59J6N2_01)】のダウンロードを開始します。
ラジオ英会話 ハートでつかめ!英語の極意(81)_2024_07_29.m4a
[##################################################] 900 / 900 秒完了
ラジオ英会話 ハートでつかめ!英語の極意(82)_2024_07_30.m4a
[##################################################] 900 / 900 秒完了
ラジオ英会話 ハートでつかめ!英語の極意(83)_2024_07_31.m4a
[##################################################] 900 / 900 秒完了
ラジオ英会話 ハートでつかめ!英語の極意(84)_2024_08_01.m4a
[##################################################] 900 / 900 秒完了
ラジオ英会話 ハートでつかめ!英語の極意(85)_2024_08_02.m4a
[##################################################] 900 / 900 秒完了

作業終了

となります。命令の次の行の「1」というのは「1つ目の番組の取得先指定ファイル(録音ファイルではない)を取得出来ました」という意味合いです。

複数の番組を指定する場合には、半角スペースで区切ってください。つまり「ラジオ英会話(ID: PMMJ59J6N2_01)」と「ラジオビジネス英語(ID: 368315KKP8_01)」をダウンロードしたい場合には下のようにします。上で「ラジオ英会話」を取得済みなのでこのようになります。

$ ruby radirudegogaku0.rb PMMJ59J6N2_01 368315KKP8_01
1 2 
 1【ラジオ英会話(PMMJ59J6N2_01)】のダウンロードを開始します。
更新はありません。
 2【ラジオビジネス英語(368315KKP8_01)】のダウンロードを開始します。
ラジオビジネス英語 Lesson(65)_2024_07_29.m4a
[##################################################] 900 / 900 秒完了
ラジオビジネス英語 Lesson(66)_2024_07_30.m4a
[##################################################] 900 / 900 秒完了
ラジオビジネス英語 Lesson(67)_2024_07_31.m4a
[##################################################] 900 / 900 秒完了
ラジオビジネス英語 Lesson(68)_2024_08_01.m4a
[##################################################] 900 / 900 秒完了
ラジオビジネス英語 Interview(3-1)_2024_08_02.m4a
[##################################################] 900 / 900 秒完了

作業終了

書き忘れていましたが、ダウンロードしたストリーミングファイルはスクリプトと同じフォルダに、それぞれの番組別に保存されます。(↓の図は2020年の頃のものです。イメージとしてこのようになる、として見て頂ければ。)

各語学番組のID 2025年度分

番組名 ID
小学生の基礎英語 GGQY3M1929_01
中学生の基礎英語 レベル1 148W8XX226_01
中学生の基礎英語 レベル2 83RW6PK3GG_01
ラジオ英会話 PMMJ59J6N2_01
エンジョイ・シンプル・イングリッシュ BR8Z3NX7XM_01
英会話タイムトライアル 8Z6XJ6J415_01
ニュースで学ぶ「現代英語」 77RQWQX1L6_01
ラジオビジネス英語 368315KKP8_01
まいにち中国語 983PKQPYN7_01
まいにちハングル講座 LR47WW9K14_01
まいにちイタリア語 LJWZP7XVMX_01
まいにちドイツ語 N8PZRZ9WQY_01
まいにちフランス語 XQ487ZM61K_01
まいにちスペイン語 NRZWXVGQ19_01
まいにちロシア語 YRLK72JZ7Q_01
アラビア語講座 WKMNWGMN6R_01
ポルトガル語講座 N13V9K157Y_01

ファイルフォーマット

基本的にはm4a(aac)です。

mp3 にしたい方は以下のオプション設定を行ってください。

mp3指定

以下のように --mp3 を ID の前に入れてください。

-mp3 のようにマイナスが一つだとエラーになります。必ず --mp3 とマイナスが二つ続くようにしてください。

以下に例を挙げます。

$ ruby radirudegogaku0.rb --mp3 77RQWQX1L6_01
1 
 1【ニュースで学ぶ「現代英語」(77RQWQX1L6_01)】のダウンロードを開始します。
ニュースで学ぶ「現代英語」 トランプ氏 共和党が大統領候補に正式指名_2024_07_29.mp3
[##################################################] 900 / 900 秒完了
ニュースで学ぶ「現代英語」 道後温泉本館 全館で営業を再開_2024_07_30.mp3
[##################################################] 900 / 900 秒完了
ニュースで学ぶ「現代英語」 国連 "世界人口は今世紀中に減少"_2024_07_31.mp3
[##################################################] 900 / 900 秒完了
ニュースで学ぶ「現代英語」 防衛省 200人以上を処分_2024_08_01.mp3
[##################################################] 900 / 900 秒完了
ニュースで学ぶ「現代英語」 首里城再建 正殿で瓦ぶき始まる_2024_08_02.mp3
[##################################################] 900 / 900 秒完了

作業終了

スクリプトソース

このスクリプトに関して、ライセンスとかはよく知らないですが、ひとまず、利用や紹介をする場合には、この4/2分へのリンク

NHK語学講座のらじる★らじる聴き逃しサービスを取得するRubyスクリプトradirudegogaku.rb(2020/4/2暫定版) - 別館 子子子子子子(ねこのここねこ)はてブロ部

を貼ってください。

投げ銭

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

質問や希望を出される方へ

私も使ってるスクリプトなので、今後NHK側が行った変更には対応していくするつもりです。機能要望はOKですが、実現可能かどうかは私の開発能力に掛かっていますw 基本的にはノーサポートであると理解してください。

そして、自分で環境構築が出来る方にしかサポートできません。「私でも出来るでしょうか?」「Rubyってなに?」「コマンドってなに?」という方は利用を諦めてください。

なお、質問などはここのコメント欄よりも @riocampos に送ってもらうほうが即応できると思います。DM もオープンにしてあります。

Have Fun! And Let's Learning!

私のように録音ファイルを取得するだけで満足せず、ちゃんと語学学習しましょうね☆


過去の変更履歴

【緊急】2024年度対応

従来のスクリプトでは 6/3 からダウンロードできなくなりましたので、対応版を作成しました。全ての利用者が新しいスクリプトに変更していただく必要があります。ダウンロードして頂けますようお願いします。なお FFmpeg の古いバージョンを利用している方は前準備が必要になります。また FFmpeg 最新のバージョン 7 以降は現状未対応ですので不用意にアップグレードするのはお避けください。

【6/9追記】欧州言語の語学講座では初級編と応用編とで別の ID が割り振られていましたが、応用編の ID が廃止されて初級編に統合されました。現在配布中のスクリプトで従来からの応用編の ID を指定すると NoMethodError エラーで終了してしまいます。お手数ですが廃止された ID は削除してください。なお、存在しない番組 ID を指定した場合にエラーにならずメッセージを表示するように改善中です(スクリプトは出来ていますがまだアップしてません)。(遊びニンさんのコメントに感謝)

【2024/8/2追記(2024/11/26更新)】(夏祭りさんコメントにてお知らせ頂きました。)語学講座*4の放送番組の ID が変更されて、以前の「数字4桁_数字2桁」から「英大文字数字10文字_数字2桁」になりました(2024/11/26 に新しい形式の ID に統一されました)。従来のスクリプトでは ID が「数字4桁_数字2桁」であることを前提にしていましたので、「英大文字数字10文字_数字2桁」を指定してもダウンロードできるよう変更しました。また、存在しない番組 ID を指定した場合にエラーにならずメッセージを表示するように改善しました。

今回(2024/6/3 及び 8/2)の更新に併せて変更した点

  • ファイル名などに使われている全角英数字、全角記号、そして全角スペースを半角に変更しました。このため、スクリプト変更直後はダウンロード済みファイルが再度ダウンロードされる場合があります(特にファイル名に全角スペースが使われている場合)。
  • 追記:↑だと半角記号や半角スペースを使ったファイル名になり Windows 環境ではエラーが生じる*5ようです(全く忘れていました)。このため Windows 環境では従来と同様に全角英数字のみ半角にする設定に戻しました。(cat2さんのコメントに感謝)また 2024/08 更新分からは全角や半角スペースを半角アンダースコア「_」に置換しました。

よろしくお願いいたします。

2023年度対応

基本的に昨年度と変化がありませんでしたので更新してません(ただし英語以外の「まいにち○○語」は入門編から初級編へと名称変更(?)されていました。が ID は同一です。)

2022/05時点のNHK語学講座ダウンロード不調に関して

コメント欄に報告を頂きました(tamaさん、DKさんありがとうございます)。

  • DK

当方では2021/10更新版で5/13(金)頃から、ダウンロードが途中で終了する現象が発生しています。

 :

オプション「-http_seekable 0」を追加変更することで、ffmpegのバージョン5.0.1でもエラーなく最後までダウンロードできました。

これに対応する2022/05更新版を作成してアップしました。変更に関する詳細はradirudegogaku0.rb更新(2022/05) - 別館 子子子子子子(ねこのここねこ)はてブロ部をご覧ください。

2022年度対応

「2022年度分」のところに2022年度の番組 ID を追記しました。
今年度から配信開始が放送直後からになるようです。 このため、いままでより早めに配信終了するおそれがあるやも。ご注意ください。 「放送直後より1週間」に変更になりました。

※ 2022/4/4注意追記

※語学番組の聴き逃しは「放送翌週の月曜日から1週間」の配信でしたが、4月4日放送分より「放送直後より1週間」に変更となります。ご注意ください。

2021/10/3更新

スクリプトを更新しました。現状で満足しているので、やはり暫定版(設定ファイルを使わない方式)のままです。設定ファイル方式を希望される方は(私のモチベーションアップのため)ご連絡ください。

2021/10更新版での変更点

ダウンロードしたファイルの日時が放送日時になるように変更

いままではファイルの日時はスクリプトの実行時になっていました。しかし、うまくダウンロードできない場合などには、ファイルを日時順に並べていると放送の順序と違ってきてしまいます。

そこで、ストリーミングファイルの日時をNHKラジオ第2で放送された時刻に設定するようにしました。

ダウンロードが不完全な場合のエラーメッセージの例

ダウンロード時のエラーは次の二種類です。

  • ダウンロードを開始できなかった場合
  • ダウンロード途中で欠損が生じた場合

前者の場合にはファイルが作成されません。後者の場合には不完全なファイルが作成されます(途中までは保存されています)ので、削除してください。その後、スクリプトを再実行してください。

なお、前者のようにダウンロードが開始できなかった場合には、スクリプトの再実行は時間を空けてから行った方がよさそうです。直ぐに実行すると、またダウンロードが開始できないことが多いように感じました。

例として私の環境で実際にエラーが生じた場合のメッセージを掲載します。

$ ruby radirudegogaku0.rb 6808_01 0916_01
1 2 
 1【中高生の基礎英語 in English(6808_01)】のダウンロードを開始します。
中高生の基礎英語 in English TOPIC12(1)_2021_09_20.m4a
[##################################################] 900 / 900 秒完了
中高生の基礎英語 in English TOPIC12(2)_2021_09_21.m4a
[##################################################] 900 / 900 秒完了
中高生の基礎英語 in English TOPIC12(3)_2021_09_22.m4a
[##################################################] 900 / 900 秒完了
中高生の基礎英語 in English TOPIC12(4)_2021_09_23.m4a
[###########################                       ] 488 / 900 秒 !!!
 ダウンロードファイルの一部を取得出来ませんでした。
 ファイルが作成されているばあいには不完全ですので削除してください。
 スクリプトを再実行してください。
中高生の基礎英語 in English TOPIC12(5)_2021_09_24.m4a
[##########################                        ] 480 / 900 秒 !!!
 ダウンロードファイルの一部を取得出来ませんでした。
 ファイルが作成されているばあいには不完全ですので削除してください。
 スクリプトを再実行してください。

 2【ラジオ英会話(0916_01)】のダウンロードを開始します。
ラジオ英会話~ハートでつかめ!英語の極意~(116)_2021_09_20.m4a
 !!!
 ダウンロードを開始出来ませんでした。
 スクリプトを再実行してください。
ラジオ英会話~ハートでつかめ!英語の極意~(117)_2021_09_21.m4a
 !!!
 ダウンロードを開始出来ませんでした。
 スクリプトを再実行してください。
ラジオ英会話~ハートでつかめ!英語の極意~(118)_2021_09_22.m4a
[##################################################] 900 / 900 秒完了
ラジオ英会話~ハートでつかめ!英語の極意~(119)_2021_09_23.m4a
[##################################################] 900 / 900 秒完了
ラジオ英会話~ハートでつかめ!英語の極意~(120)_2021_09_24.m4a
[######                                            ] 114 / 900 秒 !!!
 ダウンロードファイルの一部を取得出来ませんでした。
 ファイルが作成されているばあいには不完全ですので削除してください。
 スクリプトを再実行してください。

作業終了

mp3指定

ダウンロードしたファイルを mp3 に変更できるようになりました。

設定方法は「ファイルフォーマット」のところをご覧ください。

2021年度対応(2021/3/29追記)

「2021年度分(2021/3/29追記)」のところに2021年度の番組 ID を追記しました。当然のことですが、2021年度の ID でダウンロード可能になるのは 2021/4/5 午前10時以降です。

スクリプト自体は暫定版のままです。すみません。

*1:自分で作った仕様なのに忘れてるorz

*2:ずっと暫定版orz

*3:公開はしてなかったけど gogakuondemand.rb でのダウンロードは(設定ファイル更新で)可能だったんだと思います

*4:というからじる★らじる聴き逃しサービス

*5:ASCII.jp:Windowsでファイルやフォルダーに「使わない方がいい」文字 (1/2)




以上の内容はhttps://riocampos-tech.hatenablog.com/entry/20200402/radirudegogakuより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14