らじるらじる聞き逃しサーチアプリ

動作の仕組みを解説します

外観は、

さて、最初にアクセスするところは、

です。edgeでgetすると、

こんな結果が得られます。中身はどうやらJSONですよね。今番組タイトル”ラジオ英会話”をサーチすると、そのエントリーは、

{"id":450,"title":"ラジオ英会話","radio_broadcast":"R2,FM","corner_name":"","onair_date":"2025年8月18日(月)放送","thumbnail_url":"https://www.nhk.jp/static/assets/images/radioseries/rs/PMMJ59J6N2/PMMJ59J6N2-eyecatch_cf3d6a99af0ef6d7629f18184c344102.jpg","series_site_id":"PMMJ59J6N2","corner_site_id":"01"},

になります。つぎのステップに必要な情報は、

“series_site_id”:“PMMJ59J6N2”,”corner_site_id”:“01”

この二つです。残りは、

へ続きます。スクリプトを再掲すると、

#!/bin/bash

DATE=`date '+%Y%m%d_%H%M'`
OUTDIR="/mnt/nas/english"


first=$(curl -s "https://www.nhk.or.jp/radio-api/app/v1/web/ondemand/series?site_id=PMMJ59J6N2&corner_site_id=01")
results=$(echo $first | jq '.episodes[].stream_url' | sed -n 5p)
title=$(echo $first | jq '.episodes[].program_title' | sed -n 5p)
temp="${results%\"}"
temp="${temp#\"}"
#echo ${results}
temp2="${title%\"}"
temp2="${temp2#\"}"
echo $temp2

ffmpeg -y -http_seekable 0 -i ${temp} -vn  -bsf aac_adtstoasc -acodec copy "${OUTDIR}/${temp2}.m4a"

curl -s “https://www.nhk.or.jp/radio-api/app/v1/web/ondemand/series?site_id=PMMJ59J6N2&corner_site_id=01

この部分だけ実行して、jqで整形すると、その冒頭は、

{
  "id": 42,
  "title": "ラジオ英会話",
  "radio_broadcast": "R2,FM",
  "schedule": "放送:(R2)月曜~金曜 午前6:45~7:00 再放送:(R2)月曜~金曜 午後0:25~0:40、午後7:15~7:30、午後9:30~9:45、日曜 午後4:30~5:45(月曜~金曜の再放送)、(NHK-FM)火曜~土曜(月曜~金曜深夜) 午前0:00~0:15",
  "corner_name": "",
  "thumbnail_url": "https://www.nhk.jp/static/assets/images/radioseries/rs/PMMJ59J6N2/PMMJ59J6N2-eyecatch_cf3d6a99af0ef6d7629f18184c344102.jpg",
  "series_description": "高校生から社会人までを対象とした英会話レッスン。日常生活で使う英会話が意識せずに口から出てくることを目指しま す。会話の土台である文法と語彙のイメージを身につけながら実用的な英会話力を養います。",
  "series_url": "https://www.nhk.jp/p/rs/PMMJ59J6N2/",
  "share_text_title": "ラジオ英会話",
  "share_text_url": "https://www.nhk.or.jp/radioondemand/share/42_450.html",
  "share_text_description": "#radiru",
  "episodes": [
    {
      "id": 4264862,
      "program_title": "ラジオ英会話 英語のお悩み解決! 夏スペシャル 2025",
      "onair_date": "8月11日(月)午後5:00放送",
      "closed_at": "2025年8月18日(月)午後5:30配信終了",
      "stream_url": "https://vod-stream.nhk.jp/radioondemand/r/PMMJ59J6N2/s/stream_PMMJ59J6N2_6153227a31c00a705559ab8f2bc625d7/index.m3u8",

episode[].program_title と episode[].stream_urlがほしい情報だと分かります。スクリプト側は、最新(=末尾)の項目を取り出すだけですが、アプリの方では、得られるstream_urlを列挙して、ユーザに再生を選択させるだけです。番組名が変われば、対応するstream_urlも変わります。

簡単にseries_site_idとcorner_site_idを調べるのは、らじる☆らじる聞き逃しのサイトへ行って、

対象番組にポインタ(マウス)を載せて(載せるだけ、クリックしてはだめ)画面左下を検分すれば分かります。

英会話タイムトライアルならば、series_side_id=8Z6XJ6J415,corner_site_id=01ということが簡単に分かります。これを使って、bashスクリプトの方を書き換えて…..。なんてことをやるくらいならば、サーチアプリの方で、”英会話タイムトライアル”をサーチしてください。英会話で検索しても大丈夫なはずです。

英会話 あるいは 英語会話 を含んだタイトルをサーチして、英会話タイムトライアルをダブルクリックした結果です。便利でしょ。

2025年8月21日(木) 午前11時20分 追記:

昨日まで動いたのに、今朝はエラーを吐きました。マイナーな修正をしたものを以下でダウンロードできます。お使いください。最新版の”ラジオ英会話”を取ってくるbash scriptは無修正で動きます。前段での支障でした。

“らじる☆らじる聞き逃しサーチアプリ” をダウンロード rajiru-search.zip 5.11 MB

コメント