画像配信
すべてのコンテンツサムネイルとソースアイコンは、自動画像最適化機能を備えたグローバル 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 168 | 1.91:1(OGP 標準) |
| プッシュ候補 | 1024 x 512 | 2:1(モバイル最適化) |
サムネイルのサイズはシナリオごとにカスタマイズできます。カスタム設定については、担当のアカウントマネージャーにお問い合わせください。
プッシュ候補の画像URL
プッシュ通知候補(push candidates)JSONL 出力に含まれる thumbnail.url と source.icon は、URL 末尾に出力フォーマットの拡張子が付いた署名付き URL です。フィード API やコンテンツ詳細 API の画像 URL とは異なり、フォーマットは固定されます。
| フィールド | 拡張子 | 出力フォーマット |
|---|---|---|
thumbnail.url | .jpg | JPEG 固定 |
source.icon | .png | PNG 固定 |
フィード API (GET /feed) およびコンテンツ詳細 API (GET /contents/{id}) の画像 URL は拡張子なしのままで、Accept ヘッダーに基づく WebP/AVIF への自動フォーマット変換(機能を参照)が引き続き適用されます。
コンテンツソース側で画像最適化サーバー経由のアクセスがブロックされている場合は、下記の「ソース側 CDN からの直接配信」と同様に、拡張子のない元画像 URL がそのまま返却されます。
実装のヒント
thumbnail.urlを<img>タグで直接使用してください。CDN がフォーマットネゴシエーションを処理します。thumbnail.widthとthumbnail.heightフィールドは、レイアウトのヒント(例:aspect-ratioCSS)として提供されます。- ソース画像が利用できない場合、API はプレースホルダー URL を返します。常に有効な
thumbnailオブジェクトを受け取ることができます。
本文中の画像
include_body=true で取得した本文に含まれる画像 URL(img タグの src や Markdown の )も、同じ画像配信サービスの署名付き URL に置き換えられます。サムネイルと同様に URL は保存・キャッシュせず、表示のたびに最新のレスポンスから取得してください。
コンテンツソース(メディア)側が独自の CDN を用意しており、クラウドサービスからのアクセスを制限(WAF 等)している場合があります。この場合、画像最適化サーバー経由でのアクセスがブロックされるため、元画像の URL がそのまま thumbnail.url として配信されます。thumbnail.url のドメインが img.feed.storyhub.studio ではなくソース側のドメインになることがありますが、動作に影響はありません。このフォールバックは自動的に適用されるため、クライアント側での対応は不要です。