5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「良い映画」より「今の自分に合う映画」に出会いたい ── 気分ベースの映画推薦アプリを作った話

Last updated at Posted at 2025-12-21

はじめに

こんちくわ。ZOZOTOWN のレコメンド機能を管掌するチームでエンジニアリングマネージャーをやっている棚本(@i6tsux)です。

この記事では、映画好きが勢いで作った 「今の気分に合う映画をおすすめするアプリ」 の話をつらつらと書いてゆきます。

背景 / 課題

映画が好きで、ほぼ毎日なにかしら観ています。
そんな中で 「見たいと思える映画に出会うのは、意外と難しい」 と感じます。
しかも、時間をかけて選んだはずなのに、
いざ観はじめると 「うーん、なんかハマらないなぁ」 となってしまうことも珍しくありません。
これが結構つらい。

やりたいこと

やりたいことはすごくシンプルで、

  • 今の自分が「観たい」と思える映画に出会えること
  • 観はじめて「やっぱ違ったかも」とならないこと

この2つを満たすことです。

振り返ってみると、
「わ〜、これは良いかったな、、、!」と思える作品は、
作品の出来そのものというより、
そのときの気分や状態にハマっていた ことが多い気がします。

だったら、「今の気分に合う映画を探す仕組みを作ればいい」そう考えて、このアプリを作りました。

既存サービスだと何が足りないのか

自分は映画サブスクを5つほど使っています。
どれも便利ではありますが、レコメンドに関しては少し物足りなさを感じています。
(ちなみに私の一番のお気に入りは U-Next です。公開したばかりの作品だったりニッチな作品があるのが GOOD)

多くの場合、過去の視聴ログをもとに
「あなたはこれが好きそう」と提示される形が中心で、
「今の気分」 が考慮されることはほとんどありません。

「今日は軽いものが観たい」
「余韻に浸れる作品がいい」
「なんとなく人生を感じたい」

そういう その瞬間のモード に寄り添った推薦があればいいのに、と思ったのが今回の出発点です。

気分をどうやって知るか

とはいえ、
「今どんな気分?」と聞かれて、
それをそのまま言語化するのは結構むずかしい。

考えているうちに面倒になったり、
そもそも自分でもよく分かっていなかったりします。

そこで今回は、
こちらから用意した選択式の質問に答えてもらう形を取りました。

細かく説明してもらうのではなく、
ポチポチ答えていくうちに、
なんとなく「今の自分っぽい状態」が浮かび上がってくる、
そんなイメージです。

システム設計(ざっくり)

今回は「まず動くものを作る」ことを優先して、
細かいことはあまり考えずに割り切りました。

設計はかなりシンプルです。

  • 質問文の生成映画の推薦 は ChatGPT に任せる
  • 映画の概要やポスターなどの情報は TMDB から取得する

アプリ側では、

  • 質問の流れを制御する
  • APIを呼ぶ
  • 結果をそれっぽく表示する

このあたりにだけ集中して、
考える部分はChatGPT、データはTMDB
という構成にしています。

成果物

実際に使ってみると、
「たしかに今の気分っぽいな」 と思える映画がちゃんと返ってきて、
普通に満足しています。

アプリはこちらで公開しています。
https://whilm.com/

どんな感じか分かるように、
デモ動画も載せておきます。

(正直、今はかなり動作が重いです...w)

今後の展望

思ったよりちゃんと使えるものになったので、
もう少し触り心地を良くしていこうと思っています。

まずは何より、動作がとにかく重い
ここは早めにどうにかしたいところです。

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?