こんにちは、藤田です。
今回は、私が私のためだけに、YouTube料理動画のレシピを数秒で理想のフォーマットに整形して、Google Keepへ保存する「レシピ抽出エンジン」を開発したので、その記録をご紹介します。
まずは、発明の母である「悩み」のご紹介からスタートです。
自炊料理男子の悩み
私は自炊をしているのですが、自炊をしている人の共通の悩みと言えるのが献立のネタに困るということです。
自分のレパートリーというのは思いの外少なくて偏っているので、新しいネタを入れないと自分の料理に自分が一番飽きることになります。
そこで、私はYoutube料理動画のレシピを参考にすることが多く、Google Keepに料理メモとして残しておいて使っています。
ところで、このYoutube料理動画のレシピをGoogle Keepに保存する作業というのが結構面倒でずっと私の悩みでした。
一つは、Google Keepへの保存ステップがあまりに多いことです。
まず、気に言った料理動画を見つけて、良いなと思い、保存することに決めます。
そして、概要欄の材料や動画のURLをコピーし、Keepを開き、新規メモを作成して、タイトルを打ち込み、コピーした内容を順番に貼り付けていく。
この一連の動作のステップが億劫で後回しにすることもしばしばです。
もう一つの悩みは、動画によってレシピ情報の質がバラバラであることです。
親切に概要欄に材料とレシピを載せている動画もあれば、材料は概要欄にあるがレシピ自体は動画内で解説してだけの動画も多いです。
最悪なのは、概要欄に材料もレシピもないパターンで、これに関しては一時停止しながらメモをしるしかありません。
ちなみに、レシピ保存アプリというものがありますが、これらは特定の料理サイトにしか対応していなかったり、形式が気に入らなかったり、そもそも無駄多くシンプルさに欠けるので、私はそもそも使う気はありませんでした。
生成AIを使って自作してみた
そこで、Youtube動画アプリの共有メニューからワンタッチでKeepに保存できるようにする仕組みを自作しようという結論に至りました。
その際に、概要欄に情報がない場合にも対応できるように、動画そのものも『解析』して材料とレシピを自動生成させる。
つまり、概要欄にレシピの記載がない場合にも対応するため、生成AIに動画の字幕から作り方と材料を割り出すという作業をさせるということです。
これは、この仕組みがただの貼り付けツールではないということです。
そして、Keepに貼り付ける用のレシピフォーマットを独自の形式で作らせて、それをKeepに貼り付けるという独自のエンジンになります。
いつも通り、これらの仕組みの設計から何から何まですべて生成AIにお任せです。
システムの仕組みはこうです。
– Youtubeアプリの共有メニューから自前サーバー上に用意したAPIを叩く。
– サーバーでは生成AIを使って動画の中味を分析し、概要欄の情報とマージしてレシピのテキストを作成する。
– サーバーからGoogle Keepにアクセスして、作成したレシピを貼り付けて保存する。
以上、こういう流れです。
ところが、開発直後に大きな技術的な壁にぶつかりました。
それは、サーバーからGoogle Keepへの書き込みができなかったのです。
具体的には、Googleのセキュリティ制限があって、問題の解消が難しかったのです。
結果的には、早々にサーバーからGoogle Keepへの書き込み自体を諦めました。
代替案として、サーバーから直接保存することに執着せず、iPhoneクリップボードにレシピのテキスト渡すところまでにしました。
ここまでやれば、後はショートカットでGoogle Keepアプリを立ち上げれば、サクッと貼り付けるだけなので手間は最小限にできます。
当初に計画通りの100点を目指すと終わらない予感があったので、早々に80点の出来で妥協したという感じです。
それと、もう一つ問題がありました。
iPhoneとiPadの場合は問題なかったのですが、Macの場合には同じショートカットを使うとうまく動きませんでした。
そこで、ここは二重管理になることに甘んじて、Mac用に別のショートカットを作ることで対応しました。
ただ、実は私の場合は、iPhoneやiPadで動画を見ているときにレシピを保存したくなることが多いので、Macでの動作はさほど優先度は高くありません。
極端に言えば、使えなくても問題ではありません。
そもそも、Macを使っている場合は、コピペなどの作業はさほど面倒ではないからです。
生成AIがなかったらどれぐらい時間がかかっていたのか?
今回、私が生成AIの力を借りて構築したこの仕組みですが、言うまでもなく完全オーダーメイドで私のためだけの仕組みです。
言うまでもなく、機能を変更したり、追加したくなったらいつでも可能です。
「いや、私は料理しないし、レシピも保存するニーズもないので」と思われたあなたに一言。
今回の話は、料理動画のレシピを保存したいというニッチなニーズに閉じた話ではありません。
私がどのようにこの仕組みを作ったのかをご紹介すれば、あなたが自分の悩みを解決したいと思われときに、生成AIの力を借りればそれが容易にできる可能性のあることがお分かりになると思います。
そこで、今回の仕組みがどういった内容なのかを詳細にご紹介しようと思います。
是非、参考にしてください。
そして、もし生成AIがない時代に、この仕組みを作ろうとしたらどれぐらいの時間がかかったのかも同時にご紹介します。
まず、システムの全体像をご紹介します。
このシステムは、手元のデバイス(クライアント)と、クラウド上のサーバー(バックエンド)が連携する「分散型システム」です。
1. 【入力】マルチデバイス・トリガー
どのデバイスからでも、思い立った瞬間に起動できます。
iPhone / iPad: YouTubeアプリの「共有」ボタン > 自作ショートカット。
MacBook (Chrome): 自作ショートカット。
役割: 「この動画を解析せよ」という命令とURLを、Djangoサーバーへ送信します。
2. 【解析】Django API サーバー(知能の司令塔)
Linuxサーバー上で動く Python (Django) が、受け取ったURLを元に2つのルートで情報を収集します。
情報収集(外部ライブラリ):
– yt-dlp: 動画のタイトル、投稿者、概要欄を取得。
– youtube-transcript-api: 動画内の全発言を「字幕データ」として書き起こし。
構造化(OpenAI API):
– 集まった「生データ」を gpt-4o に投入。
– 「概要欄がなくても字幕から材料を割り出す」「Markdown形式で整形する」といった高度な推論を実行。
3. 【出力】シームレスな「着地」
解析結果(レシピテキスト)が手元のデバイスに返ってきます。
クリップボード保存: 解析されたテキストが、自動的にデバイスのクリップボードにコピーされます。
アプリ自動連携:
– iOSなら Google Keepアプリ が自動起動。
– Macの場合は、手動でブラウザでGoogle Keepの新規ページを開きます。
最後の一押し: ユーザーは Cmd + V (またはペースト) を押すだけで、自分専用のレシピメモが完成。
以上が、システムの全体像です。
次は、私が、生成AIに頼った箇所、そして自力で調べたらどれぐらい時間がかかったかです。
– YouTube解析の選定
yt-dlp や youtube-transcript-api の仕様把握と環境構築。 5〜8時間
– OpenAI APIの連携
プロンプトエンジニアリング(抽出漏れを防ぐ指示)とAPIの繋ぎ込み。 4〜6時間
– Django APIの実装
エンドポイント作成、JSONレスポンス、認証ヘッダーの設計。 6〜10時間
– Google認証
gkeepapi 等の非公式APIによる認証エラーのデバッグと検証。 10時間〜無限
– プランBへの設計変更
サーバー直接保存を諦め、OS共有機能へのシフトという判断と再設計。 3〜5時間
– Appleショートカット
辞書データの扱い、通知の分割。 4〜6時間
この中でも、特にGoogle Keep 認証が、自力でやった場合には最も時間がかかった可能性があります。
AIがいなければ、なぜログインできないのかを求めて、Stack Overflowや海外の古いフォーラムを数時間、あるいは数日潰す可能性もあったかと思います。
「プランB(手動/OS連携)」へ切り替えるという意思決定も、AIとの対話で「代替案」が示されたからこそ短時間で決断できました。
それと、プロンプトの微調整も難しかったはずです。
特に、概要欄にレシピがない時に字幕から抽出させるための最適なプロンプトの作成です。
今回は、AI自身にテストと修正を繰り返させることで数分で終わりました。
自力であれば「期待通りのMarkdown形式」で安定して出力させるまでに、何度もAPIを叩き、時間とお金を使っての試行錯誤することになったはずです。
結論として、ちょっとオーバーに試算して、合計:約40時間以上かかったはずです。
つまり、1日4時間の作業で2週間近くです。
話を半分にしても、1週間ぐらいは必要だったでしょう。
私は技術者なので、これからやる作業が、どれぐらいの作業規模になるかのかは、やる前からだいたい想像がつきます。
ですから、生成AIが登場する前であれば、軽い気持ちで自分専用のツールを開発しようなどとは、およそ思わなかったであろうと言うことです。
結果的に、今回の仕組みは、生成AIを活用したことで2日ぐらいで作れました。
私にとっては、これまでずっと持ち続けていた「悩み」が解消したのですごく価値のある作業でした。
では、最後に完成した仕組みをiPhoneで実際の動作させた動画をご紹介します。