Skip to content
API
Tiktok Captcha

TikTok Captcha

ภาพรวม

TikTok Captcha เป็นระบบตรวจสอบที่ TikTok ใช้เพื่อปกป้องแพลตฟอร์มจากบอทและสแปม แคปช่านี้มักจะปรากฏขึ้นเมื่อลงทะเบียนบัญชีใหม่ เข้าสู่ระบบ หรือเมื่อตรวจพบกิจกรรมที่ผิดปกติ

🎵

ปัจจุบันมีส่วนขยายสำหรับแคปช่าทั้ง 4 ประเภทบนเบราว์เซอร์ โปรด inbox หา admin เพื่อรับส่วนขยาย ให้บริการแคปช่าทุกประเภทสำหรับเบราว์เซอร์ อีมูเลเตอร์ และโทรศัพท์

Rotate Captcha

1. สร้างงาน

คำขอ

POST https://api.achicaptcha.com/createTask

พารามิเตอร์

พารามิเตอร์ชนิดข้อมูลจำเป็น?คำอธิบาย
clientKeystringใช่คีย์ API
task.typestringใช่TiktokCaptchaTask
task.imagestringใช่Base64 ของรูปภาพ
task.subTypeintใช่ประเภทแคปช่า: 0 (Rotate captcha บนเบราว์เซอร์), 1 (Slider captcha), 2 (เลือกวัตถุที่เหมือนกัน 2 ชิ้น), 3 (Rotate captcha บนโทรศัพท์, อีมูเลเตอร์), 5 (เลือกวัตถุที่ตรงกับคำถาม)
task.otherstringไม่สำหรับ 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": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCADUAVQDAREAAhEBAxEB/8QAHQABAQACAwEBAQAAAAAAAAAAAAECBwQFBgMICf/EAEEQAAEDAgQDBQcDAgMGBwAAAAEAAgMEEQUGITESQVEHE2FxgRQiMkKRobEVI1LB0WJy4QgWJDND8Bc0U2OSovH/xAAbAQEBAAMBAQEAAAAAAAAAAAAAAQIFBgQDB//EADQRAQACAgEDAwEGBQQCAwAAAAABAgMRBBIhMQUTQVEGIjJhkbFCcYGh0RQjwfAzQ1KS4f/aAAwDAQACEQMRAD8A/poBp1WLIQEBFOaIckD7FAQVBNQgoQOiBdAQEUCIpQEUuiCANEBBbaoCBugBA+yBfVAvsgo+6BeyAgX8UC6CXRS/VEW6BdBLoCAgc0DVB80FughQXl1QDugIHJFEQGiAUAIAQN0BFXZVDYXUHziqYagXiljlHVjg78LKazHiFlmJjxD6WIWKCoXCgEoKil0Q2QCgc0AICAgXQUHZAugiAgt0EQEFv4IJdAQEC/NBQg+aBrdAQB0QLoLv5oJ1QVBEFGqCIKqJyUFVC6Dx3avmKXLuTZ5YbtkqHim4xuwOvcjxsCPVe7hYoy5oi3iO738LFGbNEW8R3fnyDF2REGOZ8J5FpI/C7CemfLrpiJ8w7iizxi1LpT4zUsA5d8T9ivhbj4L+aw+FuPht5pDvKPtYzJT2/45lQOksTXfgBee3p/Ht/Dp5ren8e38Onc0vbhisdhUUNLOOrS5h/JXmt6Vin8Nph57el45/DaYbRypjc+YsEhxCej9i765ZHx8V28nbc1oeRijDkmlZ3pos+OMWSaRO9O3BsvM85ugIGyATqgqASgl0FIQLoF7IH5QL6IJ4oKgfhA8kEQW90C6CIKCUVgiCBdAQEAoJ5oKCgKhyQAgKBdULoBQefzxlCLO2C/p01S+laJWyiRjQ43AOlj5r08fPPHv1xG3q4+eePfriNtYVn+ztVtuaTGYZOgnhLfwStvX1Sv8VW3r6pX+KjoqzsKzPTXMTKWqH/7c1if8A5AL0V9RwT53D019SwT53Dy2PZRxfKpi/U6N9J3pIjJcCHW3tYr2Ys+PN/wAL+Jpt55K9s+lU12tL2T6VTXa0vc5S7ScNzVIKf3qKut/5eU34v8p5/lani8PJx+89...(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

Rotate Captcha - Outer Image
Rotate Captcha - Inner Image

บนอีมูเลเตอร์, โทรศัพท์:

ฟิลด์ image คือ base64 ของ 1 รูปภาพ ที่ตัดมาให้เหลือเฉพาะส่วน rotate captcha (มีวงกลมทั้งสองวง สามารถมีพื้นที่ว่างที่ขอบได้ ความยาวขอบยืดหยุ่น)

Rotate Captcha on phone

2. รับผลลัพธ์

คำขอ

POST https://api.achicaptcha.com/getTaskResult

พารามิเตอร์

พารามิเตอร์ชนิดข้อมูลจำเป็น?คำอธิบาย
clientKeystringใช่คีย์ API จากเว็บไซต์
taskIdstringใช่TaskId จากขั้นตอน (1)

ตัวอย่างคำขอ

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 วินาทีแล้วลองอีกครั้ง
  • errorId อื่นที่ไม่ใช่ 0 และ 1: ข้อผิดพลาดของระบบ ระบุรหัสข้อผิดพลาดและคำอธิบาย
  • solution:
    • สำหรับ rotate captcha บนเบราว์เซอร์: ส่งคืนความยาวของระยะทางที่จะลากสไลเดอร์
    • สำหรับ rotate captcha บนอีมูเลเตอร์, โทรศัพท์: ส่งคืนมุมหมุน ผู้ใช้คำนวณระยะทางลากโดยใช้สูตร: ระยะทางลาก = (L / 180) * solution (โดยที่ L คือระยะทางจากจุดเริ่มต้นถึงจุดสิ้นสุดของสไลเดอร์ วัดจากกึ่งกลางของสไลเดอร์)
    • สำหรับ slider captcha: ส่งคืนพิกัดแกน x ที่จะลาก
    • สำหรับ select 2 similar objects captcha: ส่งคืนคู่พิกัดที่จะคลิกบนรูปภาพ "x1,y1,x2,y2"
    • สำหรับ select multiple objects that satisfy question captcha: ส่งคืนพิกัดที่จะคลิกบนรูปภาพ "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"

รหัสข้อผิดพลาดทั่วไป

รหัสข้อผิดพลาดเมื่อสร้างงาน

รหัสข้อผิดพลาดคำอธิบายหมายเหตุ
0successสร้างงานสำเร็จ
2missing required fieldsขาดฟิลด์ที่จำเป็น ตรวจสอบพารามิเตอร์ (image, subType)
3task not supportedไม่รองรับประเภทงาน
4task creation failedการสร้างงานล้มเหลว ลองใหม่อีกครั้งในภายหลัง
5client key does not existไม่มีคีย์ API ตรวจสอบคีย์ API ของคุณ
6insufficient account balanceยอดเงินในบัญชีไม่เพียงพอ เติมเครดิต

รหัสข้อผิดพลาดเมื่อรับผลลัพธ์

รหัสข้อผิดพลาดคำอธิบายหมายเหตุ
0successสำเร็จ อ่านผลลัพธ์ในฟิลด์ solution
1processingกำลังประมวลผล รอ 1-2 วินาทีแล้วส่งคำขออีกครั้ง
5client key does not existไม่มีคีย์ API ตรวจสอบคีย์ API ของคุณ
7task failed, please create a new taskงานล้มเหลว โปรดสร้างงานใหม่
8task ID does not existไม่มี ID งานหรือหมดอายุแล้ว

แนวทางปฏิบัติที่ดีที่สุด

เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดเมื่อใช้ Achicaptcha API ให้ปฏิบัติตามหลักการเหล่านี้:

1. ระบุประเภท Captcha และ subType ที่ถูกต้อง

  • TikTok ใช้แคปช่าหลายประเภท
  • ตรวจจับประเภทของแคปช่าที่แสดงอยู่อย่างแม่นยำ
  • ส่ง subType ที่ถูกต้องในคำขอ:
    • 0: Rotate captcha บนเบราว์เซอร์
    • 1: Slider captcha
    • 2: เลือกวัตถุที่เหมือนกัน 2 ชิ้น
    • 3: Rotate captcha บนโทรศัพท์, อีมูเลเตอร์
    • 5: เลือกวัตถุที่ตรงกับคำถาม (ต้องมีฟิลด์ other)

2. จัดรูปแบบรูปภาพให้ถูกต้อง

  • Rotate captcha บนเบราว์เซอร์: ส่ง base64_outer_image|base64_inner_image
  • Rotate captcha บนโทรศัพท์/อีมูเลเตอร์: ส่ง base64 ของ 1 รูปภาพ (ที่มีเฉพาะส่วน rotate captcha)
  • ประเภทอื่นๆ: ส่ง base64 ของรูปภาพที่เกี่ยวข้อง
  • ตรวจสอบให้แน่ใจว่ารูปภาพถูกเข้ารหัสในรูปแบบ base64 ที่ถูกต้อง

3. จัดการผลลัพธ์อย่างเหมาะสม

  • สำหรับ rotate captcha บนอีมูเลเตอร์/โทรศัพท์: คำนวณระยะทางลากโดยใช้สูตร: ระยะทางลาก = (L / 180) * solution
    วิธีวัด L สำหรับลาก rotate captcha
    วัด L ตามตัวอย่างด้านบน: ความยาวสำหรับใช้คำนวณระยะทางลาก
  • สำหรับ เลือกวัตถุ captcha: แยกสตริงพิกัด "x1,y1,x2,y2" เพื่อรับจุดคลิก
  • สำหรับ slider captcha: ใช้ค่า x ที่ส่งคืนเพื่อลาก slider

4. ช่วงเวลาการตรวจสอบ

  • รออย่างน้อย 1-2 วินาทีระหว่างการตรวจสอบผลลัพธ์
  • อย่าสแปม API ด้วยคำขอที่ต่อเนื่องกันมากเกินไป
  • ตั้งค่าการหมดเวลาเพื่อหลีกเลี่ยงลูปไม่สิ้นสุด (แนะนำ 120 วินาที)

5. การจัดการข้อผิดพลาด

  • ตรวจสอบ errorId = 1 และ status = processing เพื่อรอต่อไป
  • จัดการข้อผิดพลาดอื่นๆ อย่างเหมาะสม
  • ใช้ตรรกะการลองใหม่สำหรับข้อผิดพลาดชั่วคราว

6. ความปลอดภัยของคีย์ API

  • อย่าฮาร์ดโค้ดคีย์ API ในโค้ด
  • ใช้ตัวแปรสภาพแวดล้อม
  • อย่าเปิดเผยคีย์ API ทางฝั่งไคลเอนต์

ลิงก์ที่มีประโยชน์: