Media > AI活用ユースケース > マーケティング > 海外のストック素材サイトの英文のライセンス証書と請求書を読み取って素材台帳に転記し、期限切れ間近と範囲外の利用を拾う

海外のストック素材サイトの英文のライセンス証書と請求書を読み取って素材台帳に転記し、期限切れ間近と範囲外の利用を拾う

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

海外のストック素材サイトから届く英文のライセンス証書と請求書を読み取り、素材ID・ライセンス種別・ライセンシー・期間・案件名を素材台帳に転記します。毎月、期限切れ間近のライセンスと、案件の使用計画が購入したライセンスの範囲を超えているものを拾います。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
EC/小売/広告
対象部門
マーケティング/知財
対象業務
データ入力・転記/台帳・マスタ管理
主な課題
入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
AIで行う処理
抽出
主な効果
入力漏れ削減/工数削減/機会損失防止
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
70h/月
AI導入後
28h/月
想定削減
60%
年間削減
504h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. デザイナーや制作進行の担当者が素材を購入し、証書と請求書のPDFを自分のフォルダに保存する
  2. 月末に知財の担当者が、各担当者に今月の購入分の証書を出してもらう
  3. 証書を1件ずつ開き、素材ID、ライセンス種別、ライセンシー、購入日、期間を台帳に写す
  4. 請求書を開き、金額と注文番号を台帳に写し、どの案件の費用かを制作進行に聞く
  5. 案件管理の仕組みで、その素材を使う案件の媒体・印刷部数・掲載期間を確かめる
  6. 期間のあるライセンスの終了日と、案件の掲載期間を見比べる
  7. 印刷部数や媒体がライセンスの条件を超えていないかを、サイトの規約を開いて確かめる
導入後(After)
  1. 人購入した担当者が、証書と請求書のPDFを案件コード付きで受付フォルダに入れる(注文確認のメールを転送してもよい)
  2. 自動保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
  3. 自動OCRが証書と請求書の表、見出しのキーと値、信頼度を返す
  4. 自動素材ID・ライセンス種別・ライセンシー・購入日・期間・金額を取り出し、素材ごとの行にする
  5. 自動素材台帳の「仮登録」の行として書き込む
  6. 自動毎月1日に、台帳の全行を案件の使用計画とライセンス種別の条件表に照らし、印を付ける
  7. 人知財の担当者が、仮登録の行の印の付いたものだけを画像と見比べて確定する
  8. 人印の付いた計画を制作進行と確かめ、追加ライセンスの購入や計画の変更を決める
各工程の詳しい説明を読む
  1. デザイナーや制作進行の担当者が素材を購入し、証書と請求書のPDFを自分のフォルダに保存する
  2. 月末に知財の担当者が、各担当者に今月の購入分の証書を出してもらう
  3. 証書を1件ずつ開き、素材ID、ライセンス種別、ライセンシー、購入日、期間を台帳に写す
  4. 請求書を開き、金額と注文番号を台帳に写し、どの案件の費用かを制作進行に聞く
  5. 案件管理の仕組みで、その素材を使う案件の媒体・印刷部数・掲載期間を確かめる
  6. 期間のあるライセンスの終了日と、案件の掲載期間を見比べる
  7. 印刷部数や媒体がライセンスの条件を超えていないかを、サイトの規約を開いて確かめる

(a)台帳が埋まらない。 2番目の回収が月末に集中し、出てこない証書は台帳に載りません。台帳に無い素材は、6番目と7番目の確認の対象からも外れます。

(b)ライセンシーの名義が案件と合わない。 クライアントの代わりに買うのか、自社で使うのかで、証書の名義が変わります。名義が自社のまま、クライアントの自社サイトに素材が渡ることがあります。

(c)期間のあるライセンスに気づかない。 多くのストック素材は使用期限の無いライセンスですが、期間を定めて許諾される素材や、契約の期間に結び付いた音源もあります。 台帳に期間の列が無いと、掲載期間の延長で終了日を越えます。

(d)カンプの素材が最終の制作物に残る。 iStock では、電子透かし入りのコンテンツはテストやサンプルレイアウトに限って無料で使え、最終製品には使えず、使用期間もダウンロード後30日間のみとされています。本番の購入を忘れると、台帳にも証書にも残らない素材が制作物に入ります。

  1. 【人】 購入した担当者が、証書と請求書のPDFを案件コード付きで受付フォルダに入れる(注文確認のメールを転送してもよい)
  2. 【自動】 保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
  3. 【自動】 OCRが証書と請求書の表、見出しのキーと値、信頼度を返す
  4. 【自動】 素材ID・ライセンス種別・ライセンシー・購入日・期間・金額を取り出し、素材ごとの行にする
  5. 【自動】 素材台帳の「仮登録」の行として書き込む
  6. 【自動】 毎月1日に、台帳の全行を案件の使用計画とライセンス種別の条件表に照らし、印を付ける
  7. 【人】 知財の担当者が、仮登録の行の印の付いたものだけを画像と見比べて確定する
  8. 【人】 印の付いた計画を制作進行と確かめ、追加ライセンスの購入や計画の変更を決める

7番目が、この設計の分かれ目です。 担当者は420件を写すのではなく、読み取りの信頼度が低い行や、ライセンシーが案件と合わない行だけを画像と見比べます。 印の無い行は、一覧で流し見て確定します。

6番目の照合をAIにさせないのも、意図してのことです。 印刷部数の上限、エディトリアル専用か、期間の終了日。どれもライセンス種別の条件表と使用計画の比較で、AIには証書から値を取り出すところまでをさせます。

02今回想定するシステム構成

構成図
ライセンス証書・請求書(PDF。購入の画面または注文確認のメール)
   ▼【トリガー】受付フォルダ(Amazon S3)への保存
AWS Lambda ── 形式・ページ数・サイズ・パスワードの確認
   ▼
AWS Textract(StartDocumentAnalysis:TABLES/FORMS)
   │   素材の明細の表、見出しのキーと値、信頼度
   ▼
Claude API ── 素材ごとの行にそろえる
   │   ① 素材IDと種類   ② ライセンス種別   ③ ライセンシー   ④ 購入日と期間   ⑤ 金額
   ▼
素材台帳(仮登録)
   ▼【トリガー】毎月1日
Python ── 使用計画とライセンス種別の条件表に照らす
   ▼
判定(ok / expiring / over_print / editorial_in_ad / licensee_mismatch / no_license / needs_human)
   ▼
【知財の担当者が印の付いたものを確認】
   └──▶ 制作進行と追加購入・計画の変更を決める
役割想定する製品代替候補
OCRAWS Textract(StartDocumentAnalysis/GetDocumentAnalysis)Azure AI Document Intelligence、Google Document AI
生成AIClaude API(素材ごとの行への整理、確認の文の下書き)OpenAI API、Gemini API
差異計算Python(使用計画と条件表との照合、期限の計算)案件管理の仕組みの集計の機能
連携AWS Lambda(保存と完了の通知、月次の照合を起点に処理を動かす)Amazon EventBridge
保管Amazon S3(証書、請求書、読み取り結果)共有ドライブ

素材台帳と案件管理の仕組みは、新しく足すものではありません。 最初の準備は、素材台帳に「ライセンシー」「期間の終了日」「確定済みか」の列を足すことと、知財の担当者がライセンス種別の条件表を作ることです。

ライセンス種別の条件表が、この構成の中心です。 サイトごと・ライセンス種別ごとに、印刷部数の上限、再販用の製品に使えるか、ロゴや商標に使えるか、エディトリアル専用か、期間の有無を1行にします。条件は各サイトの使用許諾契約から知財の担当者が写すもので、AIに推測させません。 たとえば iStock の標準ライセンスなら、印刷は500,000回まで、カードやTシャツなど再販用の製品は不可、商標・ロゴの要素としての使用は不可、と書きます。

OCRに AWS Textract を選ぶのは、証書と請求書が英文だからです。 公式の上限の表で、対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語とされ、日本語は読めません。 国内の素材サイトの日本語の証書は、この構成の対象から外します。

この題材で効くのは、表の読み取り(TABLES)です。 証書と請求書の多くは、素材ID、説明、ライセンス種別、金額を列に並べた表です。表はセルごとに行と列の番号と信頼度付きで返り、列見出し(COLUMN_HEADER)の種類が付くので、どの列が素材IDかを見出しから決められます。

03どうやって実装するのか

Step1

処理の起点を決める

起点は2つあります。証書が受付フォルダに入ったときと、毎月1日です。

1つ目は、受付フォルダ(Amazon S3)に証書と請求書が保存されたことです。購入した担当者が、ファイル名の先頭に案件コードを付けて入れます。注文確認のメールを専用のアドレスに転送すると添付が受付フォルダに入る仕組みも置き、購入した日のうちに台帳の仮登録まで進めます。 月末の回収をやめるのが目的です。

2つ目は、毎月1日の定時です。台帳の全行を、案件の使用計画とライセンス種別の条件表に照らします。月1回にしているのは、使用計画のほうが月の途中で動くためです。 印刷部数の増刷や掲載期間の延長は、購入の時点ではまだ決まっていません。

期間の終了日が60日以内に来る行は、毎週月曜にも一覧にします。 掲載の延長を決めるのに、月1回では遅いことがあります。

Step2

入力データを集める

データ中身取得元
ライセンス証書PDF。素材ID、説明、ライセンス種別、ライセンシー、購入日、期間受付フォルダ(Amazon S3)
請求書PDF。注文番号、日付、素材IDごとの金額、合計、通貨受付フォルダ(Amazon S3)
読み取り結果表とセル、列見出し、キーと値、それぞれの信頼度AWS Textract
使用計画案件コード、クライアント、媒体、印刷部数、掲載の開始日と終了日、使う素材ID案件管理の仕組み
ライセンス種別の条件表サイトとライセンス種別ごとの印刷の上限、再販用の製品、商標・ロゴ、エディトリアル専用、期間知財の担当者が作る表
ライセンシーの名義の一覧自社名とクライアント名の、証書に出てくる書き方知財の担当者が作る一覧

質を決めるのは、ライセンス種別の条件表です。 証書に書かれたライセンス種別の名前(Standard License、Extended License など)を、条件表の行に対応付けて初めて、印刷部数や媒体と比べられます。条件表に無い種別は、照合をせずに人に回します。

使用計画に素材IDの列が無いと、照合は始まりません。 案件管理の仕組みに「使う素材ID」を入れる欄を足すのは、制作進行の側の準備です。

Step3

データの取得方法を決める

読み取りは StartDocumentAnalysis にS3の場所と FeatureTypes を渡して始めます。完了は NotificationChannel に指定した Amazon SNS のトピックに通知され、状態が SUCCEEDED なら GetDocumentAnalysis で結果を取ります。

指定するもの値理由
FeatureTypesTABLES、FORMS素材の明細の表と、注文番号・日付・ライセンシーの見出し
ClientRequestToken案件コードとファイルのハッシュ同じ証書で二重に読み取りを始めない
JobTag案件コード完了の通知から案件を引く

表は、セルの行と列の番号で組み立て直します。 列見出しの付いたセルから、Asset ID、Description、License、Price の列を決め、行ごとに「素材ID・説明・ライセンス種別・金額」の組にします。 見出しの書き方はサイトで違うので、Image #、Item、Content ID のような別名を、サイトごとの列の対応表に持ちます。

1点ごとに1ページの証書は、表ではなくキーと値で返ります。 Licensee:、License Type:、Date: のキーと値を取り、ページごとに1行にします。表とキーと値のどちらで来るかはサイトで決まるので、サイトごとに読み方を切り替えます。

結果は1回最大1,000ブロックで区切られます。NextToken が返る限り呼び直し、まとめ買いの証書の後半のページが抜けないようにします。

使用計画は案件管理の仕組みからCSVで出し、条件表とあわせて Python が読みます。生成AIには渡しません。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … JPEG、PNG、PDF、TIFF であることを確かめます。メール本文だけの注文確認は、PDFにして入れます
  2. パスワードの確認 … PDFはパスワードで保護されていてはいけないとされています
  3. サイズとページ数の確認 … 非同期の処理で、PDFとTIFFは500MB・3,000ページまでです
  4. 証書と請求書の組み合わせ … 注文番号で、同じ注文の証書と請求書を組にします
  5. 重複の検知 … 同じ注文番号と素材IDの組がすでに台帳にあれば、再ダウンロードの証書として印を付けます
  6. サイトの特定 … 送信元のドメインかファイル名から購入先を決め、列の対応表と読み方を選びます

4番目で組にならないものも、そのまま進めます。 証書だけ、請求書だけの行は、台帳で「片方が未着」と分かるようにしておき、月次の照合の前に担当者が足します。

5番目は、同じ素材を別の担当者が買い直していないかの手がかりにもなります。 注文番号が違って素材IDが同じなら、二重購入の可能性として一覧に出します。

Step5

AIに処理させる

させるのは、証書と請求書の読み取り結果を、素材ごとの台帳の行にそろえることです。 範囲に入るかの判断はさせません。

見るもの取り出し方判断できないときの扱い
素材ID原文のまま。先頭のゼロや記号を残す桁が欠けていれば unreadable
素材の種類写真・動画・イラスト・音源・フォントのどれか決まらなければ unknown
ライセンス種別書かれた名前のまま書かれていなければ missing
ライセンシー書かれた名義のまま欄が無ければ not_stated
購入日・期間原文と、日付として確定できるときだけ解釈順序が決まらない日付は ambiguous
金額と通貨素材IDごとの金額と通貨合計しかなければ素材ごとの金額は空
エディトリアル専用の表示証書や説明に Editorial use only があるか判断できなければ unknown

期間は、書かれているときだけ入れます。 多くの証書には期間の欄がありません。期間が書かれていないことを、無期限と書き換えさせません。 無期限かどうかは、条件表のライセンス種別の行が決めます。

エディトリアル専用の表示を拾うのは、範囲外の利用のいちばん大きな手がかりだからです。 iStock の使用許諾契約では、「エディトリアル専用」と表示されたコンテンツは、商業、販売促進、広告などの目的に使えないとされています。

させないこと理由
使い方がライセンスの範囲に入るかの判断知財の担当者が条件表と使用計画で判断する
ライセンス種別から条件を推測すること条件はサイトごとの契約にあり、知財の担当者が表にする
期間の無い証書を無期限と書くこと無期限かは条件表の行が決める
合計から素材ごとの金額を割り振ること請求の按分を誤る
素材IDの桁や記号の補完別の素材に結び付く

2行目がいちばん起きやすい失敗です。 Standard License と書かれていると、一般的な知識から「印刷は○部まで」と条件を書き足そうとします。サイトごとに条件が違うので、書き足した瞬間に台帳が誤った条件を持ちます。

Step6

指示内容を固定する

あなたは広告会社の知財の担当で、海外のストック素材サイトのライセンス証書と
請求書を、素材台帳の行にそろえる担当です。
OCRの読み取り結果だけを使ってください。推測で埋めないでください。

【取り出す項目】
order:site、order_no、order_date_raw、order_date、licensee_raw、currency、total
assets:素材ごとに次を入れてください。
  asset_id、asset_type(photo / video / illustration / music / font / unknown)、
  description、license_type_raw、editorial_only(true / false / unknown)、
  term_raw、term_start、term_end、price、status、source(ページと表の行)

【厳守事項】
- asset_id は書かれた文字列をそのまま入れてください。桁や記号を補わないでください。
- license_type_raw は書かれた名前のまま入れてください。
  ライセンスの条件(印刷部数、媒体、期間など)を書き足さないでください。
- term_raw は期間が書かれているときだけ入れてください。
  書かれていなければ空にし、「無期限」と書かないでください。
- 日付は日と月の順序が文面から決まるときだけ YYYY-MM-DD にし、
  決まらなければ空にして status を ambiguous にしてください。
- 素材ごとの金額が書かれていなければ price を空にしてください。
  合計から割り振らないでください。
- editorial_only は "Editorial use only" などの表示があるときだけ true にしてください。
- その使い方が許されるかを書かないでください。
- 証書でも請求書でもない書類は、項目を取り出さず document_type に種類を書いてください。

【読み取り結果】{textract_tables_and_forms}
【このサイトの列の対応表】{column_alias}

「条件を書き足さない」を明記しないと、書き足します。 ライセンス種別の名前だけを見て、一般的な知識から部数の上限や使える媒体を description に足して返し、その値が台帳に残ると、誰も条件表を見に行かなくなります。

Step7

出力形式を固定する

Claude API の構造化出力(output_config.format に json_schema を指定)で、次の形のJSONを受け取ります。

{
  "file": "",
  "project_code": "",
  "document_type": "license_certificate",
  "order": { "site": "", "order_no": "", "order_date_raw": "", "licensee_raw": "", "currency": "USD", "total": 0 },
  "assets": [
    { "asset_id": "", "asset_type": "photo", "description": "",
      "license_type_raw": "Standard License", "editorial_only": "false",
      "term_raw": "", "term_end": "", "price": 0, "status": "ok", "source": "p1:T1:R3" }
  ]
}

1つ目の理由は、素材ごとの行がそのまま台帳の行になることです。 assets の1要素が台帳の1行で、注文番号と案件コードが付いて仮登録されます。

2つ目は、照合をプログラムの側に置けることです。 Python が毎月1日に、台帳の行と使用計画と条件表を突き合わせて印を付けます。

印付ける条件
ok条件表に種別があり、使用計画の媒体・部数・期間が条件に収まる
expiring期間の終了日が60日以内で、使用計画の掲載終了日がそれより後
over_print使用計画の印刷部数が、条件表の上限を超える
editorial_in_adeditorial_only が true で、使用計画の媒体が広告・販促
licensee_mismatchライセンシーが、自社名にも案件のクライアント名にも当たらない
no_license使用計画に素材IDがあるのに、台帳に証書の行が無い
needs_human条件表に無い種別、ambiguous、unreadable、unknown がある

3つ目は、no_license を出せることです。 使用計画の側から素材IDを数えるので、証書が無いまま使われている素材、つまりカンプのまま残った素材が、台帳の外から見つかります。

Step8

システムへ連携する

つなぎ先方式内容
受付フォルダ(Amazon S3)保存の通知証書と請求書の保存を検知して AWS Lambda を動かす
AWS TextractAPI呼び出し(非同期)読み取りを始め、完了の通知で結果を取る
Claude APIAPI呼び出し素材ごとの行への整理、確認の文の下書き
素材台帳書き込み(仮登録の行)素材ごとの行と、照合の印を書く
案件管理の仕組みCSV出力の読み取り媒体・部数・掲載期間・素材IDを読む
ライセンス種別の条件表読み取り種別ごとの条件を引く

素材台帳には「仮登録」として書き込み、確定は人が行います。 確定済みの行を自動で書き換えることはしません。案件管理の仕組みにも書き込みません。 掲載期間や部数を変えるのは制作進行の判断です。

Step9

人が確認する

知財の担当者が開くのは、印の付いた行と、仮登録のうち信頼度の低い行です。 印の無い仮登録の行は、一覧で流し見て確定します。

  1. needs_human を先に片付ける … 条件表に無い種別は、そのサイトの契約を読んで条件表に1行足します
  2. licensee_mismatch の理由を確かめる … クライアントの代わりに買ったものか、自社で使うものかを購入した担当者に聞きます
  3. over_print、editorial_in_ad、expiring を制作進行と確かめる … 追加ライセンスの購入か、計画の変更か、素材の差し替えかを決めます
  4. no_license を最優先で止める … 証書の無い素材が入った制作物は、購入か差し替えが済むまで公開に回しません

4番目は、他の印より先に扱ってください。 証書が無いということは、ライセンスを持っていない可能性があるということです。

Step10

例外に対処する

起きること対応
パスワードで保護されたPDF読めない。購入の画面から取り直す
日本語の証書読み取りに回さず、担当者が台帳に手で入れる
表の列見出しが無い列の役割が決まらないので、needs_human にして人へ
証書と請求書が組にならない片方が未着として台帳に残し、月次の照合の前に担当者が足す
同じ素材IDを別の注文で購入二重購入の可能性として一覧に出す
条件表に無いライセンス種別照合をせず、知財の担当者が条件表に足す
ジョブが FAILED または PARTIAL_SUCCESSStatusMessage と Warnings のページ番号を記録し、そのページを人へ
使用計画に素材IDが入っていない照合できない案件として制作進行へ返す

最後の行が、導入の初めの数か月でいちばん多く出ます。 使用計画に素材IDを入れる習慣が付くまでは、照合の対象そのものが欠けます。 件数を毎月数え、制作進行に返します。

Step11

記録を残す

  • 元の証書と請求書、受け取った日時、案件コード、購入した担当者
  • AWS Textract が返したJSONの全文
  • Claude API が返したJSON(order と assets の全行)
  • 月次の照合の結果と、そのとき使った条件表の版と使用計画の内容
  • 担当者が仮登録を直した記録 … どの項目を、どう直したか
  • 追加ライセンスの購入や素材の差し替えの決定と、その理由

条件表の版を残すのは、サイトの契約が改定されるためです。 購入した時点の条件で使っていたことを後から説明するには、当時の条件表と証書の両方が要ります。

04実装レベルの3段階

最小構成:証書を手でAIの画面に貼り、素材ごとの表を作らせる / 1件ごとの項目の取り出し
半自動化:上記+受付フォルダを起点に AWS Textract で読み、台帳に仮登録し、毎月使用計画と条件表に照らす / 読み取り、仮登録、月次の照合
本格構成:上記+販売サイトの購入履歴のエクスポートとの突き合わせ、制作物の公開前の確認の仕組みへの引き渡し / 購入から公開前の確認までの台帳の一貫した管理

本記事の想定は半自動化です。 転記と照合が自動になり、担当者は印の付いた行を確かめて確定します。1件10分が4分になるのはこの段階です。 本格構成で足すのは、漏れの側の管理です。 担当者が受付フォルダに入れ忘れた証書は、半自動化では台帳に載りません。サイトの購入履歴と台帳を突き合わせれば、入れ忘れが分かります。 ただし、購入履歴を取り出せる方法はサイトごとに違うので、使えるかを先に確かめます。 段階を飛ばさないでください。 半自動化を2〜3か月回すと、条件表に無い種別と、ライセンシーの名義の書き方が出そろいます。そこを整えてから本格構成に進むほうが、needs_human が減ります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
4 名
月間件数
420 件
1件あたり現在時間
10 分
1件あたり導入後時間
4 分
現在  420件 × 10分 ÷ 60 = 70 時間/月
導入後 420件 × 4分 ÷ 60 = 28 時間/月
月間削減時間
42h
削減率
60%
年間削減時間
504h
年間金額換算(時間単価3,000円)
151万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 広告会社・制作会社や、自社で販促物を作るEC事業者・小売業で、海外のストックフォト・ストック動画・音源・フォントの販売サイトから毎月数百点のライセンスを購入している場合。ライセンス証書と請求書のPDFが担当者ごとのメールやダウンロード履歴に散らばり、素材台帳への転記が後回しになっている場合。同じ素材を複数の案件で使い回し、どの案件のどの媒体で使ってよいかを台帳で追いたい場合。
向いていない
  1. ライセンス証書が日本語で発行される国内の素材サイトが中心の場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めません)。購入が月に数点の場合。制作物の公開前に素材ごとの利用条件の条文を確かめたい場合(UC-0192 の構成が向きます)。なお、ある使い方がライセンスの範囲に入るかの判断と、追加ライセンスを買うかの判断は知財・法務の担当者が行うもので、この構成では代替できません。

07最小構成で試す方法

  1. 先月購入した素材から30件を選ぶ(エディトリアル専用のもの、ライセンシーがクライアント名のもの、まとめ買いの証書を必ず入れる)
  2. 手元の生成AIの画面に証書を1件ずつ貼り付け、「この証書の素材ID、ライセンス種別、ライセンシー、購入日、期間を、書かれたとおりに表にしてください。期間が書かれていなければ空欄にし、ライセンスの条件は書き足さないでください」と指示する
  3. 出てきた表を、素材台帳の該当の行(あれば)と見比べる
  4. 案件管理の仕組みの媒体と部数を、手で条件と見比べる

30件は必ずやってください。 仕組みを組む前に、ライセンスの条件を書き足さないか、期間の空欄を無期限と書かないかを確かめます。

出てきた内容判断
書かれたとおりに取り出したOCRのAPIと台帳への仮登録に進む
条件を書き足した指示で禁じる。直るまで先に進まない
素材IDの桁を落としたスキャンではなく購入の画面のPDFを使う。構成は有効

このとき、台帳に行が無い素材の数を数えてください。 30件のうち何件が台帳に無いかが、この構成でまず埋まる量の目安になります。

08実装時につまずきやすいポイント

問題対策
ライセンス種別から条件を書き足す条件の書き足しを禁じ、条件は知財の担当者が作る表から引く
期間の空欄を無期限と書く期間は書かれているときだけ。無期限かは条件表が決める
エディトリアル専用を見落とす表示の有無を項目にし、使用計画の媒体と照らす
ライセンシーが自社のままクライアントへ渡る名義の一覧で照らし、licensee_mismatch を付ける
カンプの素材が制作物に残る使用計画の側から素材IDを数え、no_license を出す
担当者が受付フォルダに入れ忘れる注文確認のメールの転送で自動で入るようにする
使用計画に素材IDが無い照合できない案件として毎月数えて返す
列見出しの書き方がサイトで違うサイトごとの列の対応表を持つ
日本語の証書を読ませて失敗する6言語以外は読み取りに回さない
合計しか無い請求書で金額を割り振る割り振りを禁じ、素材ごとの金額は空にする

上の2行が、この構成の失敗のほとんどです。 どちらも「書かれていない条件を、AIがそれらしく埋める」誤りです。台帳が持つ条件は、知財の担当者が契約から写した表からだけ来る、という一点を守ります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 購入した素材の一覧、注文番号と金額、ライセンシーの名義、そして案件のクライアント名と媒体・掲載期間です。公表前のキャンペーンの情報を含みます。

  1. 素材そのものを生成AIに渡さない … 渡すのは証書と請求書の読み取り結果だけです。iStock の使用許諾契約では、明示的に許可する場合を除き、コンテンツ(キャプション、キーワード、メタデータを含む)を機械学習や人工知能に関連する用途に使えないとされています。素材の画像や音源は、この構成の入力にしません
  2. 範囲に入るかを判定させない … この構成が出すのは照合の印までで、判断と追加ライセンスの購入は知財の担当者が決めます
  3. 公表前の案件の情報を外部へ出しすぎない … 使用計画は Python の照合にだけ使い、生成AIには渡しません
  4. アカウントの共有をしない … iStock の標準ライセンスや定額使用契約は単一ユーザー用とされています。受付フォルダに証書を集めても、購入のアカウントを共有してよいことにはなりません
  5. 条件表を書き換える権限を限る … 条件表の1行が、その種別のすべての照合の結果を変えます。変更は知財の担当者が行い、版を残します

誤りが起きた場合のリスクは、ライセンスの範囲を超えて素材を使ってしまうことです。 多くは条件の書き足しと、台帳に載らない素材から起きるので、条件は表から引き、素材は使用計画の側から数える設計を崩さないでください。

10まず何から始めるか

1週目:ライセンス種別の条件表を作る

購入の多い3つのサイトについて、使っているライセンス種別を洗い出し、印刷の上限、再販用の製品、商標・ロゴ、エディトリアル専用、期間の有無を1行ずつ表にします。各サイトの使用許諾契約から、知財の担当者が写します。

2週目:30件で試す

先月の証書から30件を選び、手元の生成AIの画面で素材ごとの表を作らせます。条件を書き足さないか、期間の空欄を無期限と書かないかを最優先で見ます。

3週目:受付フォルダと使用計画の欄を決める

ファイル名の付け方(案件コードを先頭に)と、注文確認のメールの転送先を決めます。案件管理の仕組みに「使う素材ID」の欄を足し、制作進行と入れ方を決めます。

4週目:受付フォルダから仮登録までをつなぐ

S3、Lambda、Textract、Claude API をつなぎ、素材台帳に仮登録の行を書き込むところまで作ります。この時点では月次の照合を動かさず、仮登録の行の正しさだけを見ます。

2か月目: 毎月1日の照合を動かし、needs_human と no_license の件数を毎週数えます。3か月目以降: 期間の終了日の週次の一覧を足し、1件10分が何分になったかを実測します。台帳に載っていない素材が、制作物に入る前に見つかるようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-07/最終更新:2026-10-07
確認した内容情報源確認日
標準ライセンスと追加ライセンスがあること。追加ライセンスを購入しない場合、物理的な印刷物で500,000回を超えて複製できないこと。再販用の製品(カード、Tシャツ、ポスターなど)と電子テンプレートへの使用、商標・ロゴの要素としての使用が制限されること。「エディトリアル専用」のコンテンツは商業・販売促進・広告などに使えないこと。電子透かし入りのコンテンツはカンプに限り、最終製品に使えず、使用期間がダウンロード後30日間であること。標準ライセンスと定額使用契約が単一ユーザー用であること。雇用主やクライアントの代理で購入した場合の扱い。コンテンツを機械学習や人工知能に関連する用途に使えないことiStock: 使用許諾契約2026-10-07
対応する形式がJPEG、PNG、PDF、TIFFであること。同期はPDF1ページ・10MB、非同期はPDFとTIFFで500MB・3,000ページであること。PDFはパスワードで保護できないこと。対応言語が英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語であることAWS: Set Quotas in Amazon Textract2026-10-07
StartDocumentAnalysis の FeatureTypes(TABLES/FORMS ほか)、ClientRequestToken、JobTag、NotificationChannel で Amazon SNS に完了を通知することAWS: StartDocumentAnalysis2026-10-07
GetDocumentAnalysis の JobStatus(SUCCEEDED/FAILED/PARTIAL_SUCCESS ほか)、MaxResults(最大1,000)と NextToken、StatusMessage、WarningsAWS: GetDocumentAnalysis2026-10-07
表がセル、結合セル、表題、脚注のブロックで返り、セルが行・列の番号と信頼度を持ち、列見出し(COLUMN_HEADER)などの種類が付くことAWS: Tables2026-10-07
構造化出力を output_config.format に json_schema を指定して受け取れることClaude Docs: Structured outputs2026-10-07

ライセンスの条件はサイトとライセンス種別ごとに違い、改定されることがあります。 本記事は iStock の使用許諾契約で確認できた範囲を例にしており、ほかのサイトの条件は各サイトの契約で確かめてください。使い方が範囲に入るかの判断は知財・法務の担当者が行います。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0707)についてのご相談はこちらから。

AI活用について相談する
目次