映画のデータベース

過去に読んだ本のデータベースを作ったあと、映画のデータベースも作ろうかなと思ったのですが、いろいろ考えると面倒だったので二の足を踏んでいました。

面倒な理由

元データが2カ所に分かれていて、1つはテキストベタ打ちのhtml でもう1つがWordPressのデータベース内(SQL)です。
WordPressのほうはカテゴリーで絞り込みもできますが、テキストベタ打ちは・・・って感じで。

それでも一歩踏み出した

AIの力でなんとかならんかと、やってみました。

テキストベタ打ち編

Notionに渡す前の事前準備

1、2はNotionの中に住んでいる ChatGPT-4.1 に聞いてやりました。

  1. 元データ(大量のテキストデータ)からhtmlタグを削除
  2. Shift_JIS(Notion取り込み時文字化け)からUTF-8 へ変換
  3. Zip形式で圧縮(ファイル数が多すぎてNotionで取り込めず)

Notionにて

  1. ZipをNotionにインポート
  2. 新規データベースを作成して、インポートしたファイルを登録(D&D)
  3. 各ファイルから鑑賞した映画のタイトルを取得
    • 「鑑賞した映画」というプロパティを作成し、カスタム自動入力(Notion AI)をセット

WordPress編

Notionに渡す前の事前準備 2

1、2はNotionの中に住んでいる ChatGPT-4.1 に聞いてやりました。

  1. SQL DBから、映画の感想カテゴリーに属するデータをクエリで抽出し、Excelデータに
  2. 抽出したデータから、「タイトル」、「AmazonのURL」、「サムネイル画像のURL」を抽出
    • WordPressでは、その3点を必ず入れていました
  3. CSV形式で保存

Notionにて 2

  1. CSVファイルをNotionにインポート

構築していく

どこの段階か忘れましたが、テキストとWordPressのデータは合体して1つのデータベースにしました。

テキストから持ってきたものはタイトルだけが入っていて、WordPress側はタイトル、AmazonURL、サムネイル画像URLが入っています。
私がデータベースに入れたい項目はこんな感じ。

  • タイトル
  • 原題
  • Amazon URL
  • サムネイル画像URL
  • 監督
  • 主要キャスト
  • 制作年
  • カテゴリー
  • あらすじ

いろいろと足りていませんが、それぞれ調べて手で打ち込むのはしんどい。
Notion AIも外側にある情報はうまく引っ張ってこないし。

API編

🔗 IMDBとかからデータを引っ張ってこれないかと調べていたらやり方を見付けました。
ざっくり書くと、🔗 GAS + 🔗 TMDB(API)です。

TMDBでAPI利用の準備(無料)

IMDBでも良かったのですが、TMDBのほうが無料で扱える範囲が広いみたいで。

  1. アカウント登録
  2. API利用申請
    • 申請してからメールが返ってくるのに10分くらいかかったかも。 こういうのってすぐ返ってくるイメージだったので、登録ミスったかと思いました。
  3. API用のコード取得

Notionからデータを取り出す

いったん作ったデータベースをエクスポートします。

  1. CSV形式にエクスポート

Google DriveでGAS

3のGASはNotionの中に住んでいる ChatGPT-4.1 に聞いて書いてもらいました。

  1. CSVをアップロード
  2. スプレッドシート形式に変換して開く
  3. GASに必要項目をTMDBから引っ張ってくるコードを入力(APIコードもね)
  4. コードを保存して実行(セキュリティも承認で)
  5. しばらく待つとスプレッドシートが完成
  6. CSV形式でダウンロード

Notionにて 3

  1. CSVファイルをインポート

あとはお好みで

Notionの中で、細かい微調整や、表示の仕方なんかをやっていけばオッケーです。

完成

1,300件ほどのデータベースができあがりました。

ギャラリー表示
ギャラリー表示

テーブル表示表示
テーブル表示

端折ったけど

やっぱり工数はかかる

なお、映画のタイトルだけでTMDBから引っ張ってくると、けっこうな手直しが必要となります。
こちらが日本語タイトルでも、TMDBでは英語だったり、同名タイトルがあったりなんだりで。

きちんと一発できれいにやるにはTMDBに登録されているIDをキーにするのが一番です。
IDは目的の映画を開いたとき、URLに表示される数字がそれです。

https://www.themoviedb.org/movie/19913-500-days-of-summer ← 19913の部分

かなり面倒でしたが、タイトルだけでうまく引っ張れなかったものはこのIDを調べてから、もう一度GASで引っ張ってきました・・・。

マルチセレクトに注意

あとで俳優さんを絞り込もうと思って、そこのプロパティをマルチセレクトにしたら、めっちゃ重くなりました。

新たに俳優さん登録するときに表示されるまで時間がかかりすぎて倒れちゃう。
俳優さんや監督さんのマルチセレクトはやめて、テキストにしておきました。普通に検索で絞り込みできるから。