習作ダウンローダー1号のwiki
「試作ダウンローダー1号(仮)」を『習作ダウンローダー1号』に改めました。改版履歴習作ダウンローダー1号の掲示板習作ダウンローダー1号のTwitter●関連作習作ダウンローダー2号 : 公開停止「おう...
「試作ダウンローダー1号(仮)」を『習作ダウンローダー1号』に改めました。
習作ダウンローダー2号 : 公開停止「おうちで英語学習」から英文テキストを一括取得するツール。
試作ダウンローダー3号 : 高校講座用
NHKラジオ語学講座のネット配信をダウンロードするrubyスクリプトのページです。
習作ダウンローダー1号や、このwikiへのご意見ご感想は、掲示板にお願いします。
"Capture Stream", "NHK.hta"の作者様のwikiは、特に参考にさせていただきました。
その他"ffmpeg" 等のツールの関係者の皆様ありがとうございます。
"Capture Stream"の改造を手始めに、python, clojureへの書換を試みた後、新形式(json)にも対応が出来たので、公開してみました。
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 |
NHKdl.exe
md5: 38738db893fb4fbce15bc0b859403762
sha1: dfa30b2461363ab6472d916cb69198372199eb42
sha256: c111aa0e9d349ccd393bbdd7ba24a1bde1bb29b509cd56715c755dac17ed2212
※バグ修正は無いのでバージョンアップは必須ではありません
〇オプションの表現を変更しました。
allP, allD, Direct → -allp, -alld, -direct (小文字限定)
・-h, -help オプションを新設。オプションの一覧を表示します。
◎-genre オプションを新設しました。ジャンルの一覧を表示します。
一覧に出てきた単語は、-allp の検索語として使えます。
-allp のリストにジャンルの日本語表記は有りませんが、例えば
"language" ジャンルを "語学" で検索できます。
NHKdl.exe
md5: 525d518f62d4642ea368a4eb6fe71462
sha1: f43be4bf5d1c06928abfaf7be013f2be0a772e07
sha256: 7e80603993a43460254c65ae5c1ccfa29e55c217373ad4910f8ec7c8a2e62d1c
〇Digest オプションを新設しました。
単発の番組をコマンドラインから直接取得できます。
・Json の番組の検索対象に、番組 id を含めました。
全角半角変換も加えたのでより曖昧な検索ができます。
※バグ修正は無いのでバージョンアップは必須ではありません
NHKdl.exe
md5: 6623b4112b8e0a5f93f5c1bd02f3901b
sha1: 4c2d34e402adba63f5f57d118cca49805067fb74
sha256: bed9bd151cbaee1716c9d9ad42044c45bf2aeefd3a9453e251ddbe36eb18b248
〇json の id に 番組名を使えるようにしました。番組を一つに絞れる範囲で省略できます。
※バグ修正は無いのでバージョンアップは必須ではありません
NHKdl.exe
md5: dabc0d4b2303799252106decce367935
sha1: fe2e124110a7f7cacc58799dcce43b2d09384b87
sha256: 42065784f844e444452d3dcd157c79abc9504afc34d14eaf6c34532533eb4f27
・allP の結果をフィルタリングできるようにしました。
例 NHKdl.exe allP 語 まいにち
※バグ修正は無いのでバージョンアップは必須ではありません
今使用中の設定ファイルは、$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/ 関連の記述を削除
・その他の細かな修正
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は出来ません)。
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, 設定の説明を読んでカスタマイズしてください。
・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 で確認。
以下のリストは 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 の入手先を紹介されています。
・旧(xml)形式で、3月末~4月始めの年度の変わり目に、ファイル名の年の部分が間違う可能性があります。(次の週には戻ります)。2303xx版でも直せていませんが、ボキャブライダーの過去分はうまく繋がっています。なので、とりあえず現状維持とします。
・.exe版は、セキュリティソフトにトロイの木馬と判定されやすいです。作者自身も使っているので問題無いと思いますが、不安に思われる方は.rb版をお使いください。
241124追記
・NHKdl.(rb|exe) に複数の設定ファイルを与えた時、2個目以後の設定のダウンロードに失敗する事が多いです。
その場合、設定ファイルを1つにしてみてください。
・xml でボキャブライダーを落とす設定で [*0..4] とすれば5つ取得するはずが、4つしか取得できません。
その場合、[*0..5] (1増やす) にしてください。
以上2点、夏頃から気付いていましたが原因がつかめていません。
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 |
敬称略、順不同
○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 にして保存しています。
以前使っていたラジオの録音アプリは、設定した時間より早く録音が終わったり、予約時間に起動しなかったりしていたので、これに変えて良かった。
----------------------------------------
シェアボタン: このページをSNSに投稿するのに便利です。
「試作ダウンローダー1号(仮)」を『習作ダウンローダー1号』に改めました。改版履歴習作ダウンローダー1号の掲示板習作ダウンローダー1号のTwitter●関連作習作ダウンローダー2号 : 公開停止「おう...
旧版履歴が長くなってきたので専用のページを作りました。◎最新版 : 240906(+exe)版NHKdl.exe md5: 38738db893fb4fbce15bc...
習作ダウンローダー2号(旧 試作ダウンローダー2号)ご意見ご要望は、掲示板かTwitterにお願いします。習作ダウンローダー1号の掲示板習作ダウンローダー1号のTwitter●はじめに 機能しなくなっ...
NHK高校講座用 試作ダウンローダー3号のページ 高校講座のホームページで公開されている TV/Radio の 動画/音声をダウンロードして、ローカルで利用するための ruby script です。 ...
まいにちロシア語 in Wikipedia(ja)NHK出版試し読み s://www.nhk-book.co.jp/tachiyomi.html?id=000009147mmyyyyロシアゴスキー i...
まいにち中国語 in Wikipedia(ja)NHK出版試し読み s://www.nhk-book.co.jp/tachiyomi.html?id=000009101mmyyyy(ステップアップ|レ...
まいにちハングル講座 in Wikipedia(ja)NHK出版試し読み s://www.nhk-book.co.jp/tachiyomi.html?id=000009277mmyyyyおもてなしのハ...
習作ダウンローダー1号2号へのご意見ご感想ご要望等ございましたら、こちらへどうぞ。雑談も歓迎いたしますが、不適切とおもわれるコメントは削除させていただきます。...
まいにちスペイン語 in Wikipedia(ja)NHK出版試し読み s://www.nhk-book.co.jp/tachiyomi.html?id=000009145mmyyyy旅する(ための)...
まいにちイタリア語 in Wikipedia(ja)NHK出版試し読み s://www.nhk-book.co.jp/tachiyomi.html?id=000009159mmyyyy旅する(ための)...
まいにちドイツ語 in Wikipedia(ja)NHK出版試し読み s://www.nhk-book.co.jp/tachiyomi.html?id=000009109mmyyyy旅する(ための)?...
まいにちフランス語 in Wikipedia(ja)NHK出版試し読み s://www.nhk-book.co.jp/tachiyomi.html?id=000009113mmyyyy旅する(ための)...
Wikipedia(ja) よりアラビア語講座tv アラビーヤ・シャベリーヤtv テレビでアラビア語tv アラビア語会話 ポルトガル語入門ポルトガル語ステップアップ アジア語楽紀行...
カウンターサイト全体:今日:昨日:更新履歴最近のコメントその他 トップページ ここを編集する...
右メニューサンプル右メニューはヘッダーメニューの【編集】>【右メニューを編集する】をクリックすると編集できます。 ご自由に編集してください。 ここを編集する...
このwikiの「今わかっている欠陥」に2項目追記しました。
いずれも原因不明で放置状態です。
貴重な情報を頂き、ありがとうございます。
習作3号は、番組のデータを埋め込んではいませんが、
3月4月と言えば、改変の時期なので注意します。
3号に影響があるのか分かりませんが、高校講座のお知らせです。
2025年3月で公開終了となる番組(シリーズ)について
https://www.nhk.or.jp/kokokoza/info/68335.html
XML用の新しいオフセットのデータを書きました。
伊西仏独露中韓で変更が必要です。
英語関係に変更は有りません。
240906版で、聞き逃し番組の表示と絞り込みにジャンルを導入しました。
出力するまで時間がかなりかかるようになりました。(-_-;)
ジャンルのヒントをくださった名無しさん、ありがとうございました。
ジャンルのデータが判りました。
"https://www.nhk.or.jp/radio-api/app/v1/"の下に在る
"series/genres" がキーと名前の組
"web/ondemand/series?genre=#{キー}" がジャンル別の番組のデータ
いずれも Json です。
取り入れるかどうか、検討中です。
allP で見ているデータは
https://www.nhk.or.jp/radio-api/app/v1/web/ondemand/corners/new_arrivals
の物です。そこにあるのは、放送波、番組id、番組名、副題と
id、放送日、サムネの url です。
番組id や id はジャンル別に整理された値には見えません。
ジャンル別のデータが、どこにあるのか不明です。
らじる聴き逃しでは「語学」(language)などジャンルでフィルタがかけられるようですが、ジャンルの情報がjsonファイル内にないように思います。
ジャンルの情報から語学番組をフィルタすることもできるかな、と思いました。
jsonファイル内にジャンル情報があるようでしたら、どのキー情報になっているのかお分かりになりますか?
https://www.nhk.or.jp/radio/ondemand/index_genre.html?genre=language
240824版で、コマンドラインに番組名や番組 id の一部を指定して
直接ダウンロードできるようにしました。
NHKdl.(rb|exe) Direct レベル1 レベル2 "in E"
とする事で、基礎英語1,2,in English を落とせます。
なにか不具合や疑問があればこの掲示板で教えてください。
240813版の時にアイデアはありましたが、上手く実装出来ませんでした。
詳しい説明ありがとうございます。
番組名部分一致のキーワードでDL出来る機能と勘違いしました。
ちゃんと読まないとダメですね。失礼しました。