習作ダウンローダー1号のwiki

ページ名:習作ダウンローダー1号のwiki

「試作ダウンローダー1号(仮)」を『習作ダウンローダー1号』に改めました。

改版履歴

習作ダウンローダー1号の掲示板

習作ダウンローダー1号のTwitter

●関連作

習作ダウンローダー2号 : 公開停止「おうちで英語学習」から英文テキストを一括取得するツール。

試作ダウンローダー3号 : 高校講座用

●はじめに

NHKラジオ語学講座のネット配信をダウンロードするrubyスクリプトのページです。

習作ダウンローダー1号や、このwikiへのご意見ご感想は、掲示板にお願いします。

○謝意

"Capture Stream", "NHK.hta"の作者様のwikiは、特に参考にさせていただきました。

その他"ffmpeg" 等のツールの関係者の皆様ありがとうございます。

○来歴

"Capture Stream"の改造を手始めに、python, clojureへの書換を試みた後、新形式(json)にも対応が出来たので、公開してみました。

☆設定変更情報 241007現在

XML でご利用の方は、番組が替わる 4月, 7月, 10月, 1月 には offset の変更が必要です。
下記の値に設定を修正してください。☆241007変更分

  イタリア語 スペイン語 フランス語 ドイツ語 ロシア語 中国語

ハングル

入門 / 初級 ☆700 ☆500 ☆600 ☆600 ☆700 ☆700 ☆240

応用 / 中級 /
ステップアップ

☆300 ☆700 ☆400 ☆100 ☆200 ☆200 ☆560
基礎英語0 基礎英語1

基礎英語2

基礎英語inE ボキャブライダー
700 520 835 560 0
R英会話 Rビジネス エンジョイ 英会話TT  
855 360 201 582  

 

◎最新版 : 240906(+exe)版

NHKdl.exe
   md5: 38738db893fb4fbce15bc0b859403762
  sha1: dfa30b2461363ab6472d916cb69198372199eb42
sha256: c111aa0e9d349ccd393bbdd7ba24a1bde1bb29b509cd56715c755dac17ed2212

 ※バグ修正は無いのでバージョンアップは必須ではありません

 〇オプションの表現を変更しました。
allP, allD, Direct → -allp, -alld, -direct (小文字限定)
 ・-h, -help オプションを新設。オプションの一覧を表示します。

 ◎-genre オプションを新設しました。ジャンルの一覧を表示します。
一覧に出てきた単語は、-allp の検索語として使えます。
-allp のリストにジャンルの日本語表記は有りませんが、例えば
"language" ジャンルを "語学" で検索できます。

〇新版 : 240824(+exe)版

NHKdl.exe
   md5: 525d518f62d4642ea368a4eb6fe71462
  sha1: f43be4bf5d1c06928abfaf7be013f2be0a772e07
sha256: 7e80603993a43460254c65ae5c1ccfa29e55c217373ad4910f8ec7c8a2e62d1c

 〇Digest オプションを新設しました。
単発の番組をコマンドラインから直接取得できます。

 ・Json の番組の検索対象に、番組 id を含めました。
全角半角変換も加えたのでより曖昧な検索ができます。

 ※バグ修正は無いのでバージョンアップは必須ではありません

〇新版 : 240820(+exe)版

NHKdl.exe
   md5: 6623b4112b8e0a5f93f5c1bd02f3901b
  sha1: 4c2d34e402adba63f5f57d118cca49805067fb74
sha256: bed9bd151cbaee1716c9d9ad42044c45bf2aeefd3a9453e251ddbe36eb18b248

 〇json の id に 番組名を使えるようにしました。番組を一つに絞れる範囲で省略できます。

 ※バグ修正は無いのでバージョンアップは必須ではありません

〇新版 : 240813(+exe)版

NHKdl.exe
   md5: dabc0d4b2303799252106decce367935
  sha1: fe2e124110a7f7cacc58799dcce43b2d09384b87
sha256: 42065784f844e444452d3dcd157c79abc9504afc34d14eaf6c34532533eb4f27

 ・allP の結果をフィルタリングできるようにしました。
例 NHKdl.exe allP 語 まいにち

 ※バグ修正は無いのでバージョンアップは必須ではありません

〇旧版 : 240809(+exe)版

今使用中の設定ファイルは、$subtitle 以外はそのまま使えます。

NHKdl.exe
   md5: f6aa4f0576c41dd262916245eb00ccf1
  sha1: bab30b719ea72ed7558084fc7e8fa26cfddbc6c1
sha256: 43bab7d34d6ebff40fda1fcd5a472bfd54a533c666b9d638ea2624f501f88f44

 〇$subtitle を廃止。
 〇NHKrename.rb 内の f_tsOnlyMon() を廃止。
 ・allP, allD オプションを新設。
以上3項目の詳細はドキュメントの「新機能 2408より」を見て下さい
 ◎jsonの10桁の番組idに対応
 ・ffmpeg の -absf を -bsf:a に変更(ffmpeg 7.0x対応)
 ・ダウンロード失敗のメッセージと既存のファイルがあったためにスキップした
ファイルの一覧を最後にまとめて出すようにしました。
 ・/radioondemand/ 関連の記述を削除
 ・その他の細かな修正

〇旧版 : 240409(+exe)版

NHKdl.exe
   md5: f6aa4f0576c41dd262916245eb00ccf1
  sha1: bab30b719ea72ed7558084fc7e8fa26cfddbc6c1
sha256: 43bab7d34d6ebff40fda1fcd5a472bfd54a533c666b9d638ea2624f501f88f44

 〇おうちで英語学習関連を削除しました。
 ・一つの科目を複数のディレクトリに分ける設定をした時、その数だけ同じ .json
 にアクセスするのでキャッシュするようにしました。
 ・エンジョイ、タイムトライアル、ニュースで科目名の後に日付が付かない場合が
 あったので、NHKrename() を修正しました。
 ・xml では曜日指定ができないので、曜日指定を [] に置き換えます
 ・xml のオフセットの値を24年度分に修正
 ・設定見本を json と xml に分けました。
 ・その他の細かな修正

◎旧版 : 240406(+exe)版

設定部分に間違いが多かったため、公開を停止します。

 ☆4月1週の為に暫定リリース。不具合情報を歓迎します。
 ○240404 伊西仏独露の応用編で ../radioondemand/../*.json に4月分が
 入っていないことを確認。
  番組コード4410-4414を0943-0956に変換し警告します。
 ○json の DL 範囲指定を曜日で出来る様にしました。詳細は NHKrb.rb, config_0.rb
 ○NHKrename.rb 内の NHKrename 関数に引数を追加しました。
  以前の NHKrename は使えなくなります。
  NHKrename(kz, ti, ti2, no, dt, ts) だったのを
  NHKrename(kz, ti, ti2, no, dt, _, ts) にすれば、とりあえず動くと思われます。
 ・$subDisp を削除。NHKゴガク|らじるらじるを見ればサブタイトルが判るから。

〇旧版 : 240401(+exe)版

NHKdl.exe
   md5: b6a63f5d760d732c22b31305d834d7f3
  sha1: 12e20154b3e04e561829d80e253cf7676b20e234
sha256: f886e2f5b543d01272091c12700f48806ad86a73fdd9803cda22a1070d4c2f3a

 ○NHK側の'24年度の仕様変更に追従
 ・.json の取得元を /radioondemand/ から /radio-api/ (らじるらじる仕様)に変更。
  $jsn0 の変更で /radioondemand/ (NHKゴガク仕様)に戻せます。
 ・xml, おうちで英語学習の部分はまだ残していますが、おそらく機能しません。
  機能しなくなれば、削除していきます。
 ○json の解釈を 標準添付ライブラリで書き換え
 ・getNet() を uri + net/http に書き換え
 ○関数 Kinsoku, ZenHan を String のメソッドに書き換え。
 ○設定ファイルは、ほぼ継続して使用可能です。
 ・その他の細かな修正

〇旧版 : 230626版 / 230626+exe版HKdl.exe

   md5 : 47665fabaa04756a1d7f1fc28f6cba09
  sha1 : 44e9544afded5b27f820ac414a8c64d9dfdcb998
sha256 : bdeaed6228bfd8a0a946a1faa3c3d4fab8005969d0042eb6087f21efdf102993

☆今までの設定はそのままで、らじるらじるの対応番組を増やすため
 例 "F311_06" 牧野富太郎「ススキ談義」 221010放送 240331配信終了
 1)jsonの科目(番組)コードを4文字→7文字に また、1文字目に [A-Z] を許す
 2)$jsn0 の "_01.json" → ".json" に
 3)科目(番組)コードが4文字なら "‗01" を足す
 4)$jsn0 に "_01" が在れば 削除
▷バグ修正は無いので、現状維持でいい方のアップデートは不要です。
▷アップデートする方は、今までの設定をそのまま使えます。

これ以前の版については、改版履歴をご覧ください(旧版のDLは出来ません)。

○使い方(windows)

1) フォルダを一つ用意し NHKdl*.zip を解凍(展開)する。ruby の用意の無い方は、*exe*.zip を更に解凍する。
パスワードを要求されるので「NHKdl」の5文字を入力する。

2) ffmpeg を入手する。公式サイトからは 64bit版しか得られませんが、ググれば 32bit版 を配布している所が在ります。
dynamic link版 と static link版 が在るので後者を選び、入手した ffmpeg のアーカイブから bin/ffmpeg.exe を解凍(他は不要)して 1)  と同じフォルダに保存。

3) config_0.rb をエディタで開いて編集する。
3-1)
$download = true
$ffmpeg = "ffmpeg.exe"
となっているか確認。

3-2)
$lstKouza = [
...略...
  # 中学生の基礎英語L1
  [:-, "6806", "english/basic1",     [3, 280], [*0..4], "基礎英語1"],
...略...
]

の中から欲しい科目(番組)を選んで行頭の :- を :Y に書き換える。

3-3)文字コード utf-8 で保存

4)実行
cmd.exe 又は command.com を開いて以下の3行を入力。

1で作ったフォルダの在るドライブ名:
cd 1で作ったフォルダ名
dir

NHKdl*.* や ffmpeg.exe の名前が出てくれば、次の1行を入力します。

NHKdl.exe config_0.rb

これでダウンロードが始まるはずです。
後は、*.txt, 設定の説明を読んでカスタマイズしてください。
 

○特徴 230530版より

・Windowsで作っていますが、rubyとffmpegが有ればosを問わず実行できる(はず)。ffmpeg は各自で入手してください。
Windows用には ruby 3.2.2 32bit + Ocra で生成した exe版があるので、rubyのインストールは必須ではありません。

・ffmpeg のバージョンチェックをして、必要なら "-http_seekable 0" を加えます。ffmpeg 4.x / 5.x / 6.0 で確認。チェック方法は、"ffmpeg -http_seekable 0" を実行して、 "Unrecognizable option" の有無で判断します。

・ffmpeg のエラーをチェックしてリトライします。

・GUI無し。また、jsonやxmlのライブラリは使わず、stringとregexpで作っています。
次版(時期未定)から json については ruby の標準ライブラリを使用します。

・保存ファイル名にサブタイトルを追加出来る科目が在ります。設定部分の説明を見て下さい。

・エラー検知が弱いので、取得に失敗していても成功した様に見えるかもしれません。

●対応する講座/番組

1) json=らじる☆らじる聴き逃し 形式
放送直後から1週間(同じ曜日まで?)取得可能
語学以外のらじる☆らじるの聴き逃し(一部を除く)も取得可能
230626版から id の1文字目が英字、枝番が 01 以外の番組に対応しました。

2) xml=Android の NHK語学アプリ 形式
毎週月曜に前週放送分が取得できるようになります。
ボキャブライダーでは初回まで取得できます。短い番組とはいえ、全部で7年1600本以上になるので実行は慎重に。
取得できない番組 : ニュースで現代英語、アラビア語、ポルトガル語(NHK側に xml が無いため)

 

科目(番組)数に制限はありません。1つの設定ファイルに複数の形式の混在が可能です。
設定ファイルを複数用意して、曜日やジャンルで使い分ける事もできます。

○発見

・同じ講座を取得(同じエンコード設定 -c:a copy)しても、新旧形式/再配信で得られたファイルのサイズ/チェックサムは、違う場合がある。

・同じ番組を違うバージョンの ffmpeg でダウンロードしても同じファイルになるとは限らない。
6.10 と 7.02 で確認。

●Windows用 ffmpeg の入手先

以下のリストは google の検索結果からピックアップしただけの物です。
サイトや成果物の品質を保証する物ではありません。

 ・公式 64bitのみ
 https://ffmpeg.org/download.html#build-windows
▽以下 32bit版 を入手できる所 (230817現在)
 ・3.2 ~ 4.2.1
 https://ffbinaries.com/downloads
 ・4.3.1 or 20200828 32/64bit
 https://web.archive.org/web/20200912071021/https://ffmpeg.zeranoe.com/builds/
 ・6.0
 https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/releases

▽CaptureStream2 語学講座CS2 様が Windows 32bit Ver.4.4 / 5.1 / 6.0 の入手先を紹介されています。

 ffmpeg最新版入手サイト

●公開中の版

★今わかっている欠陥★

・旧(xml)形式で、3月末~4月始めの年度の変わり目に、ファイル名の年の部分が間違う可能性があります。(次の週には戻ります)。2303xx版でも直せていませんが、ボキャブライダーの過去分はうまく繋がっています。なので、とりあえず現状維持とします。

・.exe版は、セキュリティソフトにトロイの木馬と判定されやすいです。作者自身も使っているので問題無いと思いますが、不安に思われる方は.rb版をお使いください。

241124追記

・NHKdl.(rb|exe) に複数の設定ファイルを与えた時、2個目以後の設定のダウンロードに失敗する事が多いです。
その場合、設定ファイルを1つにしてみてください。

・xml でボキャブライダーを落とす設定で [*0..4] とすれば5つ取得するはずが、4つしか取得できません。
その場合、[*0..5] (1増やす) にしてください。

以上2点、夏頃から気付いていましたが原因がつかめていません。

☆設定変更情報 240708現在

XML でご利用の方は、番組が替わる半期、四半期には offset の変更が必要です。
下記の値に設定を修正してください。

  イタリア語 スペイン語 フランス語 ドイツ語 ロシア語 中国語

ハングル

入門 / 初級 800 400 700 700 800 500 360

応用 / 中級 /
ステップアップ

100 550 270 950 0 100 460
基礎英語0 基礎英語1

基礎英語2

基礎英語inE ニュース
700 520 835 560 -
R英会話 Rビジネス エンジョイ 英会話TT ボキャブライダー
855 360 201 582 0

 

●先達のソフトウェア

 

敬称略、順不同

NHK.hta

CaptureStream CS-English/CS-Mult : 類似アプリのページで紹介していただいています

gogakuondemand.rb / radirudegogaku.rb : 別館 子子子子子子(ねこのここねこ)はてブロ部

ikakunsan/radio-gogaku-downloader : on Python

rfriend2 : 汎用ラジオ配信視聴録音ツール

語学ドロイド

ラジリンガル

●試作ダウンローダー1号の記事のある所

NHK テレビ・ラジオ 英語講座 総合案内所 PART19 at lavender.5ch.net

NHK テレビ・ラジオ 英語講座 総合案内所 PART18 at lavender.5ch.net

NHK テレビ・ラジオ 英語講座 総合案内所 PART17 at lavender.5ch.net

NHK テレビ・ラジオ 英語講座 総合案内所 PART19 at talk.jp

●同種ツールを自作する記事

Pythonを使ってNHKラジオをダウンロードしよう②-ダウンロード編-

NHKラジオ語学講座のストリーミングデータをMP3形式で自動ダウンロードする : on Python

NHKらじるらじる聞き逃し高速録音フリーソフトの製作 Windows用

android用アプリ

○みんなのラジ

ラジオ放送(のネット配信)を予約録音できる。放送大学のラジオ講座をこれで保存して、mp3DirectCut で前後の不要部分をカットして、FFmpeg Media Encoder で m4a にして保存しています。

以前使っていたラジオの録音アプリは、設定した時間より早く録音が終わったり、予約時間に起動しなかったりしていたので、これに変えて良かった。

----------------------------------------

習作ダウンローダー1号の掲示板

習作ダウンローダー1号のTwitter

シェアボタン: このページをSNSに投稿するのに便利です。


最近更新されたページ

習作ダウンローダー1号のwiki

「試作ダウンローダー1号(仮)」を『習作ダウンローダー1号』に改めました。改版履歴習作ダウンローダー1号の掲示板習作ダウンローダー1号のTwitter●関連作習作ダウンローダー2号 : 公開停止「おう...

改版履歴

旧版履歴が長くなってきたので専用のページを作りました。◎最新版 : 240906(+exe)版NHKdl.exe   md5: 38738db893fb4fbce15bc...

習作ダウンローダー2号

習作ダウンローダー2号(旧 試作ダウンローダー2号)ご意見ご要望は、掲示板かTwitterにお願いします。習作ダウンローダー1号の掲示板習作ダウンローダー1号のTwitter●はじめに 機能しなくなっ...

その他の言語

Wikipedia(ja) よりアラビア語講座tv アラビーヤ・シャベリーヤtv テレビでアラビア語tv アラビア語会話 ポルトガル語入門ポルトガル語ステップアップ アジア語楽紀行...

左メニュー

カウンターサイト全体:今日:昨日:更新履歴最近のコメントその他 トップページ ここを編集する...

右メニュー

右メニューサンプル右メニューはヘッダーメニューの【編集】>【右メニューを編集する】をクリックすると編集できます。 ご自由に編集してください。 ここを編集する...