JSON
jq
nhkapi

NHK番組表APIからJSONデータを取得してjqで編集する(データ取得編)

More than 1 year has passed since last update.

はじめに

  • NHK番組表APIを使えば番組のJSONデータの取得が可能。
  • NHKラジオ第二放送の語学番組(英語)を録音するために必要な情報(開始日時、番組時間、タイトル)を取得したい。
  • APIで取得したJSONデータをjqコマンドで編集したらわりと簡単に必要な情報が取得できた。

1. NHK番組表API

http://api-portal.nhk.or.jp/ja

2. 今回使用するAPI

Program List API (Ver.2)
http://api-portal.nhk.or.jp/doc_list-v1_con

いくつかAPIが用意されてますが結局編集が必要になるので一日分のデータを取得できる上記APIを使用します。
APIを使用するためには、ユーザ登録が必要です。
APIで何ができるのか確認してからユーザ登録したいという方は、「5. WEBページからJSONデータを取得する方法」の手順を実施して取得データを確認してください。

3. jq インストール

jqのインストールは、以下から実施し、パスを通しておいて下さい。
https://stedolan.github.io/jq/

4. APIを使用してJSONデータを取得するシェル


get_sample_json.sh

#!/bin/sh

# 取得する番組表年月日を取得(スクリプト実行日)
date_s=$(date "+%Y-%m-%d")

# サービスID NHKラジオ第二放送
service="r2"

# ユーザ登録で払いだされるIDを指定
myid="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

url=http://api.nhk.or.jp/v2/pg/list/130/${service}/${date_s}.json?key=${myid}

# 取得したJSONデータをファイルに保存する。
curl ${url} | jq '.' > ./sample.json

上記、スクリプトでNHKラジオ第二放送一日分のJSONデータが取得できます。

5. WEBページからJSONデータを取得する方法

まず、どんな情報が取得できるのか確認してからユーザ登録したいという方は、APIページで出力されたJSONデータをファイルに保存することで「4. APIを使用してJSONデータを取得するシェル」と同様のデータを取得することができます。

select.png
パラメータ(area,service,date)を指定して「指定したパラメータで試してみる」をクリックすると下図のJSONデータが取得できます。

program.png

ユーザ登録せずに後編 NHK番組表APIからJSONデータを取得してjqで編集する(データ編集編) のスクリプトを試す場合は、Response Exampleに表示されたJSONデータすべてをコピーしてファイル(sample.json)に保存してください。行番号は削除してください。

今回はここまでで、後編NHK番組表APIからJSONデータを取得してjqで編集する(データ編集編) に続きます。