この記事では、 個人アカウント用 Clipchamp から組織(法人)ユーザーの Clipchamp へプロジェクトを移行する方法、およびその応用で、個人用から別の個人用ユーザーに Clipchamp プロジェクトを移行(コピー)する方法を説明する。
去る7月31日に、 動画編集アプリ Clipchamp が組織アカウントに対応し、ビジネス向け Microsoft 365 に加わることが発表された。
これにより、 Microsoft での買収以降どのプランが商用利用可能なのか曖昧だった Clipchamp が、組織アカウント上で安心して商用利用できる事になる。
北米時間の 2023年10月15日 に Clipchamp が商用ユーザーで利用可能になったことが発表 され、 Microsoft 365 の対象プランのライセンスを持つ全てのユーザーに対し Clipchamp が一般公開された。
さて、 Clipchamp が組織アカウントに対応したことで、旧来の個人アカウント用 Clipchamp アカウントで作成していたプロジェクトを、組織アカウントに移行したくなる場合もあるだろう。
しかし FAQ などをみると、
職場アカウントで Microsoft Clipchamp にアクセスする方法 - Microsoft サポート
個人アカウント用に Clipchamp で作成されたプロジェクトを作業バージョンに移動できますか?
いいえ。
無慈悲。
仕事向けの Clipchamp - clipchamp.com
個人用アカウントの Clipchamp で作成したプロジェクトを職場アカウントに移行できますか?
現時点では、個人用アカウントで作成したプロジェクトを職場アカウントに移行することはできません。
こちらは、もうちょいマイルドだ。
将来的にやる気があるのかはわからんが、少なくとも現時点では、個人アカウントのデータの組織アカウントへの移行は、公式的にはできないらしい。
ところで、実際に組織アカウントで Clipchamp を使ってみると、プロジェクトファイルが OneDrive for Bussiness の <ルート>\動画\Clipchamp\<プロジェクト名>\ あたりの、 *.clipchamp という、 JSON が実体のファイルとして保存されていることに気づく。
個人用 Clipchamp の動作を思い出してみると、画像や音声などのアセットはローカルにキャッシュや保存されているものが参照されているだけで、別 PC でプロジェクトを開こうとすると、改めてアセットファイルを紐づける必要があった。
このため、 個人用 Clipchamp のプロジェクトも、この JSON ファイル程度の情報しかサーバーで管理されていないのではと推測できる。
つまり、何らかの方法でこの JSON ファイル相当の情報を個人用 Clipchamp から抜き出せれば、組織アカウントに移行できるかもしれない。
試行錯誤してみたところ、どうやら上手くいったようなので、その方法を紹介しよう。
- 対象者:
- 最低限の JSON の読み書きができる
- ブラウザの開発者ツールを多少触ったことがある
- 対象環境:
- Microsoft Store Clipchamp アプリ 又は Chromium 系ブラウザ
- 以降の説明は Clipchamp アプリ 又は Edge を例に説明
- 何らかのテキストエディタ
- vscode あたりがオススメ
- Microsoft Store Clipchamp アプリ 又は Chromium 系ブラウザ
ちなみに Clipchamp は Firefox 非対応だ。
Web 標準に仇なすクソがよ。
準備
まず、組織アカウントで一度は何らかの Clipchamp のプロジェクトを作成しておく。(但しそのプロジェクトは以降の手順では使わない)
個人アカウントからプロジェクトデータの取り出し
移行元の個人アカウントを使い、 Clipchamp アプリか Edge で、 Clipchamp サービスを開く。
ウィンドウ内の何らかのコンテンツにフォーカスをあわせた状態で、 Ctrl+Shift+I または F12 キーを押し、開発者ツールを起動する。

Clipchamp 側ではエクスポートしたいプロジェクトを開き、開発者ツール側でネットワークタブを開く。

Ctrl+F でネットワークタブの検索窓を開いて、 URL に /projects/ が含まれているものを探す。
例えば下のスクショの場合、検索結果の 2つ目, 3つ目のレコードは /projects/ が含まれているのが URL ではないので該当しない。
該当するものが複数ある場合は、ヘッダーの要求方法 (METHOD) が GET となっているモノを探す。

URL 一覧からアクティブになっているレコードを右クリックし、「編集して再送信する」をクリックする。

すると、開発者ツールウィンドウの下半分にネットワークコンソールが開くので、 Send ボタンをクリックする。

すると、更にその下に再送信結果が表示されるので、 Download をクリック。

既定のダウンロード先に .json ファイルがダウンロードされているはずなので、任意のテキストエディタで開く。 (vscode がオススメ)
JSON の projectState プロパティの中身だけを繰り出して、 .clipchamp の拡張子で保存する。
具体的には、 vscode の場合 Shift+Alt+F で JSON を整形し、 { "projectState": { の部分まで削除したのち Ctrl+Shift+\ で次の対応する括弧に移動して、その閉じ括弧 } より後ろを削除するとよいだろう。


以上で、移行に用いる .clipchamp ファイルのエクスポートは完了だ。
組織アカウントへの取り込み
OneDrive for Bussiness の <ルート>\動画\Clipchamp\ あたりにプロジェクトフォルダを作成して、そこに .clipchamp ファイルを移動する。
OneDrive for Business の WebUI 上から上記ファイルを開いて、 Clipchamp のウェブエディタを起動する。
もし、「予期しないエラーが見つかりました ... Error: Project schema is an unsupported version」 というエラーが発生した場合、
上記 .clipchamp ファイルの JSON の $.schemaVersion のところを、 1.3.3 くらいに書き換えて、改めて開く。
(組織アカウントで予め作製しておいた Clipchamp のプロジェクトの .clipchamp を開いてみて、それと同じ schemaVersion の値にしておくのが良いだろう。)
Clipchamp の編集画面が読み込まれたら、不足しているアセットを「アセットを探す」をクリックしてたダイアログ上で探して取り込む。

アセットが一箇所にまとまっているなら、「フォルダーを選択」でアセットが入っているフォルダを選択すれば、そのフォルダに含まれているファイルが再帰的に検索され、プロジェクトで使われているアセットが自動的に読み込まれるはずだ。

読み込めないアセットが全て紐付けられたか、あるいはどうして見つからないファイルについてはタイムラインから削除すれば、「アセットを探す」の表示が消え動画のプレビューができるようになるはずだ。
なお、 2023年10月現在、組織アカウントの Clipchamp では内蔵ストックアセットが使えないようだ。 これも 10月以降順次ロールアウトされる らしいので、移行元プロジェクトでストックアセットを使っている場合、そのあとに移行した方が良さそうだ。
キャッシュからアセットの取り出し
更に突っ込んで、一部ファイルがローカルのどこにあるかわからなくなっている場合、キャッシュなどからリソースをファイルとして取り出せる場合もある。
但しこの方法を使うと、移行元のプランで使える一部のストックアセットなども取り出せてしまうが、それはライセンス的に微妙なので要注意。
読み込めていないアセットの ID を、 プロジェクトの JSON から 表示名をキーにして探す。

移行元の Clipchamp のプロジェクトを開発者ツールを開いた状態で開き、先ほどのプロジェクトデータの取り出しと同じ要領で、今度はネットワークタブの検索窓を開いて、 URL に /local-cache/{id} が含まれている要求方法 (METHOD) が GET となっているレコードを探し、同じくアクティブレコードを右クリックで「編集して再送信する」をクリックする。

開発者ツールウィンドウの下半分にネットワークコンソールが開かれるが、 まずは Headers を開き Range のチェックを外してから、 Send ボタンをクリックする。 そして、再送信結果が表示されたら Download をクリック。

保存される拡張子は必ずしも正しく設定されないので、 動画なら .mp4 や .webm, .gif など、 画像なら .png, .jpg, .svg などにファイル名を書き換えよう。
このファイルを、移行先の「アセットを探す」で指定すれば、移行先に取り込めるはずだ。
別の個人アカウントへプロジェクトの取り込み
組織アカウントと異なり、個人アカウントでは .clipchamp ファイルが OneDrive 等の見える所に存在しないので、別の方法で取り込む必要がある。
Clipchamp は、かなり綺麗な URI 設計となっているようで、取り出し方法を応用すれば、個人アカウントを跨いでプロジェクトの移行もできそうだ。
移行先のアカウントで Clipchamp を開き、適当な名前で新しいプロジェクトを作成したのち、開発者ツールを開く。 タイトル名を変えるなど何らかの変更を加え、いったん編集した場所からフォーカスを外す。
この状態で開発者ツールのネットワークタブの検索窓を開いて、 URL に /projects/ が含まれているもののうち、今度はヘッダーの要求方法 (METHOD) が PUT となっているモノを探す。

ペイロードタブを開いて、 "id" プロパティの値をいったんどこかにコピペしておこう。
ちなみにこの値は、 /projects/ の URL に含まれている ID と同じ値のはずだ。

今度は、インポート対象となるエクスポート済みの .clipchamp ファイルを任意のテキストエディタで開く。 そして、ルート直下の "id" プロパティの値を、前述のコピペしといた "id" プロパティの値に書き換える。
"id" プロパティ自体は JSON の中にいくつもあるが、書き換えるのはルート直下のひとつだけにすることに要注意だ。

更に、 .clipchamp ファイルの中身全体を { "projectState": と } でくくって、 .json ファイルとして保存する。


移行先の Clipchamp の開発者ツールに戻り、先ほどの PUT のレコードが選択されている状態で、アクティブレコードを右クリックして「編集して再送信する」をクリックする。 開発者ツールウィンドウの下半分に開いたネットワークコンソールの、今度は Body を開き、そこに、先ほどの書き換えた .json ファイルの中身をペーストして、 Send ボタンをクリックする。

リクエストが成功して何らかのレスポンスが返ってきたら、いったん Clipchamp アプリ(またはブラウザタブ)をすぐに閉じる。
その後、改めて Clipchamp アプリまたは、ブラウザの新しいタブで Clipchamp を開き、プロジェクト一覧を見ると、先ほど作成した新しいプロジェクトが移行したプロジェクトに置き換わっているはずだ。
もしそのプロジェクトを開いた際にエラーが出る場合は、 PUT する JSON の書き換えや指定方法が誤っているので、一旦プロジェクトを削除後、もう一度最初の手順からやり直そう。
おわりに
だいぶ無理矢理な方法だが、上記のような方法で 個人用アカウント同士や、 個人アカウントと組織アカウントの間でプロジェクトを移行できた。
ただ、 Clipchamp の仕様変更で同じ方法が使えなくなくなっている可能性がある点にはご了承願いたい。

