radirudegogaku0.rb更新(2022/05)

ごあいさつ

こんにちは。gogakuondemand.rb および radirudegogaku.rb 作者の @riocampos です。またまたご無沙汰しております。

更新内容

今回の更新はNHK側仕様変更(?)に対する更新です。

NHK語学講座のらじる★らじる聴き逃しサービスを取得するRubyスクリプトradirudegogaku.rb(2022/05) - 別館 子子子子子子(ねこのここねこ)はてブロ部コメント欄より

  • DK

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

 :

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

との情報に基づいて修正しました。当方で確認したところ FFmpeghttp_seekable オプションは FFmpeg バージョン 4.3 以降で有効 であるようです*1。ですので今回の2022/05更新版は FFmpeg バージョン 4.3 以降の限定になります(http_seekable オプション非対応の FFmpeg を使っているとダウンロードのプログレスバーが出ず、ダウンロードも行われません)。

スクリプトの使い方・ダウンロード

NHK語学講座のらじる★らじる聴き逃しサービスを取得するRubyスクリプトradirudegogaku.rb(2022/05) - 別館 子子子子子子(ねこのここねこ)はてブロ部 からのリンクをご利用ください。

感謝

報告頂いた tama さん、解決策をご提供頂いた DK さん

参考ツイート

*1:詳細未検証です違ってたらゴメンナサイ

radirudegogaku0.rb更新(2021/10)

ごあいさつ

こんにちは。gogakuondemand.rb および radirudegogaku.rb 作者の @riocampos です。またまたご無沙汰しております。

更新内容1

今回の更新は NHK語学講座のらじる★らじる聴き逃しサービスを取得するRubyスクリプトradirudegogaku.rb(2020/4/2暫定版) - 別館 子子子子子子(ねこのここねこ)はてブロ部 でコメントして頂いていたダウンロード時のトラブル対応です。

  • あひる

Linux Mint 20.2 (最新版) です。

   :

最近たまにですが、番組の途中でダウンロードが切れてしまう時があるようです。NHK側の問題のような気がしていますが、ご参考までに報告いたします。

  • riocampos

   :

実を言いますと当方でもダウンロードが切れてしまうことがあります。

基本的にはNHK側の問題だと私も推測しています。

ファイルサーバに保存させている当方の特殊事情なのかなあとも思っていたのですが、他の環境でも生じるのであれば、すこし調査しないといけませんね。

時間かかると思いますが、お待ち頂ければ幸いです。

結論としてはやはり NHK サーバ側の問題だと思われます。スクリプト側でダウンロードを正常にすることは難しいので、ダウンロード異常があればメッセージを出すようにしました。

メッセージは二種類。ダウンロード開始時に問題が生じた場合と、ダウンロード途中に問題が生じた場合です。後者の場合には手動でダウンロードファイルを削除する必要があります。いずれにせよ再度スクリプトを実行しなきゃいけません。

更新内容2

そしてダウンロードを再実行すると、作成されたストリーミングファイルの日時が(当然ながら)再実行した日時になってしまうので、ファイルを日時順に並べていると順序が乱れてしまいます。対策として、ストリーミングファイルの日時をNHKラジオ第2で放送された時刻に設定するようにしました。

このため、radirudegogaku.rb を更新した直後だと、新しくダウンロードしたファイルの日時が以前にダウンロードしたファイルよりも古い日時になってしまうかもしれません。申し訳ないのですが、利用者側でダウンロード先を変更するなどの対策を行ってください。

更新内容3

そして(お待たせしました)ダウンロードしたファイルを mp3 にするオプションを追加しました。

更新内容4

Ruby 2.7 以降および 3.0 以降でも

warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open.

の注意メッセージが出ないように変更しました。またスクリプトに若干の修正を加えました

スクリプトの使い方・ダウンロード

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

macOS Big Surへのアップグレードめも

作業直後メモ

MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)での作業。macOS 10.13 High Sierraからのアップグレード。1時間ぐらいで完了。現在のバージョンはmacOS Big Sur 11.3.1。 起動時に

  • RSSCSIPeripheralDeviceType00_10_4
  • RSSCSIPeripheralDeviceType00_10_5

についての警告が出た。「システム情報>使用停止されたソフトウェア」から確認するとRatocのドライバのことのようだ。サーバのmacにはRatocの外付けHDDを付けているが、何かの時にこのMacBook Proに繋いだのだろう。

見た感じがいろいろ変わっていて違和感あるような、iOS的で馴染みあるような。

あと terminal のシェルが zsh になったらしい。

The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.

Big Surにした一番の目的

これ↓

au契約iPhone12でIIJmioギガプランeSIMに申込&テザリングまで設定

前置き

以前はiPhone 6sで「auフラットプラン7プラスN」に加入していました(月額税別5480円に家族割プラス2人で-500円)。普段の月利用量は7GB弱だしTwitter通信量はカウントされない、という私にピッタリのプランでした。
しかしiPhone 6sの画面を割ってしまいました。そのためiPhone 12 Pro Maxへ機種変更。そのときに契約は5Gプラン必須となり「ピタットプラン 5G」に変更せざるを得なくなりました(4GB〜7GB利用で月額税別5980円に家族割プラス2人で-500円)。私の行動範囲では5Gエリアはほぼ無く、5Gプランを選ぶメリットはありません。わりと悲しかったです。
povoに乗り換えしたほうが安くあがるけど、20GBも要らないし、ezwebのメールアドレスが消えるのは少し辛い旧人類。どうしようか悩んでいました。

eSIMでデータ通信をau以外にして安くあげよう!

先日、この記事を読みました。
ASCII.jp:新料金プランに注目が集まる今、あえて3大キャリアのメインプランに残って低コストで利用する方法を考える
データ通信を安いMVNOにしつつ、段階的料金設定のメインプラン(auだとピタットプラン)は最安を維持する、というやり方です。
この4月からIIJmioに新しいプラン「ギガプラン」が出来ました。eSIMだとかなり安いです。


「ピタットプラン 5G」の1GB以下利用だと本体部分は税別2980円、4GB〜7GB利用で月額税別5980円、その差額は3000円。4GBまでの差額だと1500円。
一方、ギガプランならば8GBで税別1000円、20GBでも税別1500円。
明らかに「ピタットプラン1GB以下利用+ギガプラン」のほうが安くあがります。しかも15GBとか20GBとかにすればかなりゆとりも持てる。
さらにはIIJmio eSIMのMVNOdocomo回線なので、au回線よりもエリアが広い場合が多い*1
ということで、この記事の案に乗ることにしました。
なお(この記事の末尾にも書きましたが)eSIMを使ってデュアルSIMにすると5Gが使えなくなります。5Gを重視する方はご注意ください。

まずはSIMロック解除の申込

今回は即金で購入したので100日制限はかかりませんでした。
auサイトの脅し文に負けなければ大丈夫です。
申し込んだあと、すこし通信の挙動が変になる(設定変更の影響?)のですが、しばらく待つと大丈夫です。

IIJmioにギガプラン申込

これはギガプランのサイトから申し込んでいけば特に問題なし。作業が深夜だったため、開通は翌朝になりました。

iPhone 12 Pro Maxへの設定手順

ようやくこの記事の目的箇所にきましたw
なお、以下の作業は無線LANMacのある環境で行いました。
なおApple公式での設定など解説サイトはこちら:eSIM でデュアル SIM を活用する - Apple サポート

IIJmioからのアクティベーションコードをスキャン

開通連絡メールにアクティベーションコードへのリンクがあります。まずMacでそのサイトを開いて、サービスコードを選択すると、2次元バーコードが表示されます。
iPhone 12の「設定アプリ>モバイル通信>モバイル通信プランを追加」で出てくるカメラでその2次元バーコードをスキャンします。
f:id:riocampos:20210407200613j:plain:w300f:id:riocampos:20210407200610j:plain:w300
すると、しばらく通信した後に「モバイル通信プランを追加」の画面になります。
f:id:riocampos:20210407201308p:plain:w300
「モバイル通信プランの名称」「デフォルト回線」「iMessageとFaceTime」などはデフォルトのままで良いでしょう。
f:id:riocampos:20210407201625j:plain:w300f:id:riocampos:20210407201614p:plain:w300f:id:riocampos:20210407201619j:plain:w300
「モバイルデータ通信」は、もちろん副回線(IIJmio)に変更します。
f:id:riocampos:20210407201959p:plain:w300
これで完了です。プロファイルなどは自動で設定されるらしいです。
コントロールセンターを出すと「副回線 IIJ」「主回線 au」と表示されていますので、もうIIJmioにもつながっていることが分かります*2
f:id:riocampos:20210407202447p:plain:w300
なお「副回線 IIJ」の右横の「LTE」はIIJmioの接続状態です。4GじゃなくLTE表示なんですよね…。
また、今までのキャプチャ画面でも気付いた方も居るでしょうが、アンテナのピクト表示が「!!!!」みたいな感じになっています。どうやらこれが副回線と主回線とそれぞれの電波強度を二段表示しているようなのです。私はこのビックリマークのようなピクト表示を見て「設定に問題があるんだよ!」と怒られているのかと思いましたよw

テザリング設定

(ってか、ここを一番書きたかったんだけど、前置きが長い…w)
やはりテザリングは必要ですよねー、家のネットワークがトラブったときとかの検証や、無線LANのない出先でMacを使いたいときとか、いろいろと。
ってことでテザリング。こちらは若干の設定が必要でした。
まずは設定ページへ。
iPhoneの「設定アプリ>モバイル通信>副回線>モバイルデータ通信ネットワーク」を選択します。
f:id:riocampos:20210408003946j:plain:w300f:id:riocampos:20210408004051j:plain:w300f:id:riocampos:20210408004121j:plain:w300
このページの最上段の「モバイルデータ通信」及び最下段の項目「インターネット共有」にそれぞれ、APN欄に「iijmio.jp」、ユーザ名に「mio@iij」、パスワードには「iij」を入力します(パスワード部分は「・・・」表示になるのでスクリーンキャプチャできてないですね)。
f:id:riocampos:20210408004355j:plain:w300
すると「設定アプリ>モバイル通信」の最上段に、先程は消えていた「インターネット共有」つまりテザリングの項目が現れます。これでテザリングできるようになりました!
f:id:riocampos:20210408004620j:plain:w300

テザリング参考サイト

IIJmio公式のヘルプサイトはこちら。
eSIMはテザリングに対応していますか?

モバイルデータ通信APN・テザリングAPNの両方に下記を設定ください。

APN iijmio.jp
ユーザー名 mio@iij
パスワード iij

なお、次の記事(2019年時点)では「インターネット共有」の箇所への設定だけでもテザリングが可能になるとのことですが、この設定ではうまくいかないようです。「モバイルデータ通信」の箇所にも設定してください。
キャリア+格安SIMの合わせ技が簡単に! IIJmioの「eSIM」で通信費を節約しよう(2/2 ページ) - ITmedia Mobile

補足:IIJmioの設定確認アプリ

利用した通信量など確認できます。iPhoneアイコンでの名称は「みおぽん」になってます。入れておいたほうが便利だと思います。
スクリーンキャプチャ向けに「プレゼンテーションモード」の設定があるのが面白いです。
f:id:riocampos:20210408012136p:plain:w300f:id:riocampos:20210408012132p:plain:w300
IIJmioクーポンスイッチ https://apps.apple.com/jp/app/iijmio%E3%82%AF%E3%83%BC%E3%83%9D%E3%83%B3%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81/id629809928

補足2:eSIMを使ってデュアルSIMにすると5Gが使えなくなります

「設定アプリ>モバイル通信>主回線>音声通話とデータ」画面を確認すると、5Gオン・5Gオート共にグレーアウトして選択出来なくなっています*3。その下に「デュアルSIMモードのときは、5Gは使用できません。」との表記もあります。
f:id:riocampos:20210408014700p:plain:w300
IIJmioのギガプランサイトの「5G無料」のイラストの下にも小さく「eSIMは非対応です」とあります。
f:id:riocampos:20210408015414p:plain:w300
いつの日かeSIMなどデュアルSIMでも5Gが使えるようになるのかどうなのか、よく知りません。繰り返しますがご注意下さい。

追記:昨年10月の記事にも、デュアルSIMだと5Gが使えないと書いてありました。
iPhone 12 Proに楽天モバイルのeSIMを設定してみた 5G SIMの併用には注意点も(2/2 ページ) - ITmedia Mobile

追記2:Apple公式にも書いてました。

  • 5G およびデュアル SIM について

iPhone 12、iPhone 12 mini、iPhone 12 Pro、iPhone 12 Pro Max で両方の回線を実際に使っている場合、5G は利用できません。これらのモデルの iPhone で 5G を使うには、いずれかの電話回線をオフにし、デュアル SIM モードを無効にしてください。
eSIM でデュアル SIM を活用する - Apple サポート



2021/8/22未明追記:
かけめぐるさま、コメントありがとうございます。

iPhone 12 は iOS 14.5 へのアップデートで eSIM でも 5G 回線が使えるようになりました。

5G およびデュアル SIM について
iPhone 12、iPhone 12 mini、iPhone 12 Pro、iPhone 12 Pro Max でデュアルモードで 5G を使いたい場合は、必ず iOS 14.5 以降をインストールしてください。
eSIM でデュアル SIM を活用する - Apple サポート (日本)

が、残念ながら IIJmio のギガプラン側が eSIM の 5G に対応していないのです。つまり回線側問題。

IIJmio ギガプランが開始された時(今年5/25)に質問したところ


との返答でした。

また上にも書いてましたが、IIJmio のギガプランサイトの「5G無料」のところでは現状もまだ「※タイプD:SMS機能とeSIMは非対応です。」とあります。

繰り返しになりますが、IIJmio 側の回線設定が eSIM 5G に対応しない限りは使えない、との結論になります。なお、まだまだ 5G エリアは狭いので私自身の行動エリアではほぼ圏外です。なので 5G 対応されても使う予定は当分無いです。遠い未来には改善されるかもしれませんね。

*1:妻実家の屋内では、auだとほぼ圏外だがdocomoだとOK

*2:auは頭にスペースでも入ってるのか、IIJの表示とズレちゃうのが美しくない…

*3:iOS 14.5以降ではグレーアウトではなくなり「5Gオート」になりました

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

【緊急】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年度対応(2021/3/29追記)

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

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

ごあいさつ

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

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

NHKゴガクにて長らく独自配信を続けてきた語学番組のストリーミング配信がとうとう終わり、らじる★らじるの聴き逃しサービスに統合されました。なので gogakuondemand.rb は使えなくなりました 使えなくなったと思いましたが設定ファイル pref.rb の「school_year」を「2020」に変更したらダウンロード出来てることに4/6気付いた…*1(ただし現時点では「基礎英語0」だけはNHKゴガクに残ってますけど…どうなるんでしょうね 4/6時点では、2020年度もNHKゴガクでやるっぽい)。

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

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

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

のような設定ファイルがまだ作れてません。気長に開発してると年度始め第1週(というか昨年度最終週)のストリーミングが取得出来なくなっちゃうので、暫定版として公開しました。特に「レベルアップ 中国語」と「レベルアップ ハングル講座」は2019年度で終了してしまったのに、最終週だけらじる★らじる聴き逃しサービスでの公開なのよね(何を考えてんだ NHK、と思ってしまう)*2

脱線しました。で、設定ファイル方式のほうが便利だとは思うので、今月中には改善しようと思っています。 結局、設定ファイル方式の開発はやってませんm( )m 「設定ファイル方式ほしい!」ってひとはツイッター @riocampos でご連絡いただくか、この記事のコメント欄に書き込みくだされば開発するかと。

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

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

必要環境

  • Ruby 言語(現状だと Ruby 3系ではエラーになります。2系でご利用ください。 2021/10更新でRuby 3系対応)
  • OpenSSL または GnuTLS 対応の FFmpeg(2022/05更新版は FFmpeg バージョン 4.3 以降)

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

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

zip ファイルの中には radirudegogaku0.rb 一つだけ入っています。なにせ暫定版なので…。なので名前も radirudegogaku0.rb ですw

  • 2022/05更新版(最新:利用推奨。FFmpeg バージョン 4.3.x 以降対応)

www.dropbox.com

念の為古いバージョンへのリンクを残しておきます

  • 2021/10更新版(古い:FFmpeg バージョン 4.2.x 以前の方はこちらを継続利用してください)

www.dropbox.com

  • 一番古い大元のバージョン(古い)

www.dropbox.com

使い方

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

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

$ ruby radirudegogaku0.rb 0916_01

とします。今日の時点でこのスクリプトを実行すると

$ ruby radirudegogaku0.rb 0916_01
1 
 1【ラジオ英会話(0916_01)】のダウンロードを開始します。
ラジオ英会話~ハートでつかめ!英語の極意~「Lesson236」_2020_03_23.m4a
[##################################################] 903 / 903 秒完了
ラジオ英会話~ハートでつかめ!英語の極意~「Lesson237」_2020_03_24.m4a
[##################################################] 903 / 903 秒完了
ラジオ英会話~ハートでつかめ!英語の極意~「Lesson238」_2020_03_25.m4a
[##################################################] 903 / 903 秒完了
ラジオ英会話~ハートでつかめ!英語の極意~「Lesson239」_2020_03_26.m4a
[##################################################] 903 / 903 秒完了
ラジオ英会話~ハートでつかめ!英語の極意~「Lesson240」_2020_03_27.m4a
[##################################################] 903 / 903 秒完了

作業終了

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

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

$ ruby radirudegogaku0.rb 0916_01 4794_01
1 2 
 1【ラジオ英会話(0916_01)】のダウンロードを開始します。
更新はありません。
 2【遠山顕の英会話楽習(4794_01)】のダウンロードを開始します。
遠山顕の英会話楽習「3月Dialog7」_2020_03_23.m4a
[##################################################] 900 / 900 秒完了
遠山顕の英会話楽習「3月Dialog8」_2020_03_24.m4a
[##################################################] 900 / 900 秒完了
遠山顕の英会話楽習「3月Review7・8」_2020_03_25.m4a
[##################################################] 903 / 903 秒完了

作業終了

書き忘れていましたが、ダウンロードしたストリーミングファイルはスクリプトと同じフォルダに、それぞれの番組別に保存されます。

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 に変更できるようになりました。

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

各語学番組のID 2022年度分

2022年度からの新番組には[新]を付けておきました。

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

番組名 ID
中学生の基礎英語 レベル1 6806_01
中学生の基礎英語 レベル2 6807_01
中高生の基礎英語 in English 6808_01
ラジオ英会話 0916_01
ボキャブライダー 4121_01
エンジョイ・シンプル・イングリッシュ 3064_01
英会話タイムトライアル 2331_01
ニュースで学ぶ「現代英語」[新] 7512_01
ラジオビジネス英語 6809_01
まいにち中国語 0915_01
ステップアップ中国語 6581_01
まいにちハングル講座 0951_01
ステップアップ ハングル講座 6810_01
まいにちイタリア語 入門編 0946_01
まいにちイタリア語 応用編 4411_01
まいにちドイツ語 入門編 0943_01
まいにちドイツ語 応用編 4410_01
まいにちフランス語 入門編 0953_01
まいにちフランス語 応用編 4412_01
まいにちスペイン語 入門編 0948_01
まいにちスペイン語 中級編 4413_01
まいにちロシア語 入門編 0956_01
まいにちロシア語 応用編 4414_01
アラビア語講座 0937_01
ポルトガル語講座 入門 1893_01

各語学番組のID 2021年度分(2021/3/29追記)

2021年度からの新番組には[新]を付けておきました。

2021年度一杯で終了した番組には(終)を付けました。

番組名 ID
中学生の基礎英語 レベル1 [新] 6806_01
中学生の基礎英語 レベル2 [新] 6807_01
中高生の基礎英語 in English [新] 6808_01
ラジオ英会話 0916_01
ボキャブライダー 4121_01
エンジョイ・シンプル・イングリッシュ 3064_01
英会話タイムトライアル 2331_01
高校生からはじめる「現代英語」(終) 4407_01
遠山顕の英会話楽習 (終)
(10月まで)
4794_01
ラジオで!カムカムエヴリバディ [新] (終)
(11月から)
7137_01
ラジオビジネス英語 [新] 6809_01
ニュースで英語術 (終) 4812_01
まいにち中国語 0915_01
ステップアップ中国語 6581_01
まいにちハングル講座 0951_01
ステップアップ ハングル講座 6810_01
まいにちイタリア語 入門編 0946_01
まいにちイタリア語 応用編 4411_01
まいにちドイツ語 入門編(上半期)
まいにちドイツ語 初級編(下半期)
0943_01
まいにちドイツ語 応用編 4410_01
まいにちフランス語 入門編 0953_01
まいにちフランス語 応用編 4412_01
まいにちスペイン語 入門編(上半期)
まいにちスペイン語 初級編(下半期)
0948_01
まいにちスペイン語 応用編 4413_01
まいにちロシア語 入門編 0956_01
まいにちロシア語 応用編 4414_01
アラビア語講座 0937_01
ポルトガル語入門 (上半期) 1893_01
ポルトガル語ステップアップ(下半期) 2769_01

各語学番組のID 2020年度分

2020年度一杯で終了した番組には(終)を付けました。

番組名 ID
基礎英語1 (終) 0677_01
基礎英語2 (終) 0694_01
基礎英語3 (終) 0959_01
ラジオ英会話 0916_01
ボキャブライダー 4121_01
エンジョイ・シンプル・イングリッシュ 3064_01
英会話タイムトライアル 2331_01
高校生からはじめる「現代英語」 4407_01
遠山顕の英会話楽習 4794_01
入門ビジネス英語 (終) 0914_01
実践ビジネス英語 (終) 0917_01
世界へ発信!ニュースで英語術 4812_01
まいにち中国語 0915_01
おもてなしの中国語
(2020年度上期で終了)
4393_01
ステップアップ中国語 6581_01
レベルアップ 中国語
(2019年度で終了)
2334_01
まいにちハングル講座 0951_01
おもてなしのハングル (終) 4795_01
レベルアップ ハングル講座
(2019年度で終了)
2335_01
まいにちイタリア語 入門編 0946_01
まいにちイタリア語 応用編 4411_01
まいにちドイツ語 入門編 0943_01
まいにちドイツ語 応用編 4410_01
まいにちフランス語 入門編 0953_01
まいにちフランス語 応用編 4412_01
まいにちスペイン語 入門編 0948_01
まいにちスペイン語 中級編
(2019年度下半期は応用編でした)
4413_01
まいにちロシア語 入門編 0956_01
まいにちロシア語 応用編 4414_01
アラビア語講座 0937_01
ポルトガル語入門
(2020年度上期で終了)
1893_01
ポルトガル語 ステップアップ 2769_01

基礎英語0は…どうなるんでしょうね。とりあえずNHKゴガクでの公開が続くのであれば gogakuondemand.rb でダウンロードできます。残念ながら現在の gogakuondemand.rb そのままではダウンロード出来ませんでした。更新予定です。 現状「小学生の基礎英語」のダウンロードに興味が無いので更新しません。対策希望のかたが居られればご連絡ください。(2021/10/3更新)

ファイルフォーマット

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

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

mp3指定(2021/10更新版)

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

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

以下に例を挙げます。

$ ruby radirudegogaku0.rb --mp3 4812_01
1 
 1【ニュースで英語術(4812_01)】のダウンロードを開始します。
ニュースで英語術 ▽新幹線“のぞみ”にテレワーク車両_2021_10_01.mp3
[##################################################] 300 / 300 秒完了
ニュースで英語術 ▽米テスラ 人型ロボット開発へ(再)_2021_09_30.mp3
[##################################################] 300 / 300 秒完了
ニュースで英語術 ▽IPCC “地球温暖化は人間の責任”(再)_2021_09_29.mp3
[##################################################] 300 / 300 秒完了
ニュースで英語術 ▽電機メーカーも脱プラスチックの動き(再)_2021_09_28.mp3
[##################################################] 300 / 300 秒完了
ニュースで英語術 ▽障害者が遠隔操作ロボットで接客(再)_2021_09_27.mp3
[##################################################] 300 / 300 秒完了

作業終了

スクリプトソース

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

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

を貼ってください。

投げ銭

www.amazon.co.jp

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

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

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

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

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

Have Fun! And Let's Learning!

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

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

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

Watirを使う際にChromeDriverを自動的にインストールさせるrubygem webdrivers

自動化したいよね

ChromeDriver は Chrome のバージョンと合わせておく必要があり、合わないとエラーが出ます。しかし Chrome はしょっちゅう更新されていきますし、しかもタイミングによっては(なぜか)ChromeDriver のほうが先に更新されてしまって結果としてバージョンずれが生じてしまうこともあります。ChromeDriver を使いたいときは SeleniumWatir などで自動ブラウジングがしたいのであって、ChromeDriver のバージョンなどという些末な問題にとらわれて時間が取られるなんてイヤですよね。

(以前に ChromeDriver を手動で入れたときの記事:WatirでHeadless Chromeを使うまでのメモ - 別館 子子子子子子(ねこのここねこ)はてブロ部 つまり Homebrew で入れてました。)

Chrome に合った ChromeDriver を自動的にインストールさせる rubygem として chromedriver-helper gem があったのですが、2019年3月末で期限切れになり、別の gem である webdrivers gem が新しく提供されています。

webdrivers gem の紹介記事:サポートが終了したchromedriver-helperからwebdrivers gemに移行する手順 - Qiita

使い方

Watir 利用時の webdrivers gem の使い方ですが、Gemfile を使っている場合には

gem "webdrivers"
gem 'watir'

そしてスクリプト本体で

require 'webdrivers/chromedriver'
require 'watir'

と宣言しましょう。require 'webdrivers/chromedriver' なのは、この gem が ChromeDriver 以外もインストールできるためです。しかし他のドライバを入れる必要は無いので ChromeDriver に限定しておきましょう。

なお heroku で headless Chrome と共に使う場合には Heroku buildpack google chrome の手順を確認しましょう。

Watir関係記事

引用したいWebサイトのURLとタイトルをはてな記法にするbookmarkletを改善した

未だにはてな記法が好き

この別館では Markdown で書いてますが本館では未だはてな記法を使っている @riocampos です。だって十年以上はてな記法はてなダイアリー書いてきたんだし。 で、引用したいサイトのURLとタイトルを取るブックマークレット(旧版)

javascript:window.prompt('','['+%20location.href%20+':title='+%20document.title%20+']');void(0);

を使っておりました。

面倒なタイトルが時々ある

「面倒な」というのは、タイトルのなかに「|(パイプ)」が入っているサイト。はてな記法では「|」が表組みを意味するので、これが入っているとレイアウトが崩れてしまうのです。

いつも書いている「見にいきたい展覧会リスト」のサイトでは、基本的に表組みにリンクを入れているので「|」が入ると表が思いっきり崩れてしまうので、手動で直しておりました。

でもそれって馬鹿げてる。だって正規表現で見つけられるような問題をいちいち手で直してるんだし。なので改善したかったのだけど JavaScript が苦手なので手を付けられずにいました。

が、思い立って今日改善してみました。

ブックマークレットを改善

javascript:void(function(d,w){t=d.title;tr=t.replace(/[ ]*\|[ ]*/g,'%EF%BD%9C');w.prompt('','['+%20location.href%20+':title='+%20tr%20+']')})(document,window);

つまり「|(パイプ)」及びその前後の空白を「%EF%BD%9C(全角のパイプ|)」に置き換えています。

今後は安心

これでいちいち「|」を手動置換するよう気遣ったり、投稿した後にレイアウト崩れに気付いて修正し直したりするストレスから解放される、はずw