TikTok Captcha
अवलोकन
TikTok Captcha एक सत्यापन प्रणाली है जिसका उपयोग TikTok प्लेटफॉर्म को बॉट्स और स्पैम से बचाने के लिए करता है। यह कैप्चा आमतौर पर नया खाता पंजीकृत करते समय, लॉग इन करते समय, या असामान्य गतिविधि का पता चलने पर दिखाई देता है।
वर्तमान में, ब्राउज़र पर सभी 4 कैप्चा प्रकारों के लिए एक्सटेंशन उपलब्ध हैं। एक्सटेंशन प्राप्त करने के लिए कृपया व्यवस्थापक को इनबॉक्स करें। ब्राउज़र, एमुलेटर और फोन के लिए सभी कैप्चा प्रकार प्रदान करता है।

1. कार्य बनाएँ
अनुरोध
POST https://api.achicaptcha.com/createTask
पैरामीटर्स
| पैरामीटर | डेटा प्रकार | आवश्यक? | विवरण |
|---|---|---|---|
clientKey | string | हाँ | API key |
task.type | string | हाँ | TiktokCaptchaTask |
task.image | string | हाँ | छवि का Base64 |
task.subType | int | हाँ | कैप्चा प्रकार: 0 (ब्राउज़र पर रोटेट कैप्चा), 1 (स्लाइडर कैप्चा), 2 (2 समान वस्तुओं का चयन करें), 3 (फोन, एमुलेटर पर रोटेट कैप्चा), 5 (प्रश्न को पूरा करने वाली वस्तुओं का चयन करें) |
task.other | string | नहीं | subType 5 के लिए, यह फ़ील्ड आवश्यक है। कैप्चा प्रश्न, उदाहरण के लिए: "Which of these objects neighs" |
अनुरोध उदाहरण
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "TiktokCaptchaTask",
"image": "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...(10460 chars omitted)...V7Q4rk8i3IvOS/eZexY2wFyvTDXyzAWT5qNlUXkiKiAJVRdUYlkBFEQQRQEC2yAghRCyCWQSyBZAsgWQW1kCyCoCCoqIqoFkVCiCKXVC3ooCKKKxIRkhCxZw+Zj8FjMPpFmJjHRYdL69ad0OidK+5LIM1V6WM3fQBZRD5TbagWWbCZZKsVRiqqCIIindVil0UJQEQ5XRV5oiHZA3sgKBzRBFSyIHS6AgWRQa3RCyAgHZFUahA5ofAdkVLoKgnOyKE6KgoBQUDVGSE2CBYWUVjyRU5qMtgAKCAAqKoGqErZVFCrHYAqjIBRAKoiAqj//Z",
"subType": 2
}
}प्रतिक्रिया
सफल होने पर, सर्वर errorId = 0 और taskId लौटाएगा
{
"errorId": 0,
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}कैप्चा सॉल्विंग सर्वर को भेजने के लिए छवि नमूने
ब्राउज़र पर:
फ़ील्ड image = base64_outer_image|base64_inner_image


एमुलेटर, फोन पर:
फ़ील्ड image 1 छवि का base64 है, जिसे केवल रोटेट कैप्चा भाग को शामिल करने के लिए क्रॉप किया गया है (दोनों वृत्तों के साथ, मार्जिन पर अतिरिक्त सफेद स्थान हो सकता है, मार्जिन की लंबाई लचीली है)

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"
}प्रतिक्रिया का अर्थ
errorId = 0औरstatus = ready: सफलतापूर्वक हल किया गया,solutionमें परिणाम पढ़ेंerrorId = 1औरstatus = processing: कैप्चा हल किया जा रहा है, 1-2 सेकंड प्रतीक्षा करें और पुनः प्रयास करेंerrorId0 और 1 के अलावा: सिस्टम त्रुटि, त्रुटि कोड और विवरण प्रदान किया गयाsolution:- ब्राउज़र पर रोटेट कैप्चा के लिए: स्लाइडर ड्रैग दूरी की लंबाई लौटाता है
- एमुलेटर, फोन पर रोटेट कैप्चा के लिए: रोटेशन कोण लौटाता है, उपयोगकर्ता सूत्र का उपयोग करके ड्रैग दूरी की गणना करता है: ड्रैग दूरी = (L / 180) * solution (जहाँ L स्लाइडर की शुरुआत से अंत तक की दूरी है, स्लाइडर के केंद्र से मापा जाता है)
- स्लाइडर कैप्चा के लिए: खींचने के लिए x-अक्ष निर्देशांक लौटाता है
- 2 समान वस्तुओं का चयन करें कैप्चा के लिए: छवि पर क्लिक करने के लिए निर्देशांक की जोड़ी "x1,y1,x2,y2" लौटाता है
- प्रश्न को पूरा करने वाली कई वस्तुओं का चयन करें कैप्चा के लिए: छवि पर क्लिक करने के लिए निर्देशांक "x1,y1,x2,y2,x3,y3,..." लौटाता है
एकीकरण उदाहरण
import requests
import time
import base64
def solve_tiktok_captcha(image_base64, sub_type, question=None, api_key='YOUR_API_KEY'):
# Step 1: Create task
task = {
'type': 'TiktokCaptchaTask',
'image': image_base64,
'subType': sub_type
}
# If subType = 5, add other field (question)
if sub_type == 5 and question:
task['other'] = question
create_task_url = 'https://api.achicaptcha.com/createTask'
create_task_payload = {
'clientKey': api_key,
'task': task
}
response = requests.post(create_task_url, json=create_task_payload)
result = response.json()
if result['errorId'] != 0:
raise Exception(result.get('errorDescription', 'Unknown error'))
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 and result.get('status') == 'ready':
return result['solution']
if result['errorId'] == 1 and result.get('status') == 'processing':
# Continue waiting
continue
# Other errors
raise Exception(result.get('errorDescription', 'Unknown error'))
# Usage - Example with select 2 objects captcha (subType = 2)
with open('captcha_image.png', 'rb') as f:
image_base64 = base64.b64encode(f.read()).decode('utf-8')
sub_type = 2 # 0: Rotate browser, 1: Slider, 2: Select 2 objects, 3: Rotate phone, 5: Select by question
solution = solve_tiktok_captcha(image_base64, sub_type, api_key='YOUR_API_KEY')
print('TikTok captcha solution:', solution) # "x1,y1,x2,y2"सामान्य त्रुटि कोड
कार्य बनाते समय त्रुटि कोड
| त्रुटि कोड | विवरण | नोट्स |
|---|---|---|
| 0 | success | कार्य सफलतापूर्वक बनाया गया |
| 2 | missing required fields | आवश्यक फ़ील्ड गायब है, पैरामीटर (image, subType) की जाँच करें |
| 3 | task not supported | कार्य प्रकार समर्थित नहीं है |
| 4 | task creation failed | कार्य निर्माण विफल, बाद में पुनः प्रयास करें |
| 5 | client key does not exist | API कुंजी मौजूद नहीं है, अपनी API कुंजी की जाँच करें |
| 6 | insufficient account balance | अपर्याप्त खाता शेष, क्रेडिट टॉप अप करें |
परिणाम प्राप्त करते समय त्रुटि कोड
| त्रुटि कोड | विवरण | नोट्स |
|---|---|---|
| 0 | success | सफलता, solution फ़ील्ड में परिणाम पढ़ें |
| 1 | processing | प्रसंस्करण, 1-2 सेकंड प्रतीक्षा करें और अनुरोध फिर से भेजें |
| 5 | client key does not exist | API कुंजी मौजूद नहीं है, अपनी API कुंजी की जाँच करें |
| 7 | task failed, please create a new task | कार्य विफल, कृपया एक नया कार्य बनाएँ |
| 8 | task ID does not exist | कार्य ID मौजूद नहीं है या समाप्त हो गया है |
सर्वोत्तम प्रथाएँ
Achicaptcha API का उपयोग करते समय सर्वोत्तम परिणाम प्राप्त करने के लिए, इन सिद्धांतों का पालन करें:
1. सही कैप्चा प्रकार और subType की पहचान करें
- TikTok विभिन्न प्रकार के कैप्चा का उपयोग करता है
- प्रदर्शित किए जा रहे कैप्चा के प्रकार का सटीक पता लगाएं
- अनुरोध में सही
subTypeभेजें:0: ब्राउज़र पर रोटेट कैप्चा1: स्लाइडर कैप्चा2: 2 समान वस्तुओं का चयन करें3: फोन, एमुलेटर पर रोटेट कैप्चा5: प्रश्न को पूरा करने वाली वस्तुओं का चयन करें (otherफ़ील्ड की आवश्यकता है)
2. छवियों को सही ढंग से प्रारूपित करें
- ब्राउज़र पर रोटेट कैप्चा:
base64_outer_image|base64_inner_imageभेजें - फोन/एमुलेटर पर रोटेट कैप्चा: 1 छवि का base64 भेजें (जिसमें केवल रोटेट कैप्चा भाग हो)
- अन्य प्रकार: संबंधित छवि का base64 भेजें
- सुनिश्चित करें कि छवियां उचित base64 प्रारूप में एन्कोड की गई हैं
3. परिणामों को ठीक से संभालें
- एमुलेटर/फोन पर रोटेट कैप्चा के लिए: ड्रैग दूरी सूत्र से निकालें: ड्रैग दूरी = (L / 180) * solution
ऊपर दिखाए अनुसार L मापें: यह ड्रैग गणना के लिए लंबाई है - वस्तुओं का चयन करें कैप्चा के लिए: क्लिक पॉइंट प्राप्त करने हेतु "x1,y1,x2,y2" निर्देशांक स्ट्रिंग को पार्स करें
- स्लाइडर कैप्चा के लिए: स्लाइडर को खींचने हेतु लौटाए गए x निर्देशांक का उपयोग करें
4. पोलिंग अंतराल
- परिणाम जाँचों के बीच कम से कम 1-2 सेकंड प्रतीक्षा करें
- बहुत अधिक लगातार अनुरोधों के साथ API को स्पैम न करें
- अनंत लूप से बचने के लिए टाइमआउट रखें (120 सेकंड अनुशंसित)
5. त्रुटि प्रबंधन
- प्रतीक्षा जारी रखने के लिए
errorId = 1औरstatus = processingकी जाँच करें - अन्य त्रुटियों को उचित रूप से संभालें
- अस्थायी त्रुटियों के लिए पुनः प्रयास तर्क लागू करें
6. API कुंजी सुरक्षा
- कोड में API कुंजी को हार्डकोड न करें
- पर्यावरण चर (environment variables) का उपयोग करें
- क्लाइंट-साइड पर API कुंजी को उजागर न करें
उपयोगी लिंक: