タスクタイプ
画像の英数字認識
このページは中国語版から機械翻訳されたもので、不正確な箇所がある可能性があります。中国語版を正としてください。
文字キャプチャの画像を Base64 に変換して送信すると、画像内の英字と数字(solution.text)が返ります。ImageToTextTaskOcrBase は 1 枚あたり 2 ポイント(約 $0.30 / 1k) で、同期で結果を返します。つまり 1 回の createTask リクエストで結果を取得できます。大文字小文字の区別、数字のみ、計算式などの条件を指定する場合は、非同期の ImageToTextTask を使用してください。
https://api.yescaptcha.com/createTaskグローバルエンドポイントhttps://cn.yescaptcha.com/createTask中国エンドポイントリクエストボディは JSON で、clientKey で認証します。
タイプと価格
Section titled “タイプと価格”| タスクタイプ | 価格 | 返却方式 | 備考 |
|---|---|---|---|
ImageToTextTaskOcrBase | $0.30 / 1k; 2 ポイント/タスク · ¥2 / 1k | 同期 | |
ImageToTextTaskMuggle | $0.30 / 1k; 2 ポイント/タスク · ¥2 / 1k | 同期 | case や numeric などのオプションには対応していません。project_name でカスタムモデルを指定できます |
ImageToTextTask | $0.60 / 1k; 4 ポイント/タスク · ¥4 / 1k | 非同期 | |
ImageToTextTaskM1 | $2.25 / 1k; 15 ポイント/タスク · ¥15 / 1k | 非同期 |
米ドル価格は US$1 ≈ ¥6.67 での概算です。タスクはポイントで課金されます。
| 用途 | 使用するタイプ |
|---|---|
| 一般的な英数字キャプチャ(最も安価で高速) | ImageToTextTaskOcrBase、ImageToTextTaskMuggle(同期) |
| 専用にカスタマイズしたモデルで認識する | ImageToTextTaskMuggle に project_name を指定 |
| 大文字小文字の区別、数字のみ、計算式の評価、文字数の制限が必要 | ImageToTextTask、ImageToTextTaskM1(非同期) |
タイプごとにモデルと経路が異なるため、同じ種類の画像でも結果が変わることがあります。いくつか試してから選んでください。
リクエストパラメータ
Section titled “リクエストパラメータ”| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
type | string | はい | タスクタイプ。値はこのページの「タイプと料金」を参照してください |
body | string | はい | 画像の Base64 エンコード文字列。data:image/...;base64, のプレフィックスと改行は含めないでください |
project_name | string | いいえ | カスタムモデルの名前。ImageToTextTaskMuggle のみ対応しています。指定しない場合は汎用の英数字モデルが使われます。カスタムモデルが必要な場合はサポートまでお問い合わせください(ImageToTextTaskMuggle のみ) |
phrase | boolean | いいえ | true の場合、答えに少なくとも 1 つのスペースが含まれます(ImageToTextTask、ImageToTextTaskM1 のみ) |
case | boolean | いいえ | true の場合、答えは大文字と小文字を区別します(ImageToTextTask、ImageToTextTaskM1 のみ) |
numeric | integer | いいえ | 0 は指定なし、1 は数字のみ、2 は数字を含まない(ImageToTextTask、ImageToTextTaskM1 のみ) |
math | boolean | いいえ | true の場合、画像は計算式であり、答えはその計算結果です(ImageToTextTask、ImageToTextTaskM1 のみ) |
minLength | integer | いいえ | 答えの最小の長さ。0 は制限なし(ImageToTextTask、ImageToTextTaskM1 のみ) |
maxLength | integer | いいえ | 答えの最大の長さ。0 は制限なし(ImageToTextTask、ImageToTextTaskM1 のみ) |
body は画像ファイルの Base64 エンコードです。WebP 画像は自動的に変換されます。
リクエスト例
Section titled “リクエスト例”{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}完全なコード(カレントディレクトリの captcha.png を読み込みます):
# Replace BASE64_IMAGE with the Base64-encoded imagecurl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}'import osimport base64
import requests
API = "https://api.yescaptcha.com"CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] # Read the clientKey from an environment variable
def call(method, payload): r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30) data = r.json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data
def solve(task): return call("createTask", {"task": task})["solution"]
# Base64-encode the image (no data: prefix)with open("captcha.png", "rb") as f: image_b64 = base64.b64encode(f.read()).decode()
solution = solve({ "type": "ImageToTextTaskOcrBase", "body": image_b64,})print(solution["text"])import { readFileSync } from 'node:fs';
const API = 'https://api.yescaptcha.com';const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable
async function call(method, payload) { const res = await fetch(`${API}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); return data;}
async function solve(task) { const { solution } = await call('createTask', { task }); return solution;}
// Base64-encode the image (no data: prefix)const imageB64 = readFileSync('captcha.png').toString('base64');
const solution = await solve({ type: "ImageToTextTaskOcrBase", body: imageB64,});console.log(solution.text);条件付きの非同期タスク:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTask", "body": "BASE64_IMAGE", "case": true, "numeric": 0, "minLength": 4, "maxLength": 6 }}同期タイプは createTask のレスポンスで直接結果を返します。
{ "errorId": 0, "status": "ready", "solution": { "text": "LMResm" }, "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b"}非同期タイプ(ImageToTextTask、ImageToTextTaskM1)はまず taskId を返します。その後 5 秒ごとに getTaskResult でポーリングしてください。完了時の solution の形式は同じです。
| フィールド | 型 | 説明 |
|---|---|---|
text | string | 認識されたテキスト |
カスタムモデル
Section titled “カスタムモデル”汎用モデルはあらゆる英数字キャプチャに使えますが、特定のスタイル向けに学習したモデルよりは精度がやや下がります。認識したい画像が常に同じスタイルであれば、サポートに問い合わせてモデルをカスタマイズできます。作成後は ImageToTextTaskMuggle に project_name を指定して使用します。
よくある質問
Section titled “よくある質問”認識結果が間違っていた場合も課金されますか?
Section titled “認識結果が間違っていた場合も課金されますか?”同期タイプは、結果が返された時点で課金されます。結果が誤っていても同様です。別のタイプで比較するか、モデルのカスタマイズをご検討ください。
ERROR_ZERO_CAPTCHA_FILESIZE または ERROR_PARSE_IMAGE_FAIL が返ります
Section titled “ERROR_ZERO_CAPTCHA_FILESIZE または ERROR_PARSE_IMAGE_FAIL が返ります”画像の Base64 が不完全であるか、data: プレフィックスや改行が含まれています。エンコードを確認してください。詳しくはエラーコードをご覧ください。
関連サンプル
Section titled “関連サンプル”- クイックスタート:
ImageToTextTaskOcrBaseで最初のリクエストを送信 - Python サンプル