1週間で完成!Spotifyタイアップ検索アプリを作った話(駆け出し9年目)
どうも、Web業界で働き始めて9年目の駆け出しエンジニア、silverbirderです。
Spotifyで音楽を聴いていると「この曲、どこかで聞いたことがあるけど、何の主題歌だったかな?」と思うこと、ありませんか?特にドライブ中や作業中に、ふと気になることが多いですよね。
私もそんな経験があり、気になったその曲が主題歌だったアニメを見始めたことがきっかけで、「簡単にタイアップ情報(アニメやドラマなど)を調べられるアプリがあったら便利だな」と思い、このアプリを作ることにしました。
以下が、実際に作成したWebアプリの画面とリンクです。

タイアップ検索 デモ画像
この記事では、このアプリの技術的な部分について詳しく紹介します。
ちなみに、SpotifyでよくAnime Nowを聴いています。タイアップ情報の検索にはもってこいです!
アーキテクチャ概要
このアプリは、Spotifyで再生中の曲のタイアップ情報を素早く取得し、ユーザーに表示します。以下がそのアーキテクチャ図です。

タイアップ検索アーキテクチャ図
使用した技術スタックは以下の通りです。
- Spotify API: 再生中の曲情報を取得
- Google Custom Search API: タイアップ情報をGoogle検索
- OpenAI API: 検索結果からタイアップ情報を抽出
-
Next.js: アプリケーションフレームワーク
- デザイン参考: v0.dev/chat
- Icon生成: AI Icon Generator - perchance.org
開発の流れ
タイアップ情報の取得
最初に、タイアップ情報を取得するためのAPIを探しましたが、直接的にタイアップ情報を提供するものは見つかりませんでした。レコチョクなどのサービスも検討しましたが、必要な情報が不足していたため、断念しました。
次に、ChatGPTを使ってタイアップ情報を取得する方法を試しました。ChatGPTは、Web検索結果を含めた回答を返してくれるため、うまくいくこともありました。しかし、OpenAI APIを使う場合はWeb検索が行われないため、タイアップ情報を取得するには不十分でした。
Google Custom Search API + OpenAI API
そこで、Google Custom Search APIを使い、タイアップ情報が掲載されているWebページを取得し、その情報をOpenAI APIに渡して解析させる手法を採用しました。
この組み合わせにより、精度の高いタイアップ情報を得ることができました。
データの保存
API使用は従量課金のため、コスト管理が重要です。そこで、Google検索結果とOpenAI APIの結果をデータベースに保存し、同じ情報を何度も検索しないようにしています。
結果: Spotifyでアニメ主題歌を楽しむ
このアプリを使えば、Spotifyで再生中の曲がどのアニメやドラマの主題歌なのか、すぐに確認できます。特に、秋のアニメシーズンが近づいている今、気になる曲があればすぐに関連作品をチェックできるので、これからが楽しみです!
1週間で完成!
アイデアを思いついてから完成までにかかった時間は、わずか1週間。
思いついたアイデアを形にするのは、本当に楽しい経験でした。
興味がある方はぜひ、アプリをお試しください!
Discussion
はじめまして。
「Spotify タイアップ検索アプリ」に
興味を持ちまして、インストールした
のですが、
”Try signing in with a different account.”
”Sign with Spotify"
と表示され、先に進めません。
プログラムの構造上、自分でchat_GPTにログイン
しておく必要があるのかなぁと思いましたが、
よくわかりません。
お忙しい所お手数ではありますが、使用法を
御教授願えませんでしょうか?
宜しくお願い致します。
はじめまして。
連絡ありがとうございます。
お手数おかけしまして、申し訳ございません。 🙇
結論から申し上げますと、ユーザー招待制となっているようです。
Spotifyでログインするユーザーのメールアドレスを頂ければ、ログイン可能となります。(私へメール頂いければ対応します!)
確認しましたところ、Spotify APIの Spotify Quota modes が development mode となっていました。
development modeの場合、認証済みのSpotifyユーザー25人までとなっており、許可リストに登録する必要があります。
D's will さんのコメント頂いた件について再現できたユーザーに対して、許可リストに追加すると無事にログインすることができました。
Quota modes を extended quota mode への申請を先ほどしましたが、承認されるかは不明です。 🙇
silverbirder様
質問にお答え頂きありがとうございます。
私は、extended quota modeに承認されることを
祈って待つと言う事ですね。
承認されなかったら諦めます。
お忙しい所、お手数をおかけしました。
今回は、ありがとうございました。
silverbirder様
お礼が遅くなって申し訳ありません。
タイアップ検索、出来るようになりました。
私の我儘を聞いて頂きまして、本当にありがとうございました。
これからも、素敵なアプリ作成される事を願っています。