UNLOCK API
Tekst z obrazka

Tekst z obrazka

Jak wysłać zadanie Tekst z obrazka do UNLOCK API przez createTask lub in.php: nazwy typów zadań, wszystkie parametry, obiekt solution, pola proxy i przykłady kodu w 7 językach.
Cena
$0.25 $0.00025 za zadanie
Wysyłasz
Obrazek w base64, do 100 KB
Otrzymujesz
Tekst z obrazka

Przegląd i cena

Nazwy typu zadania

Ten typ ma jedną nazwę.
ImageToTextTask

Obiekt zadania

type
StringWymagane
Nazwa typu zadania. Wielkość liter nie ma znaczenia. ImageToTextTask
body
StringWymagane
Obrazek w base64 (JPG, PNG lub GIF), do około 100 KB. Prefiks data: jest dozwolony.
phrase
BooleanOpcjonalne
true, jeśli odpowiedź ma dwa lub więcej słów.
case
BooleanOpcjonalne
true, jeśli wielkość liter ma znaczenie.
numeric
IntegerOpcjonalne
0 dowolne znaki, 1 tylko cyfry, 2 tylko litery, 3 cyfry lub litery, 4 cyfry i litery.
math
BooleanOpcjonalne
true, jeśli obrazek pokazuje działanie do obliczenia.
minLength
IntegerOpcjonalne
Najkrótsza możliwa odpowiedź. 0 oznacza brak limitu.
maxLength
IntegerOpcjonalne
Najdłuższa możliwa odpowiedź. 0 oznacza brak limitu.
comment
StringOpcjonalne
Instrukcja dla rozwiązującego, na przykład pytanie widoczne nad obrazkiem.
languagePool
StringOpcjonalne
Język odpowiedzi, na przykład en lub ru.

Pola niewymienione tutaj są przekazywane do rozwiązującego bez zmian.

Żądanie

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ImageToTextTask",
    "body": "/9j/4AAQSkZJRgABAQ...",
    "case": true
  }
}

Obiekt solution

Zwracany w solution, gdy status ma wartość ready.
text
String
Odpowiedź jako tekst.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "text": "w93bx"
  },
  "cost": "0.00025",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Przykłady kodu

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "ImageToTextTask",
      "body": "/9j/4AAQSkZJRgABAQ...",
      "case": true
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"]["text"])
        break
else:
    raise SystemExit("timed out")

Metoda formularza in.php

To samo zadanie przez klasyczne żądanie formularza. res.php zwraca odpowiedź jako tekst.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=base64&body=BASE64_IMAGE&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API formularzy: in.php i res.php