技術 約3分で読めます

YouTubeを無限ストレージにする系譜とmemvid

MCPサーバーを漁っていたら memvid-mcp-server という面白いものを見つけた。テキストを動画(MP4)にエンコードして、セマンティック検索できるようにするというもの。

「動画にデータを埋め込む」というアプローチ、昔「YouTubeを無限ストレージにする」という狂気のプロジェクトがあったなと思い出して、その系譜を調べてみた。

YouTubeストレージ系プロジェクトの歴史

YouTubeは動画の総数や総容量に制限がない。この「穴」を突いて、任意のファイルを動画にエンコードしてアップロードすれば無限ストレージになるのでは?という発想から生まれたプロジェクトたち。

YouTubeDrive(2017年)- 元祖

dzhang314/YouTubeDrive

Wolfram Language(Mathematica)で書かれた元祖。ファイルのバイト列をRGB値に変換して動画を生成し、YouTube APIで自動アップロード/ダウンロードする。

作者自身が「silly proof-of-concept(馬鹿げた概念実証)」と認めているが、1,900以上のスターを獲得している。

Infinite-Storage-Glitch(2023年)- 大流行

DvorakDwarf/Infinite-Storage-Glitch

Rust製。7,300スター超えの大人気プロジェクト。2つのエンコードモードがある:

  • RGBモード: 1ピクセル = 3バイト。効率的だが圧縮に弱い
  • バイナリモード: 2x2ピクセルブロックで1ビットを表現。YouTube圧縮に耐性がある

作者は「YouTubeの利用規約に違反するかもしれない。このツールの使用は推奨しない」と正直に書いている。

qStore(2023年)- QRコードという解

therealOri/qStore

作者は最初、LSBステガノグラフィ、RGB埋め込み、DCT変換など様々な手法を試した。しかしYouTubeの圧縮アルゴリズムが強力すぎて、どれも復元時にデータが壊れてしまった。

最終的にたどり着いた答えがQRコード。QRコードは元々エラー訂正機能を持っているため、多少の圧縮劣化にも耐えられる。

memvid - QRコード + セマンティック検索

Olow304/memvid

memvidはqStoreのQRコードアプローチを継承しつつ、新しい要素を加えた:

  1. テキストチャンクをQRコードとして動画フレームに埋め込む
  2. sentence-transformersで埋め込みベクトルを生成
  3. FAISSでセマンティック検索を可能に

つまり「動画をベクトルデータベースとして使う」という発想。

memvid-mcp-server

ferrants/memvid-mcp-server

memvidをMCPサーバーとしてラップしたもの。提供されるツールは2つ:

  • add_chunks: テキストチャンクを追加(動画を再生成)
  • search: セマンティック検索でクエリに一致するチャンクを返す

Streamable HTTPトランスポートを使用し、デフォルトでport 3000で動作する。

技術的アプローチの比較

プロジェクトエンコード方式目的
YouTubeDriveRGB値ファイル保存
Infinite-Storage-GlitchRGB or バイナリファイル保存
qStoreQRコードファイル保存(暗号化対応)
memvidQRコード + ベクトルテキスト保存 + 検索

YouTubeDrive系は「無料で無限ストレージ」というハック精神が主目的。memvidは「動画という形式でテキストを保存しつつ、意味検索もできるようにする」というRAG的なユースケースを狙っている。

実用性について

正直なところ、どちらも実用性は微妙:

YouTubeストレージ系の問題

  • 圧縮でデータ破損のリスク
  • アップロード/ダウンロードが遅い
  • YouTube利用規約違反の可能性

memvidの問題

  • 普通にベクトルDB(Pinecone、Qdrant、ChromaDBなど)を使った方が速くて安定
  • チャンク追加のたびに動画全体を再生成するオーバーヘッド
  • 依存関係が重い(PyTorch、sentence-transformers、FAISS)

「技術的には面白いけど実用では別の手段がある」という点で共通している。でもこういう「やってみた」系のプロジェクトは、実用性より発想の面白さに価値があると思う。動画をデータベースとして使うというコンセプト自体はユニークだけどそこまで使いどころがいいわけでもないので、何か思いついたら使ってみるかという感じ。