LoginSignup
3
1

More than 3 years have passed since last update.

NHK番組表APIの使い方

Last updated at Posted at 2019-12-18

はじめに

ちょっとマイナーなAPIを使ってみたい...ということで、NHKの番組表APIを利用した時のメモ書きをまとめてみました。
登録があれこれ面倒ではないかと心配したのですが、意外と簡単に登録→利用まで進めることができました。

ユーザーの登録

  1. NHK番組表APIのページにアクセスします。 image.png
  2. [ユーザー登録がお済でない方はこちら]をクリックして、ユーザー登録画面に入ります。
  3. [アカウントの作成]タブを選択して、以下の事項を記入して[アカウントの作成]をクリックします。
    • ユーザー名
    • メールアドレス:このアドレス宛に登録確認のメールが送信されます。
    • 利用規約に同意します:チェックを忘れずに... image.png
  4. 上記のメールアドレスに5分程度で仮登録完了のメールが届きます。
    • 確認のメールが届くまで少しタイムラグがあるので、メールアドレスの指定を間違えたかと思ったほどです。
  5. メールに記載されたURLに遷移して、パスワードを変更(設定)すれば登録完了となります。

アプリの登録

以下の手順は、NHK番組表APIのページにログインしていることが前提となります。

  1. NHK番組表APIのページにアクセスして、[登録済みアプリはこちら]をクリックします。
  2. [My Apps]タブを選択して、[新規アプリ登録]をクリックします。
  3. 以下の事項を記入して、[Create App]をクリックしてアプリを登録します。
    • App Name:アプリ名を記入します。
    • アプリのURL:任意入力項目です。
    • プロダクト:デフォルト値の[NHK Program Guide API]しか選べません...

APIキーの取得

以下の手順は、NHK番組表APIのページにログインしていることが前提となります。

  1. NHK番組表APIのページにアクセスして、[登録済みアプリはこちら]をクリックします。
  2. [My Apps]タブを選択して、先程に登録したアプリ名をクリックします。
  3. 遷移した先のページで、[キー]タブを選択するとAPIキーを取得できます。

APIの利用例

  • curlコマンドで「現在提供している番組」のJSONファイルを取得して、その結果をjqコマンドで解析して表示しています。
    • curlコマンドとjqコマンドについては、こちらの記事もご覧ください。
  • JSON中の文字列はダブルクォートで囲まれているため、sedコマンドを使って不要なダブルクォートを除去しています。
nhk_api.sh
#!/bin/bashjson=$(curl -s http://api.nhk.or.jp/v2/pg/now/130/g1.json?key={あなたのAPIキー})echo '[現在放送中の番組]'
echo 'チャンネル:'$(echo ${json} | jq '.nowonair_list.g1.present.service.name' | sed 's/\"//g')
echo '番組名:'$(echo ${json} | jq '.nowonair_list.g1.present.title' | sed 's/\"//g')
echo 'サブタイトル:'$(echo ${json} | jq '.nowonair_list.g1.present.subtitle' | sed 's/\"//g')
出力結果
[現在放送中の番組]
チャンネル:NHK総合1
番組名:ニュースウオッチ9▽かんぽ生命 不適切販売1万2800件余 その実態は…
サブタイトル:▽通知表が年明けに?全国53自治体でシステム障害▽ジャパンライフ債権者集会 首相に説明求める声明▽ガンダム・富野監督 若者へのメッセージ▽羽生・紀平 全日本へ

注意点

  • 画面上では複数の「アプリ」を登録できそうな雰囲気ですが、「アプリ」は「APIキー」と不可分な存在となっています。
  • そのため、「アプリ」を既に登録した状態で[新規アプリ登録]をクリックすると、以下のようにエラーとなってしまいます。

image.png

3
1
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
3
1