セルフホスト型サービス
snapotter-hq/SnapOtter avatar
snapotter-hq/SnapOtter

SnapOtterを読む:五つの形式を一つのセルフホスト処理基盤へ

プロジェクト概要:オープンソースの自己ホスト型ファイル処理ツール。 UI、REST API、パイプラインを介して、画像、ビデオ、オーディオ、PDF、ドキュメント全体でローカル AI を変換、圧縮、OCR、文字起こし、実行します。ファイルがネットワークから離れることはありません。

スター 2,666フォーク 136TypeScriptAGPL-3.0

ひと目でわかる

これは何?
画像、動画、音声、PDF、各種ファイルを変換・圧縮・OCRし、ローカルAIとREST APIで扱うSnapOtterの構成を確認します。
誰に向いている?
SnapOtterは、画像、動画、音声、PDF、文書を一つのセルフホスト環境で処理するTypeScript製のツール群です。Dockerの単一コンテナで試せ、本番向けにはアプリ、PostgreSQL 17、Redis 8の3コンテナ構成を使い、REST API、パイプライン、OIDC、AMD64とARM64、ローカルAIを組み合わせます。
商用利用できる?
厳しい条件付きでできます。AGPL-3.0 はネットワーク型コピーレフトのライセンスで、改変版をホスティングサービスなどとしてネットワーク越しに利用させる場合、その利用者にソースコードを同じライセンスで提供する必要があります。
今もメンテナンスされている?
されています。直近 1 日以内に新しいコミットがあります。
何の言語で書かれている?
主に TypeScript です(GitHub の言語統計による)。

回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。

オープンソース詳細解説

五つのモダリティを一つの画面へ集める

SnapOtterは、ファイル処理を一つのセルフホスト型スタックへまとめるプロジェクトです。画像107、動画57、音声27、PDF29、ファイル23の合計200以上のツールを掲げています。画像はリサイズ、切り抜き、圧縮、形式変換、透かし、色調整、重複検出など、動画は変換、圧縮、トリミング、結合、GIF化、音声抽出、字幕処理などを扱います。音声、PDF、CSVやJSONなどの変換も同じ入口から選べます。

対応数は機能の広さを示しますが、すべての処理結果を保証する数字ではありません。画像では55以上の入力形式と17の出力形式、カメラRAWを含む対応が説明されています。導入時は自分の対象形式を数個選び、変換前後の画質、メタデータ、ページ順、音声同期、失敗時のファイルを比較します。CloudConvertなどの外部サービスを置き換えるという表現はプロジェクトの位置づけであり、同等の性能、料金、処理上限が測定されたという意味ではありません。

Dockerの一行起動と本番Composeの差

クイックスタートは、snapotter/snapotter:latestを1349番ポートで起動し、/dataへ名前付きボリュームを割り当てるdocker runです。ブラウザでhttp://localhost:1349を開き、初期値のadmin/adminでログインした後、初回ログイン時にパスワードを変更します。単一コンテナにはPostgreSQL 17とRedis 8が組み込まれると説明されています。AMD64とARM64に対応し、Intel、Apple Silicon、Raspberry Piを対象に含めています。

本番用途では、アプリ、PostgreSQL 17、Redis 8の3コンテナComposeスタックを使います。データベースの通常処理用URLと、起動時の移行・権限付与に使う所有者URLを分け、Redis URLも設定する構成がサンプルにあります。永続ストレージ、秘密情報、ポート、バックアップはサンプルを実行する前に置き換えます。latestを固定せず使えば更新時期を制御しにくいため、採用版、移行前のバックアップ、復旧手順を記録してから更新するべきです。

ブラウザ画像編集とローカルAIの処理経路

画像エディタはレイヤーを持ち、ブラシ、図形、調整、フィルター、カーブ、キーボードショートカットを扱います。ブラウザで操作し、処理は利用者のハードウェア上で行うと説明されています。AIの機能には背景除去、画像拡大、古い写真の修復と着色、物体消去、顔のぼかしと強調、画像とPDFのOCR、音声文字起こし、動画字幕の自動生成、キャンバス拡張、透明度修正があります。

Fast OCRは公式イメージへ約25MiBを追加し、高精度パックは必要時に導入します。NVIDIAのGPU Composeでは背景除去、拡大、文字起こしをCUDAで加速できますが、OCRはCPU専用ホストとNVIDIAホストで同じポータブルCPUランタイムを使います。IntelとAMDのiGPUはAI推論の対象外で、CPU処理になります。GPUがあるからすべての処理が速くなるとは限らないため、対象モデル、画像サイズ、音声時間、メモリ、処理待ち時間を自分の端末で測る必要があります。

パイプラインとREST APIで処理を組み合わせる

SnapOtterの各ツールはAPIキー認証付きのREST APIから利用でき、対話式のドキュメントは/api/docsにあります。パイプラインではツールを連結して再利用可能な処理を作り、JSONでインポートとエクスポートができます。ステップ数はデフォルトで20で、MAX_PIPELINE_STEPSで調整します。公開イメージのバッチサイズは無制限、ソースビルドではMAX_BATCH_SIZEにより100と説明されています。

この構成は、アップロード、変換、OCR、名前付け、出力保存のような連続処理を一つの画面操作から分ける土台になります。ただし、APIキーの発行、失効、権限範囲、入力サイズ、キューの混雑、失敗したステップの再実行は、本文に詳しくありません。最初は小さなファイルで各ステップの入出力を保存し、同じ処理を二度実行した場合の重複、途中失敗、結果ファイルの削除を確認します。APIを外部へ公開する場合は、1349番ポート、リバースプロキシ、認証、レート制限を別途設計します。

OIDC、言語、ファイルを置く範囲

ログインはOIDCとSSOに対応し、Google、GitHub、Okta、任意のOpenID Connectプロバイダを選べます。インターフェースは21言語で、簡体字と繁体字の中国語、日本語、韓国語、アラビア語などを含み、アラビア語のRTL表示も扱います。複数利用者で使う場合は、外部認証が通ることだけでなく、管理者と一般利用者の操作範囲、APIキーの保管、アップロードされたファイルの閲覧権限を確認します。README本文は、OIDC以外の詳細な権限階層やAPIレート制限を示していません。

プライバシーについては、セルフホスト時のファイルがネットワーク外へ出ないと説明されています。これはファイル処理経路に関する主張で、基本アナリティクスのテレメトリとは別に考える必要があります。分析機能はビルド時にSNAPOTTER_ANALYTICS=offで切るか、実行中に管理画面のオプトアウトで無効化できます。収集データと送信先の詳細は本文だけでは明らかでないため、機密文書を入れる前に設定とドキュメントを確認し、ネットワークの出口を監視するべきです。

永続化、更新、マルチアーキテクチャの確認

単一コンテナの起動は短い一方、ファイルを処理するアプリでは/dataとPostgreSQLのデータを失わない構成が必要です。Composeへ移る際は、名前付きボリュームをどのディスクへ置くか、データベースをどうバックアップするか、Redisを消してよい範囲、変換中の一時ファイルをどう回収するかを決めます。READMEはGetting Started、Deployment、Supported Formats、Docker Tags、REST API、OIDC/SSO、1.xから2.0への更新ガイドへのリンクを用意しています。

Releasesにはv2.2.0、v2.1.0、v2.0.0が示されています。更新前に現在のイメージタグを保存し、データベース移行、APIの応答、パイプラインJSON、GPU用Compose、初期認証を複製環境で比較します。ARM64のRaspberry PiとAMD64のサーバーを同じ結果だと扱わず、画像変換、OCR、音声処理、メモリ使用量をそれぞれ測ります。ハードウェアの対応表は起動可能性の手掛かりであり、同じ処理時間を約束するものではありません。

AGPL-3.0と商用ライセンスの選択

SnapOtterはAGPL-3.0と商用ライセンスの二重ライセンスで提供されます。AGPLv3のコードを改変し、ネットワーク経由のサービスとして提供する場合には、利用者へのソース提供条件が関係するため、LICENSE本文を提供形態に照らして確認します。プロプライエタリ製品やSaaSへ組み込む場合の商用ライセンスは、READMEが案内する連絡先とLICENSING.mdで条件を確認します。ライセンスの選択は、ファイルの権利、利用者の個人情報、外部認証、音声や画像の使用許諾を決めるものではありません。

採用に向くのは、変換・OCR・文字起こしを自分のネットワーク内で処理し、Docker、PostgreSQL、Redis、認証、バックアップを管理できるチームです。まず初期認証を変更し、非機密ファイルで処理結果、APIキー、パイプライン、アナリティクス設定、復元を順に確認します。その記録でデータが意図しない外部へ出ないことと、処理失敗時に元ファイルを取り戻せることを確認してから、本番のアップロードとAI処理を許可するべきです。

編集部の結論

SnapOtterは、画像、動画、音声、PDF、文書を一つのセルフホスト環境で処理するTypeScript製のツール群です。Dockerの単一コンテナで試せ、本番向けにはアプリ、PostgreSQL 17、Redis 8の3コンテナ構成を使い、REST API、パイプライン、OIDC、AMD64とARM64、ローカルAIを組み合わせます。ファイルが自分のネットワーク外へ出ないという説明は魅力ですが、基本アナリティクスの送信先と収集項目は本文だけでは明確でないため、設定を確認してください。管理者パスワードの変更、永続ボリューム、バックアップ、GPU条件、API権限、AGPL-3.0または商用ライセンスの選択を先に整理してから、実データへ広げるのが妥当です。

公式情報源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
コミュニティノート

コミュニティノート