画像メタデータの著作権・作成者情報を確認
この確認ツールは、抽出済みのIPTCまたはXMPメタデータブロックを調べ、著作権情報と作成者情報の両方が入力されているかを判定します。一般的なフィールド名、修飾されたXMPキー、入れ子のメタデータオブジェクトに対応し、画像そのものを読み取ったり変更したりしません。一致したパスと不足している必須カテゴリを結果に示すため、公開前の手動確認にも、繰り返し実行する自動検査にも使用できます。
無料で実行
処理はブラウザ内で完結します。ファイルは送信されません。無料でご利用いただけます。
画像を公開する前にメタデータを確認します
著作権情報は、画像とともに保持され、カタログ化、ライセンス管理、公開を行うシステムから見つけられて初めて役立ちます。このツールは、著作権または権利に関する記載と、作成者の表示という2つの基本カテゴリに絞って事前確認を行います。画像から抽出済みのメタデータブロックを渡すと、それぞれのカテゴリに入力済みの値が1つ以上あるかを返します。一致した正確なパスも一覧で示すため、単純なIPTCプロパティ、修飾されたXMPキー、入れ子オブジェクトのどこから判定されたかを確認できます。ただし、この検査の範囲は意図的に限定されています。記載内容が法的に十分であること、名前が記載された人物が作品を所有していること、特定のライセンス条件が有効であることは証明しません。回答するのは、書き出されたメタデータに利用可能な著作権フィールドと作成者フィールドが残っているか、という制作工程上の具体的な問いです。アップロード、納品、配信、アーカイブの前に組み込むことで、帰属情報の欠落を後工程に渡す前に修正できます。
一般的なIPTC名とXMP名の判定方法
メタデータライブラリによって、同じ概念でも出力形式が異なります。CopyrightNoticeとBy-lineを返す抽出ツールもあれば、dc:rightsとdc:creatorを使うもの、iptc、xmp、dc、photoshopの各オブジェクトの下にプロパティをまとめるものもあります。このツールは大文字と小文字、句読記号の違いを正規化しますが、結果には検出した元のパスを保持します。文字列は、空白以外の文字が含まれる場合にだけ入力済みと見なします。配列は、少なくとも1つの要素が入力済みであれば有効です。そのため、XMPの作成者シーケンスや複数の権利表記にも対応できます。入れ子オブジェクトは、決定的なキー順で再帰的に調べます。数値、真偽値、空文字列、空配列、テキスト値を含まないオブジェクトは要件を満たしません。実際の書き出しツールが帰属表示に使用する一部のクレジットフィールドも認識しますが、判定根拠は透明です。matched_fieldsを見れば、どのパスが肯定結果の根拠になったかを正確に確認できます。組織で許可するフィールドをさらに限定する場合は、この存在確認を完全な準拠検査とせず、別のポリシー検査を追加してください。
ブロックの欠落と値の欠落を区別します
メタデータ自体が渡されていない場合と、渡されたメタデータに対象フィールドがない場合は区別されます。メタデータブロックが存在しないかnullの場合、調べる対象がないため、無効な入力としてエラーになります。一方、明示的に渡された空オブジェクトは有効な入力です。通常の結果が返り、missing_fieldsには2つのカテゴリが示されます。この違いにより、自動処理では抽出や連携の失敗と、実際に帰属フィールドを持たない画像を分けて扱えます。validが真になるのは、copyright_presentとcreator_presentの両方が真の場合だけです。後から片方を補う工程であれば、それぞれの真偽値を個別に利用できます。このツールは画像を取得せず、JPEGやTIFFのバイナリ領域を解析せず、タグを書き込まず、登録簿へ問い合わせず、送信されたオブジェクトを保存しません。まず任意の画像処理ツールでメタデータを抽出し、その結果オブジェクトを渡してください。APIは1回$0.002で利用でき、素材の受け入れ、書き出し検証、コンテンツ配信の工程に小さく決定的な検査として組み込めます。
活用例
公開用データの書き出し前検査
アップロード前に、書き出した素材へ作成者の帰属表示と著作権または権利の記載が残っているか確認します。
デジタル素材移行の検証
移行後に抽出したメタデータを比較し、帰属フィールドが削除または空になったレコードを検出します。
提供素材の受け入れ管理
作成者情報または著作権情報が不足する提出物を、修正対象として適切に差し戻します。
よくある質問
このツールは画像ファイルそのものを読み取りますか?
いいえ。画像からあらかじめ抽出していただいたIPTC/XMPメタデータオブジェクトを確認します。
メタデータブロックがない場合はどうなりますか?
確認対象のメタデータがないため、無効な入力としてエラーを返します。
空のメタデータオブジェクトはエラーになりますか?
いいえ。通常どおり検査され、著作権と作成者の両方が不足している結果になります。
dc:creatorのような配列にも対応していますか?
はい。少なくとも1つの要素に空白以外のテキストがあれば、入力済みと判定します。
肯定結果は所有権やライセンスの有効性を証明しますか?
いいえ。フィールドの存在だけを確認し、著作者、所有権、許諾、法的な十分性は認証しません。
APIによる確認はいくらですか?
APIは1回$0.002です。ブラウザー版はメタデータをAPIへ送らず、ローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/image/metadata-copyright-embed-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"metadata":{"dc:creator":["Avery Stone"],"dc:rights":"Copyright 2026 Avery Stone"}}'const res = await fetch("https://api.kit.forhosting.com/image/metadata-copyright-embed-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"metadata": {
"dc:creator": [
"Avery Stone"
],
"dc:rights": "Copyright 2026 Avery Stone"
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/image/metadata-copyright-embed-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"metadata": {
"dc:creator": [
"Avery Stone"
],
"dc:rights": "Copyright 2026 Avery Stone"
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/image/metadata-copyright-embed-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"metadata":{"dc:creator":["Avery Stone"],"dc:rights":"Copyright 2026 Avery Stone"}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"metadata":{"dc:creator":["Avery Stone"],"dc:rights":"Copyright 2026 Avery Stone"}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/image/metadata-copyright-embed-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"metadata": {
"dc:creator": [
"Avery Stone"
],
"dc:rights": "Copyright 2026 Avery Stone"
}
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "image.metadata_copyright_embed_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 15 |
max_megapixels | 12 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |