2025 ~ 現在

コスモのノートのアプリアイコン

コスモのノート

動画、PDF などの授業資料の要約サービス

ランディング

参加人数
1人(個人開発)
開発期間
2025.05 ~ 現在
主な技術
Cloudflare Workers, R2, Containers
受賞
全国大学ソフトウェア成果共有フォーラム(韓国) 最優秀賞

Highlights

Motivation

副専攻のクラウド学科は、授業のほとんどが動画講義で行われていました。基礎科目はすでに知っている内容が大半なのに、試験と課題のために、知っている講義を最初から流し直さなければなりませんでした。

しばらくは講義動画をダウンロードして、既存の要約サービスに入れて使っていました。試験の2週間前にまとめて使い、その後2か月は手もつけないのが学生の使い方なのに、月額のサブスクリプションなので、使わない日にも料金を払わなければなりませんでした。動画の読み込みから要約までを一度に済ませつつ、従量課金(Pay As You Go)型のサービスを作ってみよう、というのがコスモのノートの始まりでした。

History

  1. 2025.05

    コスモス ダウンローダー

    最初は、講義の視聴画面の右側にダウンロードボタンを付けるブラウザエクステンションを作りました。ボタンを押すとエクステンションがウェブの通信内容を読み、ストリーミングファイルのアドレスをサーバーに送ります。サーバーは .ts(MPEG-TS)形式のストリーミングファイルをダウンロードして mp4 にエンコードし、ダウンロードリンクを返す、というシンプルな構成でした。

    エクステンションを作って公開し、コミュニティに投稿すると、480人以上の学友が「いいね」を押してくれました。ダウンロードしかできないプログラムがこれだけ注目されたのは、この不便さが自分だけの問題ではない証拠でした。

  2. 2025.08

    要約機能の追加

    AI ノートの生成機能を付け、ダウンロードボタンを講義のホーム画面に移しました。ボタンを押すと、Cloudflare Browser でサーバーが直接講義サイトにアクセスするように変えました。ログインは、エクステンションが渡したセッションキーをサーバー側のブラウザに埋め込んで回避しました。

    エクステンションがしていた仕事を、一つずつサーバーに移していく作業でした。エクステンションをなくし、完全にウェブサービスとして動かすことが目標でした。あわせて決済を連携し、収益化の仕組みも作ってみました。

  3. 2026.04

    エクステンションの廃止

    交換留学から戻った後、再びサービスのアップデートを始めました。最大の目標は、ブラウザエクステンションを完全になくすことでした。ブラウザエクステンションはユーザーのブラウザに深くアクセスできる点は良いのですが、モバイルではまったく動かず、特定のブラウザに依存するという問題があります。何より、エクステンションを知っている人があまり多くありませんでした。

    そこで、ウェブサイトだけで動くように大がかりに作り直しました。学校サイトのログイン情報と講座の URL を受け取ると、Cloudflare Browser で直接ログインし、パケットを検知して動画を見つけ出す仕組みです。ログイン情報は保存しないようにしました。ソフトウェアは複雑になりバグも増えましたが、エクステンションをなくしたことで、使いやすさは比べものにならないほど良くなりました。

  4. 2026.09

    汎用の動画要約サイトへリニューアル

    従来の構成では、学校のサイトからしか動画を読み込めませんでした。成長の妨げでもありましたが、著作権のある学校の講義を加工してお金を受け取ることになるため、法的なリスクを避けられませんでした。

    売上が出始めたところで嬉しかったのですが、学校サイトとの連携機能は廃止しました。ただ、このサービスのアイデンティティでもあるので完全には捨てきれず、エクステンションに戻しました。動画や録音、画像、文書を直接アップロードする方式にリニューアルし、現在の形になりました。

Architecture

画面の中のスライドまで読んで、一つのタイムラインにする

ほとんどの講義要約サービスは、音声を STT で書き起こしてから、そのテキストを要約します。ところが授業動画で本当に大事なものはプレゼンテーションの中に多くあり、講師がそれを読まずに進んでしまうことも少なくありません。スライドに出てきた数式や図表が、そのまま失われるという問題が起きます。

変化のない区間をまとめ、長く映っていた画面だけを読む

そこでコスモのノートには、動画のフレームを分析するロジックを入れました。summarizer は ffmpeg を使ってフレームの変化を追跡します。フレームの変化率が5%未満であれば同じフレームとみなし、同じフレームが長く続いたものをランキングにします。そして、上位70%に当たるフレームを見つけて OCR を行います。

STT の結果と OCR の結果を、一つのタイムラインにマージします。最後にこのタイムラインを Worker に渡し、事前にチューニングしたプロンプトで要約ノートを生成します。

ユーザー1人のために高性能マシンを24時間動かしておかなければならない、というコストの問題を解決する

コスモのノートは ffmpeg で動画のフレームを処理する必要があるため、その瞬間はかなり良いマシンを必要とします。高性能なインスタンスを常時動かしておくと、誰も使っていない時間にも費用がかかります。そこで動画処理の機能にはサーバーレス構成を採用し、費用を大きく削減しました。

アップロードからノート生成までの流れ

Workers は最大100MB までしかアップロードを受け付けられません。100MB 未満の動画はほとんどないので、サーバーはバケットに直接アップロードできる Presigned URL を発行してクライアントに渡します。ファイルはクライアントから R2 に直接アップロードされます。

アップロードされたファイルは、estimator が検査します。壊れたファイルや不正なファイルでないかを確認し、問題がなければサンプリングして費用を見積もります。ユーザーが見積もられた金額を支払うと、ノートの生成が始まります。見積もりより分析すべき量が多いと損をすることもありますが、平均コストに倍率を掛けることで、この問題を最小限に抑えました。

この構成が、そのまま料金プランになりました。2時間の動画で、約130円かかります。他社のサービスが3時間分の動画を分析するのに月790円を求めることを考えると、試験期間にまとめて使う学生にとってはとても合理的な仕組みです。インフラも使った分だけ請求される構成なので、持続可能なシステムです。

フラッグシップモデルを高効率モデルに替えながら、ノートの品質は守り抜く

開発初期は、Claude のようなフラッグシップモデルを使っていました。プロンプトのチューニングやタイムラインの整理をあまりしなくても満足できる結果が出ましたが、ノートを1本生成するのにお金がかかりすぎました。2時間の動画を Claude で要約して130円で提供するのは、慈善事業でもなければ成り立ちません。

一度に任せず、分けて任せる

今は Gemini や DeepSeek のような、低コストで高効率のモデルを使っています。その代わり、一度にすべての作業を任せず、目次の生成、本文の生成、画像の配置、推敲などにパイプラインを分けました。小さなモデルは特にコンテキストが大きくなると品質が急激に落ちますが、先に目次を作って1項目ずつ書かせるように仕事を分ければ、品質はそれほど落ちません。また、キャッシングによって費用が一部削減されることもあります。

コンテキストのせいで品質が落ちる問題は解決しましたが、推論能力の差が問題でした。そこで Fable のようなフラッグシップモデルと今のパイプラインの結果を比較するハーネスを作り、定期的に実行しています。Fable ほどの性能は出せませんが、コストのわりに良い品質が出ています。