NHK番組情報を取得する | マーブルルール

NHK番組情報を取得する

Tips

スポンサーリンク

この記事で扱っていること

  • NHK番組情報を取得する方法

を紹介しています。

今回はWeb APIでNHKの番組の情報をLabVIEWで取得する方法を紹介していきます。

LabVIEWが強みを持つ処理というわけではないものの、こんなこともできるよ、という参考になればと思います。

スポンサーリンク

どんな結果になるか

フロントパネルには、番組情報を取得したい地域とサービスの種類、そして日付の情報を設定するための制御器を配置しています。

設定後にプログラムを実行すると、現在放送している番組とその前後の番組の情報を取得できます。

取得時にはJSON文字列となっているので、これをうまく「成形」することで見やすくなります。

プログラムの構造

このプログラムを実行するための前準備として、APIキーを取得する必要があります。

APIキー取得には、NHK番組表APIのページにログインします。

ここでは、まだアカウントを持っていない状態だとして、新規作成から始めていきます。

まずはNHK番組表APIと検索して、ポータルサイトにアクセスします。

ここで、「ユーザ登録がお済みでない方はこちら」から登録していきます。

登録に必要な情報、名前やメールアドレス、パスワードを入力すると、登録を完了させるためのメールが来るので指定された通りに登録完了操作を進めます。

ログイン状態にして、登録済みアプリを見ようとすると新規アプリ作成の画面に進むので、新規アプリの作成操作に進みます。

アプリの名前や説明を入力(ここではchannel_getという名前のアプリで、channel_get_by_labviewという説明にしています)して保存することでAPIキーが取得できるので、これをコピーします。

ここで取得したAPIキーを用いる前提として、プログラムとしてはHTTPクライアント系の関数を使用して、特定の形式のURLにGETメソッドを送るだけです。

現在の番組情報を取得する場合、https://api.nhk.or.jp/v2/pg/now/{area}/{service}.json?key={apikey}という形式のURLにする必要があります。

なお、二番目に使用しているConfigSSL関数でFalseを配線していますが、これによりエラー363507を回避しています(この関数をやみくもに使用することは推奨されていないようで他の回避策の方がいいかもしれませんが)。

JSONから非平坦化時には変換後のデータの形をクラスタで指定してやりますが、元のJSON文字列の形と対応していないとエラーが発生します。

かなり複雑ではありますが、以下の画像を参考にしてみてください。

また、areaやserviceはコンボボックスを使用しています。

「値一致項目」のチェックを外すことで、選択肢と実際の(文字列としての)値を分けて必要そうな項目を定義しておきます。

これら、それぞれのURLの形式や、area、serviceなどの選択肢については、NHK番組表APIポータルでそれぞれの選択肢を開いて確認しました。

その他のサービスを利用する場合

NHK番組表APIでは他にもやれることがあり、例えば番組リストを取得することもできます。

こちら、指定の方法は説明に書いてある通りにすればできるのでそこまで手こずる話ではないと思いますが、やはりJSON形式で取得した文字列をうまいこと成形するのに工夫が必要です。

リストの場合、取得できる番組情報数がまちまちなため、GETメソッドで取得したJSON文字列を丸ごと一度に成形するのには難があります。

そこで、番組情報数を数えてその分だけForループを回すようにしました。

こうすることで、配列形式で番組情報を取得することができます。

非平坦化する際のクラスタの形は以下を参考にしてみて下さい。

他には、ジャンルから番組を検索するものだったり、特定の番組について番組情報を取得することができるようですが、非平坦化時のクラスタの形はどれも似ています。

本記事ではNHK番組情報を取得する方法を紹介しました。

アプリケーションにこの番組情報を組み込む、という機会はそうそうないと思いますが、世の中にある色々なWeb APIとLabVIEWを連携させる例として参考になればうれしいです。

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました