Meguriアップデートログ
以前、写真と動画の管理アプリMeguriを作ったという記事を書いた。
- 写真と動画をローカル完結で管理する無料アプリMeguri(巡)をリリースした
- フォルダを選ぶだけでサムネイル付きの一覧になり、タグ・レーティング・コレクションで整理できる
- こだわりはランダムに想い出を巡れるDiscovery機能
バグ修正、ストア追加、CI周りの強化など、継続して開発を行なっている。 ココ最近、力を入れたのはMicrosoft Storeへの登録と、Discovery機能のリデザインの2つ。
Microsoft Storeに登録
MeguriをMicrosoft Storeで公開した。

これまでWindows向けにはGitHub ReleasesでNSISインストーラとportable版を配布していたが、インストール時にSmartScreenの警告が出てしまう。 Store経由ならMicrosoftの審査・署名を通った状態で配布できるので、警告なしでインストールしてもらえるし、アップデートもStoreが勝手に面倒を見てくれる。
やったことはざっくりこのあたり。
- electron-builderのターゲットに
appxを追加してStore用パッケージをビルドできるようにした - 申請に必要なプライバシーポリシーページを用意した(Meguriはローカル完結でデータを外部送信しないので、書く内容はシンプル)
- Store用のロゴアセット(StoreLogoや各サイズのSquare/Wideロゴ)を追加
- Store版だけはアプリ内のアップデート通知をGitHub ReleasesではなくStoreの製品ページに向けるようにした
Windowsユーザは下のバッジからインストール可能
Discoveryのリデザイン
ランダムにメディアを巡るDiscovery機能を、没入型のビューに作り直した。

以前はモーダルの中にメディア・メタ情報・シーングリッドが並ぶ、いわばファイル詳細画面のようなチープなレイアウトだった。
リデザイン後は画面いっぱいにメディアを表示し、背景にはぼかしたカバー画像を敷いて、ファイル名・解像度・レーティングなどの情報はグラデーションのオーバーレイに載せるような構成にした。 シーン一覧も、グリッドで場所を取っていたものを横スクロールのシーンレールに置き換え、コンテンツが画面いっぱいに表示されるように考慮した。
その他の改善
- 部分一致検索
- SQLite FTS5のtrigram tokenizerを使って、単語の途中からでもヒットするsubstring検索に対応
- 重複ファイル検出
- 同一コンテンツのファイルを検出して、検索フィルタから絞り込めるように
- 再生履歴ビュー
- ファイルを横断した再生履歴を一覧できるように
- ホバープレビュー
- 一覧の動画サムネイルにカーソルを乗せるとスクラブプレビューが流れるように
- フレーム書き出し
- 動画の表示中フレームをフル解像度の静止画としてエクスポートできるように
- 作成日フィルタ
- ファイルの作成日時(birthtime)でのフィルタとソートを追加
- パフォーマンス改善
- 検索用インデックスの追加、keyset pagination化、重いクエリのworker threadへのオフロードなど、一覧と検索の体感速度を改善
今後について
プライバシーポリシー等の要件を定義する中で、改めてMeguriはローカルファーストを貫こうと決めた。
メディアの表示は127.0.0.1に閉じたローカルサーバ経由で、インデックスやタグ・レーティングといったデータは全部ローカルのSQLiteに収まっていて、
別プロセスがIPを知っていたとしてもアクセスできないように、ポートランダム化やトークン認証の仕組みを入れている。
外部への通信は新バージョン確認のためのアップデートチェック1本だけ(これも設定でオフにできる)
実はこのアプリを構想していた当初は、MCPサーバを提供してAI経由でUIを操作したり、自動タグ付けさせたりする機能も考えていた。
しかし、AIに手元のメディアを渡す時点でデータは外に出ないとは言えなくなるし、この通信前提の機能をひとつ載せた瞬間、セキュリティ上の懸念点を常に考えねばならなくなる。
顔写真から映っている人を自動識別して自動タグ付けするような機能は利便性は高そうであるものの、その扱っているデータの秘匿性は管理するメディア毎に違うだろうし、ローカルのspecで動くLLMで実用的な精度が出てくるとは到底思ええず、今は外部との通信前提での機能拡張を行わないメリットの方が大きいと感じている。
今は他にやりたいことがたくさんあって、フォトフレームのような自動再生、ローカルオーディオの再生にも対応させたいと思っていたりする。
EOF