Back to top

img.azyobuzi.net

Version 3

最新バージョンの API です。

v2 からの変更点は以下の通りです。

  • 複数枚の画像に対応

  • 動画のサイズを 3 段階に分けた

Resource

GET/v3/services

対応している画像共有サービスの URI にマッチする正規表現を取得します。

Example URI

GET https://img.azyobuzi.net/api/v3/services
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "id": "CloudApp",
    "name": "CloudApp",
    "pattern": "^https?://(?:www\\.)?cl\\.ly/(?:image/)?(\\w+)/?(?:[\\?#]|$)"
  },
  {
    "id": "Dailymotion",
    "name": "Dailymotion",
    "pattern": "^https?://(?:www\\.)?dailymotion\\.com/video/([^/\\?]+)/?(?:[\\?#]|$)"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "title": "サービスID",
        "description": "サービスを表す文字列。変更されることはありません。"
      },
      "name": {
        "type": "string",
        "title": "サービス名",
        "description": "サービスの表示名。サービスが改名するなどして変更されることがあります。"
      },
      "pattern": {
        "type": "string",
        "title": "正規表現"
      }
    }
  }
}

Resource

GET/v3/redirect

指定した画像の、指定したサイズへリダイレクトします。

size によってどのような画像へリダイレクトされるのかについては、 /v3/resolve のレスポンススキーマを参考にしてください。

Example URI

GET https://img.azyobuzi.net/api/v3/redirect
URI Parameters
HideShow
uri
string (required) 
size
string (optional) Default: full 

Choices: full large thumb video_full video_large video_mobile

Response  302
HideShow
Headers
Location: http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630.jpg
Response  400
HideShow
code 説明
4001 uri パラメータが指定されていません。
4002 uri パラメータが、どの正規表現にもマッチしませんでした。
4003 size パラメータが不正です。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4002,
    "message": "Unsupported URI.",
    "service_id": null,
    "exception": null
  }
}
Response  404
HideShow
code 説明
4043 指定された画像の詳細情報を取得しに行きましたが、画像が存在しませんでした。
4044 指定された画像の詳細情報を取得しに行きましたが、画像ではないコンテンツでした。
4045 size パラメータに動画が指定されましたが、動画を取得することができませんでした。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4043,
    "message": "The image is not found.",
    "service_id": "HatenaFotolife",
    "exception": "ImgAzyobuziNet.Core.ImageNotFoundException: Exception of type 'ImgAzyobuziNet.Core.ImageNotFoundException' was thrown.\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.Fetch(String username, String id) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 109\r\n at ImgAzyobuziNet.Core.Extensions.GetOrSet[T](IResolverCache resolverCache, String key, Func`1 valueFactory) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Extensions.cs:line 21\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.GetImages(Match match) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 51\r\n at ImgAzyobuziNet.Core.ImgAzyobuziNetService.Resolve(String uri) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/ImgAzyobuziNetService.cs:line 33"
  }
}
Response  500
HideShow
code 説明
5000 想定されていないエラーが発生しました。これは画像共有サービスの仕様変更が原因である可能性があります。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 5000,
    "message": "Raised unknown exception on server.",
    "service_id": null,
    "exception": "System.Exception: 5000テスト"
  }
}

Resource

GET/v3/resolve

指定した URI に対応する画像の URI を取得します。

Example URI

GET https://img.azyobuzi.net/api/v3/resolve
URI Parameters
HideShow
uri
string (required) 
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "service_id": "HatenaFotolife",
  "service_name": "はてなフォトライフ",
  "images": [
    {
      "full": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630_original.jpg",
      "large": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630.jpg",
      "thumb": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630_120.jpg",
      "video_full": null,
      "video_large": null,
      "video_mobile": null
    }
  ]
}
Schema
{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "string",
      "title": "サービスID",
      "description": "/v3/services の id に対応します。"
    },
    "service_name": {
      "type": "string",
      "title": "サービス名",
      "description": "/v3/services の name に対応します。"
    },
    "images": {
      "type": "array",
      "title": "画像のリスト",
      "description": "サービスによっては2枚以上の画像を取得できるので、配列になっています。",
      "items": {
        "type": "object",
        "properties": {
          "full": {
            "type": "string",
            "title": "最大サイズの画像の URI",
            "description": "取得できる最大サイズの画像です。"
          },
          "large": {
            "type": "string",
            "title": "大きめの画像の URI",
            "description": "長辺が500~900pxの画像を目安としています。サービスによっては full と同じ URI が代入されます。"
          },
          "thumb": {
            "type": "string",
            "title": "サムネイルの URI",
            "description": "長辺が200px以下の画像を目安としています。サービスによっては large と同じ URI が代入されます。"
          },
          "video_full": {
            "type": [
              "string",
              "null"
            ],
            "title": "最大サイズの動画の URI",
            "description": "動画を取得することができた場合、このフィールドには取得できる最大サイズの動画の URI が代入されます。動画を取得できない場合 null が代入されます。例えば、 YouTube は動画投稿サービスですが、動画自体を簡単に取得することはできないため、 null となります。"
          },
          "video_large": {
            "type": [
              "string",
              "null"
            ],
            "title": "大きめの動画の URI",
            "description": "HD以下の画質の動画を目安としています。サービスによっては video_full と同じ URI が代入されます。"
          },
          "video_mobile": {
            "type": [
              "string",
              "null"
            ],
            "title": "小さめの動画の URI",
            "descirption": "サービスで提供される最も低画質の動画です。サービスによっては、 video_large と同じ URI が代入されます。"
          }
        }
      }
    }
  }
}
Response  400
HideShow
code 説明
4001 uri パラメータが指定されていません。
4002 uri パラメータが、どの正規表現にもマッチしませんでした。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4002,
    "message": "Unsupported URI.",
    "service_id": null,
    "exception": null
  }
}
Response  404
HideShow
code 説明
4043 指定された画像の詳細情報を取得しに行きましたが、画像が存在しませんでした。
4044 指定された画像の詳細情報を取得しに行きましたが、画像ではないコンテンツでした。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4043,
    "message": "The image is not found.",
    "service_id": "HatenaFotolife",
    "exception": "ImgAzyobuziNet.Core.ImageNotFoundException: Exception of type 'ImgAzyobuziNet.Core.ImageNotFoundException' was thrown.\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.Fetch(String username, String id) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 109\r\n at ImgAzyobuziNet.Core.Extensions.GetOrSet[T](IResolverCache resolverCache, String key, Func`1 valueFactory) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Extensions.cs:line 21\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.GetImages(Match match) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 51\r\n at ImgAzyobuziNet.Core.ImgAzyobuziNetService.Resolve(String uri) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/ImgAzyobuziNetService.cs:line 33"
  }
}
Response  500
HideShow
code 説明
5000 想定されていないエラーが発生しました。これは画像共有サービスの仕様変更が原因である可能性があります。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 5000,
    "exception": "System.Exception: 5000テスト",
    "service_id": null,
    "message": "Raised unknown exception on server."
  }
}

Version 2

初期から公開している API です。

v3 で複数枚の画像に対応しているサービスに関しては 1 枚目のみを返します。また動画については、最大サイズ(video_full)のみを返します。

Resource

GET/regex.json

対応している画像共有サービスの URI にマッチする正規表現を取得します。

Example URI

GET https://img.azyobuzi.net/api/regex.json
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "name": "CloudApp",
    "regex": "^https?://(?:www\\.)?cl\\.ly/(?:image/)?(\\w+)/?(?:[\\?#]|$)"
  },
  {
    "name": "Dailymotion",
    "regex": "^https?://(?:www\\.)?dailymotion\\.com/video/([^/\\?]+)/?(?:[\\?#]|$)"
  }
]
Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string",
        "title": "サービス名",
        "description": "サービスの表示名。 /v3/services の name に対応します。"
      },
      "regex": {
        "type": "string",
        "title": "正規表現"
      }
    }
  }
}

Resource

GET/redirect

指定した画像の、指定したサイズへリダイレクトします。

size によってどのような画像へリダイレクトされるのかについては、 /all_sizes.json のレスポンススキーマを参考にしてください。

Example URI

GET https://img.azyobuzi.net/api/redirect
URI Parameters
HideShow
uri
string (required) 
size
string (optional) Default: full 

Choices: full large thumb video

Response  302
HideShow
Headers
Location: http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630.jpg
Response  400
HideShow
code 説明
4001 uri パラメータが指定されていません。
4002 uri パラメータが、どの正規表現にもマッチしませんでした。
4003 size パラメータが不正です。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4002,
    "message": "\"uri\" parameter you requested is not supported.",
    "exception": null
  }
}
Response  404
HideShow
code 説明
4043 指定された画像の詳細情報を取得しに行きましたが、画像が存在しませんでした。
4044 指定された画像の詳細情報を取得しに行きましたが、画像ではないコンテンツでした。
4045 size パラメータに動画が指定されましたが、動画を取得することができませんでした。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4043,
    "message": "The picture you requested is not found.",
    "exception": "ImgAzyobuziNet.Core.ImageNotFoundException: Exception of type 'ImgAzyobuziNet.Core.ImageNotFoundException' was thrown.\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.Fetch(String username, String id) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 109\r\n at ImgAzyobuziNet.Core.Extensions.GetOrSet[T](IResolverCache resolverCache, String key, Func`1 valueFactory) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Extensions.cs:line 21\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.GetImages(Match match) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 51\r\n at ImgAzyobuziNet.Core.ImgAzyobuziNetService.Resolve(String uri) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/ImgAzyobuziNetService.cs:line 33"
  }
}
Response  500
HideShow
code 説明
5000 想定されていないエラーが発生しました。これは画像共有サービスの仕様変更が原因である可能性があります。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 5000,
    "message": "Raised unknown exception on server.",
    "exception": "System.Exception: 5000テスト"
  }
}

Resource

GET/all_sizes.json

指定した URI に対応する画像の URI を取得します。

Example URI

GET https://img.azyobuzi.net/api/all_sizes.json
URI Parameters
HideShow
uri
string (required) 
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "service": "はてなフォトライフ",
  "full": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630_original.jpg",
  "full_https": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630_original.jpg",
  "large": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630.jpg",
  "large_https": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630.jpg",
  "thumb": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630_120.jpg",
  "thumb_https": "http://cdn-ak.f.st-hatena.com/images/fotolife/a/azyobuzin/20130909/20130909162630_120.jpg",
  "video": null,
  "video_https": null
}
Schema
{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "title": "サービス名",
      "description": "/regex.json の name に対応します。"
    },
    "full": {
      "type": "string",
      "title": "最大サイズの画像の URI",
      "description": "取得できる最大サイズの画像です。"
    },
    "full_https": {
      "type": "string",
      "title": "最大サイズの画像の URI (HTTPS)",
      "descirption": "互換性のために残されており、 full と同じ文字列が代入されます。"
    },
    "large": {
      "type": "string",
      "title": "大きめの画像の URI",
      "description": "長辺が500~900pxの画像を目安としています。サービスによっては full と同じ URI が代入されます。"
    },
    "large_https": {
      "type": "string",
      "title": "大きめの画像の URI (HTTPS)",
      "descirption": "互換性のために残されており、 large と同じ文字列が代入されます。"
    },
    "thumb": {
      "type": "string",
      "title": "サムネイルの URI",
      "description": "長辺が200px以下の画像を目安としています。サービスによっては large と同じ URI が代入されます。"
    },
    "thumb_https": {
      "type": "string",
      "title": "サムネイルの URI (HTTPS)",
      "descirption": "互換性のために残されており、 thumb と同じ文字列が代入されます。"
    },
    "video": {
      "type": [
        "string",
        "null"
      ],
      "title": "最大サイズの動画の URI",
      "description": "動画を取得することができた場合、このフィールドには取得できる最大サイズの動画の URI が代入されます。動画を取得できない場合 null が代入されます。例えば、 YouTube は動画投稿サービスですが、動画自体を簡単に取得することはできないため、 null となります。"
    },
    "video_https": {
      "type": [
        "string",
        "null"
      ],
      "title": "最大サイズの動画の URI (HTTPS)",
      "descirption": "互換性のために残されており、 video と同じ文字列が代入されます。"
    }
  }
}
Response  400
HideShow
code 説明
4001 uri パラメータが指定されていません。
4002 uri パラメータが、どの正規表現にもマッチしませんでした。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4002,
    "message": "\"uri\" parameter you requested is not supported.",
    "exception": null
  }
}
Response  404
HideShow
code 説明
4043 指定された画像の詳細情報を取得しに行きましたが、画像が存在しませんでした。
4044 指定された画像の詳細情報を取得しに行きましたが、画像ではないコンテンツでした。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 4043,
    "message": "The picture you requested is not found.",
    "exception": "ImgAzyobuziNet.Core.ImageNotFoundException: Exception of type 'ImgAzyobuziNet.Core.ImageNotFoundException' was thrown.\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.Fetch(String username, String id) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 109\r\n at ImgAzyobuziNet.Core.Extensions.GetOrSet[T](IResolverCache resolverCache, String key, Func`1 valueFactory) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Extensions.cs:line 21\r\n at ImgAzyobuziNet.Core.Resolvers.HatenaFotolifeResolver.GetImages(Match match) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/Resolvers/HatenaFotolife.cs:line 51\r\n at ImgAzyobuziNet.Core.ImgAzyobuziNetService.Resolve(String uri) in /home/vsts/work/1/s/ImgAzyobuziNet.Core/ImgAzyobuziNetService.cs:line 33"
  }
}
Response  500
HideShow
code 説明
5000 想定されていないエラーが発生しました。これは画像共有サービスの仕様変更が原因である可能性があります。
Headers
Content-Type: application/json
Body
{
  "error": {
    "code": 5000,
    "message": "Raised unknown exception on server.",
    "exception": "System.Exception: 5000テスト"
  }
}

Generated by aglio on 02 Mar 2019