メインコンテンツまでスキップ

画像配信

すべてのコンテンツサムネイルとソースアイコンは、自動画像最適化機能を備えたグローバル CDN を通じて配信されます。

仕組み​

API レスポンスの thumbnail.url は、最適化され CDN にキャッシュされた画像を指します。追加の処理は不要で、そのまま直接使用できます。

{
"thumbnail": {
"url": "https://img.feed.storyhub.studio/...",
"width": 320,
"height": 168
}
}

機能​

機能説明
フォーマット変換ブラウザーの Accept ヘッダーに基づく WebP/AVIF の自動変換
スマートクロッピング顔を検出した画像は顔が中心に入るように切り抜き、顔が検出されない画像は中央を基準に切り抜きます
CDN キャッシュグローバルエッジ配信による30日間のキャッシュ
署名付き URL不正利用防止のため、すべての画像 URL に署名を付与

デフォルトサイズ​

コンテキストサイズアスペクト比
フィードサムネイル320 x 1681.91:1(OGP 標準)
プッシュ候補1024 x 5122:1(モバイル最適化)

サムネイルのサイズはシナリオごとにカスタマイズできます。カスタム設定については、担当のアカウントマネージャーにお問い合わせください。

プッシュ候補の画像URL​

プッシュ通知候補(push candidates)JSONL 出力に含まれる thumbnail.url と source.icon は、URL 末尾に出力フォーマットの拡張子が付いた署名付き URL です。フィード API やコンテンツ詳細 API の画像 URL とは異なり、フォーマットは固定されます。

フィールド拡張子出力フォーマット
thumbnail.url.jpgJPEG 固定
source.icon.pngPNG 固定

フィード API (GET /feed) およびコンテンツ詳細 API (GET /contents/{id}) の画像 URL は拡張子なしのままで、Accept ヘッダーに基づく WebP/AVIF への自動フォーマット変換(機能を参照)が引き続き適用されます。

コンテンツソース側で画像最適化サーバー経由のアクセスがブロックされている場合は、下記の「ソース側 CDN からの直接配信」と同様に、拡張子のない元画像 URL がそのまま返却されます。

実装のヒント​

  • thumbnail.url を <img> タグで直接使用してください。CDN がフォーマットネゴシエーションを処理します。
  • thumbnail.width と thumbnail.height フィールドは、レイアウトのヒント(例: aspect-ratio CSS)として提供されます。
  • ソース画像が利用できない場合、API はプレースホルダー URL を返します。常に有効な thumbnail オブジェクトを受け取ることができます。

本文中の画像​

include_body=true で取得した本文に含まれる画像 URL(img タグの src や Markdown の ![alt](url))も、同じ画像配信サービスの署名付き URL に置き換えられます。サムネイルと同様に URL は保存・キャッシュせず、表示のたびに最新のレスポンスから取得してください。

ソース側 CDN からの直接配信

コンテンツソース(メディア)側が独自の CDN を用意しており、クラウドサービスからのアクセスを制限(WAF 等)している場合があります。この場合、画像最適化サーバー経由でのアクセスがブロックされるため、元画像の URL がそのまま thumbnail.url として配信されます。thumbnail.url のドメインが img.feed.storyhub.studio ではなくソース側のドメインになることがありますが、動作に影響はありません。このフォールバックは自動的に適用されるため、クライアント側での対応は不要です。