この拡張機能には、次のソフトウェアが含まれています。 それぞれのライセンスに従って再配布しており、帰属表示は必須です。
MP4Box.js(mp4box.all.min.js)
- 用途: MP4 の中身を読むため(vendor/mp4box.all.min.js)
- ライセンス: BSD 3-Clause
- 著作権表示: Copyright (c) 2012. Telecom ParisTech/TSI/MM/GPAC Cyril Concolato
- ライセンス全文: vendor/LICENSE-mp4box.txt
- 配布元: <https://github.com/gpac/mp4box.js>
- 版: mp4box 19-03-2025(同梱しているファイルの 1 行目に書いてある文字。 この配布物には版番号が付いていないので、日付の入ったこの文字が版の手がかりです。2026-09-23 に確認)
| ファイル | SHA-256 | 大きさ(バイト) |
|---|---|---|
| vendor/mp4box.all.min.js | 3b09dc606b37de1312d6c55c8bc55089a1e0a5aacef01c16bcaa9703725ad2a2 | 162,805 |
改変なし(同梱しているファイルのハッシュ。上の値は 2026-09-23 に実物から取りました)。
BSD 3-Clause は、再配布時に著作権表示・条件・免責事項を残すことを求めています。 vendor/LICENSE-mp4box.txt を削除したり、この表示を消したりしないでください。 また 3 つ目の条項により、著作権者や貢献者の名前を、この拡張機能の宣伝に使うことはできません。
c2pa-web(Adobe / Content Authenticity Initiative)
- 用途: 読み込んだ素材の C2PA の証明を、読んで検証するため(vendor/c2pa-web/)。証明の組み立て・署名は自前(c2pa.js)
- ライセンス: MIT License
- 版: npm @contentauth/c2pa-web 0.14.4(同梱の wasm のハッシュで一致を確認。画蔵君と同じファイル)
- 配布元: <https://github.com/contentauth/c2pa-js> / <https://www.npmjs.com/package/@contentauth/c2pa-web>
- c2pa_bg.wasm は Rust の c2pa-rs(Adobe。MIT と Apache-2.0。本文は vendor/c2pa-web/LICENSE-c2pa-rs-MIT.txt・LICENSE-c2pa-rs-APACHE.txt)と、それが使う Rust の部品をまとめたもの。部品ごとの一覧とライセンス全文は vendor/c2pa-web/THIRD_PARTY_LICENSES-c2pa-web.md(c2pa-js のコミット 29549b7 の Cargo.lock から作成。wasm に入る 230 件・コンパイル時だけ 51 件。コピーレフトは無し)
- ライセンス全文: vendor/c2pa-web/LICENSE-c2pa-web.txt
- 同梱物: JavaScript(index.js / c2pa-core.js / highgain.js / c2pa-worker.js)と WebAssembly(c2pa_bg.wasm)
- 改変は 1 か所だけです(2026-09-21)。c2pa-core.js の中にある Worker の本体(文字列)を、そのまま vendor/c2pa-web/c2pa-worker.js として取り出し、拡張機能の中ではそのファイルから Worker を作るようにしました (関数 C の先頭に数行。Manifest V3 の拡張機能のページは blob: / data: の Worker を作れないため)。 Worker の中身は 1 バイトも変えていません。検証の処理そのものにも手を入れていません。
MIT は、再配布時に著作権表示と許諾文を残すことを求めています。 vendor/c2pa-web/LICENSE-c2pa-web.txt を削除したり、この表示を消したりしないでください。
なぜ自分で書かずに借りているか: 証明の検証を自分で書くと、間違えたときに 「偽物を本物と判定する」ことが起きます。書き手の間違いは「読めない」で済みますが、 読み手の間違いは証明そのものを無意味にします。本家の実装をそのまま使うのが最も安全です。
写丸君の検証ページと同じファイルを使っています(1 バイトまで同一)。 片方だけ差し替えると、同じファイルの判定がページと拡張機能で食い違います。
onnxruntime-web(Microsoft)
| 項目 | 内容 |
|---|---|
| 名称 | onnxruntime-web 1.30.0(WebAssembly 版だけ。WebGPU・スレッドは使わない) |
| 著作権者 | Copyright (c) Microsoft Corporation |
| ライセンス | MIT License |
| ライセンス本文 | vendor/ort/LICENSE-onnxruntime.txt(第三者の表示は vendor/ort/ThirdPartyNotices-onnxruntime.txt) |
| 入手元 | npm onnxruntime-web@1.30.0(<https://www.npmjs.com/package/onnxruntime-web> / <https://github.com/microsoft/onnxruntime>) |
| 用途 | 学習済みモデル(下の YuNet など)を、このパソコンの中だけで動かすため |
| ファイル | SHA-256 | 大きさ(バイト) |
|---|---|---|
| vendor/ort/ort.wasm.bundle.min.mjs | 11e64bd8ffe11bd1a2a2f0d6275fdfbbba7262f0b76b99b53d228a8a22ef3d90 | 73,054 |
| vendor/ort/ort-wasm-simd-threaded.mjs | e13f7f94fc51b4ca72b12faeb1ee95f4ace6dfbc8939bc718aabdc0a27c4299b | 24,381 |
| vendor/ort/ort-wasm-simd-threaded.wasm | 3398c10d07d229bd91b364548e130e0e51a8e5704b88c7c083ebbeb78842dee2 | 14,239,897 |
改変なし(2026-09-21 に npm の onnxruntime-web-1.30.0.tgz の dist/ とハッシュで照合)。 画蔵君の vendor/ort/ と 1 バイトまで同一です(片方だけ差し替えない)。 スレッドと Worker を使わない設定(numThreads = 1・proxy = false)で動かしています (Manifest V3 の拡張機能のページは blob: の Worker を作れず、スレッドには crossOriginIsolated が要るため)。
顔の検出モデル YuNet(OpenCV Zoo)
| 項目 | 内容 |
|---|---|
| 名称 | face_detection_yunet_2023mar.onnx(同梱名 vendor/models/yunet_2023mar.onnx) |
| 著作権者 | Copyright (c) 2020 Shiqi Yu |
| ライセンス | MIT License |
| ライセンス本文 | vendor/models/LICENSE-yunet.txt |
| 入手元 | <https://github.com/opencv/opencv_zoo/tree/main/models/face_detection_yunet> |
| 用途 | 「顔を探して隠す(AI)」と「縦型に直す」の主役さがし |
| SHA-256 | 8f2383e4dd3cfbb4553ea8718107fc0423210dc964f9f4280604804ed2552fa4(232,589 バイト) |
改変なし(2026-09-21 に opencv_zoo の原本を取り寄せてハッシュで照合。画蔵君と同一)。 モデルの学習には WIDER FACE(CC BY-NC-ND)が使われています(モデル自体の配布条件は上の MIT)。
Google の MediaPipe は使っていません。 使用状況の数値を Google へ送る仕組みが入っていて、 「外部通信は同意制」の方針に合わないためです。
人物の切り抜きモデル MODNet
| 項目 | 内容 |
|---|---|
| 名称 | MODNet(ONNX・8 ビット量子化版 onnx/model_quantized.onnx。同梱名 vendor/models/modnet_quantized.onnx) |
| 著作権者 | MODNet の作者(ZHKKKe) |
| ライセンス | Apache License 2.0(「コード・モデル・デモは Apache-2.0」と原本の README に明記。ONNX への変換も Apache-2.0) |
| ライセンス本文 | vendor/models/LICENSE-modnet.txt |
| 入手元 | 原本 <https://github.com/ZHKKKe/MODNet> / ONNX への変換 <https://huggingface.co/Xenova/modnet> |
| 用途 | エフェクト「人物だけ残す(AI)」 |
| SHA-256 | 92e49898c3e05a6d7a944fc67a8cb87c4aad754ffb6ebd949528c7d1105fee3a(6,632,188 バイト) |
改変なし(2026-09-21 に Hugging Face の Xenova/modnet の onnx/model_quantized.onnx を取り寄せてハッシュで照合。画蔵君と同一)。
transformers.js(Hugging Face)
| 項目 | 内容 |
|---|---|
| 名称 | @huggingface/transformers 4.3.0 の dist/transformers.web.js |
| 著作権者 | Hugging Face |
| ライセンス | Apache License 2.0 |
| ライセンス本文 | vendor/transformers/LICENSE-transformers.txt |
| 入手元 | npm @huggingface/transformers@4.3.0(<https://www.npmjs.com/package/@huggingface/transformers> / <https://github.com/huggingface/transformers.js>) |
| 用途 | 「声から字幕を作る(AI)」で、Whisper を動かすため(whisper-worker.js の中だけで使う) |
| 同梱物の SHA-256 | 元のファイル 2eb83e73bc8326f14b55b27b59f72b4966d7601a1f48a19e5ca0ea6800eaddd1(1,146,742 バイト) → 改変後 b8e196e03df39783af2c4537d5ee5d22a621fda01416448d47c97df90f1a8a60(1,147,062 バイト。2026-09-21 の 3 か所目を入れたあと) |
改変は 3 行だけです(2026-09-21。Apache-2.0 の 4 条 (b) に従い、ここに明記します)。 いずれも行の終わりに「動丸君:」で始まる注記を付けました。ほかは 1 バイトも変えていません。
- import * as ONNX_WEB from "onnxruntime-web/webgpu";
- import { Tensor } from "onnxruntime-common";
この 2 行は、ブラウザがそのままでは読めない書き方(パッケージ名)なので、同梱の onnxruntime-web 1.30.0 (../ort/ort.wasm.bundle.min.mjs)を読むように書き換えました。 (顔の検出・人物の切り抜きと同じ onnxruntime-web を使うので、WebGPU 版の大きな wasm を別に持たずに済みます)
- `const wasmPathPrefix = https://cdn.jsdelivr.net/npm/onnxruntime-web@${ONNX_ENV.versions.web}/dist/;`
wasm の置き場所が決まっていないときに外の CDN(jsDelivr)を指す行です。動丸君では whisper-worker.js が transformers.js を読むより先に置き場所を同梱の vendor/ort/ に決めるので、この行は通りません(動きは変わりません)。 それでも「外からプログラムを読みに行く文字」が拡張機能の中に残らないよう、空の文字 "" に置き換えました。
transformers.js には次の 2 つが組み込まれています(同じファイルの中)。
| 名称 | ライセンス | 本文 |
|---|---|---|
| @huggingface/tokenizers 0.2.0(<https://github.com/huggingface/tokenizers.js>) | Apache License 2.0 | vendor/transformers/LICENSE-tokenizers.txt |
| @huggingface/jinja 0.5.10(<https://github.com/huggingface/huggingface.js>) | MIT License(Copyright (c) 2023 Hugging Face) | vendor/transformers/LICENSE-jinja.txt |
声を文字にするモデル Whisper(同梱していません)
モデルは拡張機能に入れていません。利用者が同意したときだけ、次のところから受け取ってこのブラウザの中に置きます (whisper.js。版を固定し、SHA-256 を確かめてから置く)。
| 項目 | 内容 |
|---|---|
| 原本 | OpenAI Whisper(<https://github.com/openai/whisper>)。Hugging Face の openai/whisper-base・openai/whisper-small のライセンス表示は Apache-2.0(2026-09-21 に Hugging Face の API で確認。GitHub の原本のライセンス文は、この日は取り寄せて確かめていない) |
| 受け取るもの | Xenova による ONNX への変換(Apache-2.0)。Xenova/whisper-base のコミット 64da57285918e20ea79ea5c88eed7197933abaa8(約 80MB)/Xenova/whisper-small のコミット 2d67713f236afa48a18992566e7647f6ca848e13(約 252MB) |
| ファイル | config.json・generation_config.json・preprocessor_config.json・tokenizer.json・tokenizer_config.json・onnx/encoder_model_quantized.onnx・onnx/decoder_model_merged_quantized.onnx(8 ビット量子化版) |
| SHA-256(base の onnx) | encoder 3e345e977b55620a37c0c2b2af0644e019afdfad562dcf71eb929bb7274285f9(23,200,850)・decoder a6beb6baabb66f00b6a686d828c95ffca6146d51900cbad0266cad38f64cf861(53,707,539) |
| SHA-256(small の onnx) | encoder 969f5ac12974340386bf7a02ea6626003e5e2dee396ffc6ab0eec282bf55ba06(92,324,809)・decoder fcfc6100dc7339e7507e10f8b274350be7c4f8d8b575f0293f94cc0e156d6d24(156,780,950) |
onnx のハッシュは Hugging Face の API が示す値(LFS の sha256)です。onnx 本体は 2026-09-21 の時点では取り寄せて確かめていません(受け取るときに毎回この値と照合し、合わなければ置きません)。 ほかの小さなファイルのハッシュも whisper.js の MODELS に書いてあります(取り寄せて sha256 を取り、Hugging Face の API の git の blob とも合うことを確かめた。2026-09-21)。
RNNoise の WebAssembly 版(@shiguredo/rnnoise-wasm)
| 項目 | 内容 |
|---|---|
| 名称 | @shiguredo/rnnoise-wasm 2025.1.5 の dist/rnnoise.js(wasm を中に抱えた 1 ファイル。同梱名 vendor/rnnoise/rnnoise.js) |
| 著作権者 | 株式会社時雨堂(Shiguredo Inc.)。中の RNNoise は Xiph.Org Foundation・Jean-Marc Valin ほか |
| ライセンス | ビルドと JavaScript: Apache License 2.0(本文 vendor/rnnoise/LICENSE-rnnoise-wasm.txt)。中の RNNoise: BSD 3-Clause |
| 入手元 | npm @shiguredo/rnnoise-wasm@2025.1.5(<https://www.npmjs.com/package/@shiguredo/rnnoise-wasm> / <https://github.com/shiguredo/rnnoise-wasm>)。RNNoise の原本は <https://github.com/xiph/rnnoise> |
| 用途 | 「声以外の雑音を減らす(学習型)」(voice.js)。使うときだけ読み込む |
| SHA-256 | e6958293a0118bf9860cb2753332f7562531cc987c914552c426cd7d7180a63e(4,827,304 バイト) |
改変なし(2026-09-21 に npm の shiguredo-rnnoise-wasm-2025.1.5.tgz から取り出した。tgz の SHA-1 1f583962a630e32a2da7c57c727f7e96fc0656f0 は npm の登録値と一致)。 eval・new Function・blob: の Worker・通信は使っていません(wasm は中の文字列から組み立てて WebAssembly.instantiate に渡す)。
中の RNNoise の BSD 3-Clause の本文(著作権表示・条件・免責)は、次の 2 つを同梱しています(2026-09-21 に公式の GitHub から取り寄せ。ご本人の了承を得て)。
- vendor/rnnoise/LICENSE-rnnoise-xiph.txt … 原本 <https://github.com/xiph/rnnoise> の COPYING(Jean-Marc Valin・Amazon・Mozilla・Xiph.Org Foundation・Mark Borgerding)
- vendor/rnnoise/LICENSE-rnnoise-shiguredo.txt … 時雨堂のビルドが元にしている <https://github.com/shiguredo/rnnoise> の COPYING(Shiguredo Inc.・Mozilla・Jean-Marc Valin・Xiph.Org Foundation・Mark Borgerding)
2 つは著作権者の行だけが違い、条件と免責の文は同じです。
gifenc(Matt DesLauriers)
| 項目 | 内容 |
|---|---|
| 名称 | gifenc 1.0.3 の dist/gifenc.esm.js |
| 著作権者 | Copyright (c) 2017 Matt DesLauriers |
| ライセンス | MIT License |
| ライセンス本文 | vendor/gifenc/LICENSE-gifenc.txt(元の名前は LICENSE.md) |
| 入手元 | npm gifenc@1.0.3(<https://www.npmjs.com/package/gifenc> / <https://github.com/mattdesl/gifenc>) |
| 用途 | GIF の書き出し(減色と LZW 圧縮)。使うときだけ読み込む |
| SHA-256 | 217761244379253ba5815510d3048a4fb1f4c4dbe9fb51a5cfbfe26f34eec093(9,098 バイト) |
改変なし(2026-09-21 に npm の gifenc-1.0.3.tgz から取り出した)。 最後の行に元の sourceMappingURL の注記が残っていますが、.map は同梱していません(動きには関係ありません)。
信頼する発行元の一覧(vendor/trust/)
ソフトウェアではありませんが、出所を明記します。
| ファイル | 中身 | 出典 |
|---|---|---|
| c2pa-trust-list.pem | C2PA 公式の適合プログラムのトラストリスト(30 枚) | <https://github.com/c2pa-org/conformance-public> |
| store.cfg | 署名証明書に許される EKU の一覧 | <https://contentcredentials.org/trust/store.cfg> |
| shamaru-root.pem | 株式会社カリロエ(写丸君)のルート証明書 | <https://callirrhoe.jp/app/shamaru-kun/ca/root.pem> |
同梱しているので、素材の検証で外部へ出ていくものはありません。 詳しくは vendor/trust/README.txt。
写丸君の検証ページの小道具(vendor/shamaru/)
- vendor/shamaru/x509.js(証明書の読み取り)・vendor/shamaru/c2pa_x5chain.js(署名に使われた証明書の取り出し)
- 写丸君の検証ページ・画蔵君と同じファイル(画蔵君の vendor/shamaru/ と 1 バイトまで同一。2026-09-21)
- 同じ作者(この拡張機能と同じ MIT)。素材の来歴の画面で、発行元(① この端末の証明書・② 会社のサーバー・ 画蔵君・動丸君・公式の一覧・自己署名 など)を判定するために使う(prov.js。 prov.js そのものは画蔵君と同じファイルではありません(動画向けに直してあります。下の「そのほか」)。 ここに挙げた vendor/shamaru/ の 2 つが 1 バイトまで同一です)
そのほか
上記以外の第三者ソフトウェアは含まれていません。
MP4 の書き出し(mp4mux.js)、WebM の書き出し(webmmux.js)、音の解析(audio.js)、 色の調整とエフェクト(render.js)、来歴の読み取りと発行元の判定(prov.js。画蔵君のものを動画向けに直したもの。 動画・音(MP4 / MOV / M4A / MP3 / WAV)を足し、大きい動画を丸ごとメモリに読まずに要る箱だけ切り出す形にしています。 発行元の判定の手順と文言は変えていません)、 顔の検出の読み解きと人物の切り抜きの呼び出し(detect.js。画蔵君のものを動画向けに直したもの)、 見つけた顔を時間でつなぐ処理(faces.js)、学習済みモデルを使う道具の画面(ai.js)、 字幕のモデルの受け取りと声の取り出し(whisper.js)、Whisper を動かす裏方(whisper-worker.js)、 マーカーからのチャプター(chapters.js)、音だけの MP4(mp4mux.js の finalizeAudioOnly)、 雑音除去の呼び出しと遅れの補正(voice.js)は、 すべてこの拡張機能(と姉妹の画蔵君)のために書いたものです。 上に挙げたもの以外の外部のライブラリは使っていません。
映像と音の圧縮そのものは、ブラウザに用意されている WebCodecs と Web Audio を 呼んでいるだけで、コーデックを同梱しているわけではありません。
この拡張機能自体のライセンス
MIT License / Copyright (c) 2026 UR_Ikko → LICENSE
★ 名義について(2026-09-23 に直しました)。 ソースとこの表示の著作権者は UR_Ikko です(LICENSE と同じ)。 ストアの発行元は株式会社カリロエ(KARIROE, K.K.)で、これは別のものです (../../CLAUDE.md 9 節: ストアの発行元は会社、アプリ内の表示・GitHub・ソースの名義は UR_Ikko)。 0.4.15 までこの行だけ KARIROE, K.K. になっていて、LICENSE と食い違っていました。