コンテンツにスキップ

画像をダウンロード

このドキュメントでは、SDKを使わずに生成された結果画像をダウンロードする方法を紹介します。

タスクオブジェクト

タスクオブジェクトはこのような構造です。

{
"id": "1749902216266450789",
"userId": "1541182147551506853",
"parameters": { ... },
"outputs": {
"duration": 1.26,
"detailParameters": {
// ...
},
"mediaId": "459602685899547043",
"extra": { ... }
},
"status": "completed",
"startedAt": "2024-05-22T06:16:57.124Z",
"endAt": "2024-05-22T06:16:59.422Z",
"createdAt": "2024-05-22T06:16:56.946Z",
"updatedAt": "2024-05-22T06:16:56.946Z",
}

タスクのステータスが完了になると、task.outputs にその結果が返される。outputs オブジェクトに mediaId フィールドがあることにお気づきでしょうか。この mediaId は生成された画像の ID である。batch生成する場合、そのIDは outputs.batch[].mediaIdとなる。

{
"id": "1749903535747486198",
"userId": "1541182147551506853",
"parameters": { ... },
"outputs": {
"duration": 4.83,
"detailParameters": { ... },
"mediaId": "459604021635814417",
"batch": [
{
"seed": 3283868009760115,
"mediaId": "459604023097100648",
"extra": { ... }
},
...
]
},
"status": "completed",
"startedAt": "2024-05-22T06:22:12.240Z",
"endAt": "2024-05-22T06:22:18.229Z",
"createdAt": "2024-05-22T06:22:11.557Z",
"updatedAt": "2024-05-22T06:22:11.557Z"
}

画像ダウンロードurl

mediaIdを取得した後、APIを使用して特定の画像ダウンロードurlを取得する必要があります。

単に画像をダウンロードしたい場合は、以下のエンドポイントを使用してダウンロードurlを取得できます。こうすれば実際の画像のURLにリダイレクトされます。

GET https://api.pixai.art/v1/media/:mediaId/image

画像URLやサムネイルURLなどの詳細な画像情報が必要な場合は、Query.mediaクエリにアクセスして、mediaIdをパラメーターとして指定しましょう。

query getMediaById($id: String!) {
media(id: $id) {
urls {
variant
url
}
}
}

または、mediaIdをパラメータとして以下のRESTful APIを使いましょう。

GET https://api.pixai.art/v1/media/:mediaId

結果が出たら、Media.urlsフィールドにアクセスしてダウンロード用のurlを取得してください。

Media.urls オブジェクトの variant フィールドは画像のタイプである。また、url フィールドは画像のダウンロードリンクである。

当社は画像の複数のバリエーションを同時に提供します。生成後にオリジナルの画像にアクセスしたい場合は、通常 variantPUBLIC である URL を選択する必要があります。

{
"data": {
"media": {
"urls": [
{
"variant": "PUBLIC",
"url": "..."
},
{
"variant": "THUMBNAIL",
"url": "..."
},
{
"variant": "STILL_THUMBNAIL",
"url": "..."
}
]
}
}
}

GraphQLバッチクエリを使用して、複数の画像を一度に取得することができます。 以下のようなGraphQLクエリです。

query {
media(id: "459604023097100648") {
urls {
variant
url
}
}
media(id: "459604023097100649") {
urls {
variant
url
}
}
media(id: "459604023097100650") {
urls {
variant
url
}
}
}