2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-11-03

はじめに

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

1. NHK番組表API

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で編集する(データ編集編) に続きます。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?