hCAPTCHA Image
अवलोकन
hCaptcha Image एक कैप्चा प्रकार है जिसके लिए उपयोगकर्ताओं को आवश्यकताओं, क्लिक बिंदुओं के अनुसार छवियों को पहचानने और चुनने या छवियों को खींचने की आवश्यकता होती है।
hCaptcha Token का व्यापक रूप से कई वेबसाइटों जैसे Cloudflare, Discord, OpenSea और कई अन्य सेवाओं पर बॉट्स से बचाने के लिए उपयोग किया जाता है।

1. कार्य बनाएँ
अनुरोध
POST https://api.achicaptcha.com/createTask
पैरामीटर्स
| पैरामीटर नाम | डेटा प्रकार | आवश्यक? | विवरण |
|---|---|---|---|
clientKey | string | हाँ | Api key |
task.type | string | हाँ | HCaptchaImageTask |
task.subType | string | हाँ | मान 0 के बराबर है |
task.image | string | हाँ | | द्वारा अलग की गई base64 छवियों की सूचीbase64_question1|base64_question2|...|base64_question9|base64_sample1|base64_sample2|...|base64_sampleNनोट: नमूना छवियां मौजूद हो भी सकती हैं और नहीं भी। छवियों को base64 में एन्कोड किया जाना चाहिए |
task.other | string | हाँ | प्रश्न|छवि गणना|कैप्चा प्रकार उदाहरण: "Please identify and click on all pictures featuring a bird|9|grid"- प्रश्न: "Please identify and click on all pictures featuring a bird" - छवि गणना: 9 (केवल question ग्रिड में छवियों की गणना करें, sample छवियों की नहीं)- कैप्चा प्रकार: grid (9 कोशिकाओं में से उन कोशिकाओं का चयन करें जो शर्त को पूरा करती हैं) या bbox (शर्त को पूरा करने वाली वस्तु को चिह्नित करने के लिए एक/कई बिंदुओं पर क्लिक करें या खींचें) या drag (पूर्ण छवि बनाने के लिए एक/कई पहेली के टुकड़ों को खींचें) |
अनुरोध उदाहरण
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "HCaptchaImageTask",
"subType": "0",
"image": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==|iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==|...(9 base64 images joined by |)",
"other": "Please identify and click on all pictures featuring a bird|9|grid"
}
}प्रतिक्रिया
सफल होने पर, सर्वर errorId = 0 और taskId लौटाता है
{
"errorId": 0,
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}कैप्चा सर्वर को भेजने के लिए छवि उदाहरण
टिप: सर्वोत्तम कैप्चा पहचान गुणवत्ता के लिए, अपनी छवि को नीचे दिए गए उदाहरण चित्रों में लाल और बैंगनी बक्सों के अनुसार क्रॉप करें।
सुनिश्चित करें कि क्रॉप की गई छवि का रेज़ोल्यूशन कम से कम 500–600 पिक्सेल चौड़ाई/ऊँचाई हो ताकि सर्वोत्तम परिणाम मिल सकें।

2. परिणाम प्राप्त करें
अनुरोध
POST https://api.achicaptcha.com/getTaskResult
पैरामीटर्स
| पैरामीटर नाम | डेटा प्रकार | आवश्यक? | विवरण |
|---|---|---|---|
clientKey | string | हाँ | Api key |
taskId | string | हाँ | (1) से प्राप्त TaskId |
अनुरोध उदाहरण
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}प्रतिक्रिया
{
"errorId": 0,
"status": "ready",
// solution: क्लिक करने के लिए बिंदुओं के निर्देशांक (x1,y1,x2,y2,...)
"solution": "20,30,40,50"
}स्थिति स्पष्टीकरण
errorId = 0औरstatus = ready: सफलतापूर्वक हल किया गया,solution.gRecaptchaResponseमें परिणाम पढ़ेंerrorId = 0औरstatus = processing: कैप्चा हल किया जा रहा है, 2 सेकंड प्रतीक्षा करें और पुनः प्रयास करेंerrorId > 0: सिस्टम त्रुटि, त्रुटि कोड और विवरण लौटाता है
एकीकरण उदाहरण
import requests
import time
import base64
def image_url_to_base64(url):
"""Convert image URL to base64"""
response = requests.get(url)
return base64.b64encode(response.content).decode('utf-8')
def solve_hcaptcha_image(image_base64_list, question, image_count, captcha_type, api_key='YOUR_API_KEY'):
# Step 1: Create task
create_task_url = 'https://api.achicaptcha.com/createTask'
create_task_payload = {
'clientKey': api_key,
'task': {
'type': 'HCaptchaImageTask',
'subType': '0',
'image': image_base64_list,
'other': f'{question}|{image_count}|{captcha_type}'
}
}
response = requests.post(create_task_url, json=create_task_payload)
result = response.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
task_id = result['taskId']
# Step 2: Get result
get_result_url = 'https://api.achicaptcha.com/getTaskResult'
while True:
time.sleep(2) # Wait 2 seconds
get_result_payload = {
'clientKey': api_key,
'taskId': task_id
}
response = requests.post(get_result_url, json=get_result_payload)
result = response.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
if result['status'] == 'ready':
return result['solution']['gRecaptchaResponse']
# If status == 'processing', continue loop
# Usage
# Convert image URLs to base64
image_urls = [
'https://example.com/image1.jpg',
'https://example.com/image2.jpg',
# ... other images
'https://example.com/image9.jpg'
]
base64_images = [image_url_to_base64(url) for url in image_urls]
image_base64_list = '|'.join(base64_images)
question = 'Please identify and click on all pictures featuring a bird'
image_count = 9
captcha_type = 'grid' # or 'bbox'
token = solve_hcaptcha_image(image_base64_list, question, image_count, captcha_type, 'YOUR_API_KEY')
print('hCaptcha token:', token)सामान्य त्रुटि कोड
| त्रुटि कोड | विवरण | नोट्स |
|---|---|---|
| 0 | success | सफलता |
| 1 | processing | प्रसंस्करण |
| 2 | missing required fields | आवश्यक फ़ील्ड गायब है, पैरामीटर फिर से जाँचें |
| 3 | task not supported | कार्य प्रकार समर्थित नहीं है |
| 4 | task creation failed | कार्य निर्माण विफल |
| 5 | client key does not exist | API कुंजी मौजूद नहीं है, API कुंजी फिर से जाँचें |
| 6 | insufficient account balance | अपर्याप्त खाता शेष, क्रेडिट टॉप अप करें |
| 7 | task failed, please create a new task | कार्य विफल, कृपया एक नया कार्य बनाएँ |
| 8 | task ID does not exist | कार्य ID मौजूद नहीं है |
सर्वोत्तम प्रथाएँ
Achicaptcha API का उपयोग करते समय सर्वोत्तम परिणामों के लिए, इन सिद्धांतों का पालन करें:
1. इनपुट डेटा मान्य करें
- अनुरोध भेजने से पहले छवि सूची की जाँच करें
- भेजने से पहले छवियों को base64 में एन्कोड किया जाना चाहिए
- सही प्रारूप सुनिश्चित करें:
base64_image1|base64_image2|...|base64_image9या अतिरिक्त नमूना छवियों के साथ - सत्यापित करें कि प्रश्न और कैप्चा प्रकार (grid/bbox) सटीक हैं
- छवि गणना ग्रिड में छवियों की वास्तविक संख्या से मेल खानी चाहिए
2. कई राउंड संभालें
- hCaptcha को कई लगातार राउंड हल करने की आवश्यकता हो सकती है
- Achicaptcha API इन राउंड को स्वचालित रूप से संभालता है
- हल करने का समय टेक्स्ट कैप्चा (15-30 सेकंड) से अधिक हो सकता है
3. पोलिंग अंतराल
- परिणाम जाँचों के बीच कम से कम 2 सेकंड प्रतीक्षा करें
- बहुत अधिक लगातार अनुरोधों के साथ API को स्पैम न करें
- अनंत लूप से बचने के लिए टाइमआउट सेट करें (120 सेकंड अनुशंसित)
4. पुनः प्रयास तर्क
ERROR_NO_SLOT_AVAILABLEजैसी अस्थायी त्रुटियों के लिए पुनः प्रयास लागू करें- पुनः प्रयास करते समय घातीय बैकऑफ़ (exponential backoff) का उपयोग करें
- अधिकतम पुनः प्रयास प्रयासों को सीमित करें
5. API कुंजी सुरक्षा
- कोड में API कुंजी को हार्डकोड न करें
- पर्यावरण चर (environment variables) का उपयोग करें
- क्लाइंट-साइड पर API कुंजी को उजागर न करें
उपयोगी लिंक: