※2020年1月現在、Photoshop APIはベータ版です。この記事の情報は正式版と異なる可能性がありますので、その点はご注意ください。
@yoshikinokoさんのツイートでAdobe I/OでPhotoshop APIのベータ版テスターを募集中であることを知りました。
#PowerAutomate 🤖で #Photoshop 👩🎨の作業を自動化できる!
画像のちょっとした加工・編集などバッチ作業には便利そう!そして、あまり知られてませんが、実は #AdobeIO のPhotoshopのAPIは👩💻β版テスター👨💻を募集中です🙌https://t.co/sNT7TZcwMH https://t.co/jebgeoeIqR
— TAKEOKA Yoshiki 竹岡義樹 (@yoshikinoko) 2019年12月20日
APIでPhotoshopの機能を呼び出せる、これは試すしかない!
さっそく申し込んでみることにしました。
ベータ版テスターの申し込み
下記ページから、Photoshop APIのベータプログラムに申し込みできます。
氏名やメールアドレス等、必要事項を入力して送信した後、返信が来るのを待ちます。
申し込みから約3週間、ようやく招待メールが届きました。
件名は“Welcome to Photoshop API Private Beta!”、クライアントIDやクライアントシークレットも記載されていて、これでようやくAPIを試すことができます。
アクセストークン(OAuth 2.0)の取得
APIの実行にあたり、まずは必要となるアクセストークンを取得します。
また、Adobe IDをまだ取得していない場合は、下記サイトを参考に、アカウントを作成しておいてください。
- アクセストークンの取得ページにアクセスします。
- 招待メール記載のクライアントIDとクライアントシークレットを入力後、「Sign in and get Token」ボタンをクリックします。
- Adobe IDでサインインします。
- リクエストを許可すると、アクセストークンが表示されるので、メモ帳等にコピーしておきます。
Photoshop APIを呼び出すために必要なアクセストークンは、通常24時間で期限切れになります。
実際の運用では下記サイトのようにプログラム上から取得することになりますが、テスト目的であれば、上記手順で簡単に取得できます。
Photoshop APIのテスト
アクセストークンが無事に取得できたので、実際にAPIをテストしてみます。
APIの仕様については下記サイトに詳細が記載されています。
PSDマニフェストの取得
まずは、documentManifest APIを実行して、PSDファイルのJSONマニフェストを取得してみます。JSONマニフェストは、PSDファイルに含まれるすべてのレイヤーオブジェクトをツリー形式で表したものです。
今回はAdobe Creative Cloudのファイル直下にある「sample.psd」ファイルを対象とします。
リクエストパラメーターはリファレンスの通りで、「storage」でプラットフォームを、「href」で対象ファイルの場所を指定します。
hrefでCreative Cloudアセットのファイルを指定する際は「files」を付ける必要があり、「files/sample.psd」で、Creative Cloudの「ファイル」直下にある「sample.psd」ファイルを示しています。
curl -X POST "https://image.adobe.io/pie/psdService/documentManifest" -H "Authorization: Bearer (アクセストークン)" -H "Content-Type: application/json" -H "x-api-key: (クライアントID)" -d "{\"inputs\": [{\"href\":\"files/sample.psd\",\"storage\":\"adobe\"}]}"
問題無くAPIが実行されると、非同期のジョブが開始され、ジョブステータス(/status 以下がジョブID)とJSONマニフェストをポーリングするhrefが返されます。
{ "_links": { "self": { "href": "https://image.adobe.io/pie/psdService/status/********-****-****-****-************" } } }
返されたジョブIDを使用して、JSONマニフェストを取得します。
curl -X GET "https://image.adobe.io/pie/psdService/status/(ジョブID)" -H "Authorization: Bearer (アクセストークン)" -H "Content-Type: application/json" -H "x-api-key: (クライアントID)"
問題無くAPIが実行されると、JSONマニフェストが返されます。
{ "jobId": "********-****-****-****-************", "outputs": [ { "input": "files/sample.psd", "status": "succeeded", "created": "2020-01-21T05:05:08.243Z", "modified": "2020-01-21T05:05:12.632Z", "layers": [ { "id": -1, "index": 0, "locked": true, "type": "backgroundLayer", "visible": true } ], "document": { "bitDepth": 8, "height": 1427, "imageMode": "rgb", "name": "sample.psd", "photoshopBuild": "Adobe Photoshop CS5.1 Windows", "width": 1920 } } ], "_links": { "self": { "href": "https://image.adobe.io/pie/psdService/status/********-****-****-****-************" } } }
これがPhotoshop APIの基本ですね!
何となく使い方が分かったので、デモを見ながら他のAPIも試してみようと思います。
Photoshop APIの価格とプランについて
2020/1/24 追記:
肝心なことを書き忘れていました。
現時点では、Photoshop APIは無料で利用できます。
詳細な利用プランもまだ決まっていないようですが、ベータ期間が終われば、恐らく有償のプランに切り替わっていくのだろうと思います。
そして、現ベータプログラムはあくまでもテスト利用を目的としたものであり、プレリリースソフトウェアの開発や公開、商業利用は禁止されているようなので、その点はご注意ください。
Can I use this in production or is this just for testing purposes?
Access to the beta platform does not include the right or license to make any public, productive or commercial use of the Prerelease Software.
https://photoshop.adobelanding.com/api-faq/Q より
この記事へのコメントはありません。