WEBEER – Web制作の覚えがき –

【PHP】TMDbのAPIで映画の情報を取得する

PHP
PHP 更新日:2020.09.03 公開日:2020.09.03

やりたいこと

TMDbから映画の日本語のあらすじを取得したい。

手順1:TMDbに登録する

TMDbのAPIを使うには会員登録する必要があります。右上の「TMDbに参加する」から会員登録をしてください。

TMDb

手順2:APIキーを取得する

会員登録が終わったらAPIを取得します。右上のメニューから「設定」を選びます。

サイドのメニューから「API」を選びます。

APIキーを要求する」のリンクをクリックします。

Developer」を選択します。

全ての項目を入力して「送信ボタン」を押します。全て英語で入力する必要があります。

登録が完了すると、APIキーが表示されます。この後使いますのでコピーしておいてください。

手順3:Try it outでテストする

TMDbのAPIは全てWeb上でテストができるんですよね。クエリもコピーできるのですごく楽なんです。

Documentationを開いてサイドニューから取得したい情報のページを開きます。

今回は映画のあらすじを参照したいので、「SEARCH」の「Get Search Movies」を開きます。

右のメインカラムの「Try it out」のタブを選択します。ここがテストできる画面になります。

api_key:手順2で取得したAPIキー
language:日本語の場合は「ja-JA」、「ja」だけでも可
query:映画のタイトル

「SEND REQUEST」のボタンの右の赤枠のところにクエリが表示されるので、このクエリをコピーしてPHPで送信すると映画の情報を取得することができます。

手順4:PHPを書く

手順3で作ったURLをPHPで送信してデータを取得します。

//TMDbのAPIキー
$apikey = "***";

//作品タイトル
$title = urlencode( 'ハリー・ポッター' );

//言語
$lang = 'ja-JA';

//映画情報を取得
$url = 'https://api.themoviedb.org/3/search/movie?api_key=' . $apikey . '&language=' . $lang . '&query=' . $title . '&page=1&include_adult=false';

$content = file_get_contents($url);
$data = json_decode($content, true);

foreach ($data['results'] as $value) {
  echo $value['title'].'<br>';
  echo $value['overview'].'<br><br>';
}

実行結果

あらすじが取得できました!

解説

何をしているかというと、返ってきたファイルをjsonの形式に直して、それをループしているだけです。

$title = urlencode( 'ハリー・ポッター' );

映画名を指定。念のためURLエンコードしています。

$content = file_get_contents($url);

file_get_contentsというのは「ファイルを文字列にする」みたいな関数。

返ってきたファイルを文字列として$contentに格納しています。

$data = json_decode($content, true)

json_decodeでjsonの形式に直してやると、jsonとして扱えるようになります。

詳細はresultsの中に入っているので、ループして表示しているだけ。

これで映画のあらすじを取得して表示することができるようになりました。