⬅️ ย้อนกลับหน้าหลัก

🔑 Webtoon Splitter Pro — External API

⚡ ตัวอย่างโค้ด

📦 ภาพรวมระบบ API

คุณสามารถส่งไฟล์รูปภาพ, ไฟล์ ZIP หรือลิงก์รูปภาพผ่านโปรแกรมภายนอก (Script, Bot, Workflow) เพื่อใช้ระบบหั่นภาพแนวยาว (Smart Split) และบีบอัดเป็น WebP (คุณภาพ 80%) ได้อัตโนมัติ โดยระบบจะส่งไฟล์ ZIP ผลลัพธ์กลับไปให้ทันที หรือคืนค่าเป็น JSON ตามที่ระบุ

🔗 HTTP Endpoint

POST /api/external/optimize

🔑 Headers

Header KeyValueคำอธิบาย
x-api-keyany-keyระบุคีย์อะไรก็ได้ (ระบบรองรับเพื่อความเข้ากันได้)
Content-Typemultipart/form-dataฟอร์มส่งข้อมูลแบบไฟล์

📋 Request Body (Form Data)

Field NameTypeสถานะคำอธิบาย
uploadTypestringOptionalzip (ค่าเริ่มต้น), img (หลายรูป), หรือ url_image (ลิงก์รูป)
mangaZipfileกรณี zipไฟล์ .zip ที่มีรูปการ์ตูนอยู่ภายใน
mangaImagesfile[]กรณี imgไฟล์รูปภาพหลายไฟล์พร้อมกัน
mangaUrlsstringกรณี url_imageรายการลิงก์รูปภาพ เรียงบรรทัดละ 1 ลิงก์ (Newline-separated)
referralstringOptionalHeader Referer ป้องกันเว็บรูปภาพบล็อกการดูด
mangaNamestringOptionalชื่อเรื่องมังงะ (ใช้ประกอบตั้งชื่อไฟล์ผลลัพธ์)
chapterNumberstringOptionalหมายเลขตอน เช่น 180
maxSplitHeightnumberOptionalความสูงสูงสุดในการหั่นรูปภาพ ค่าเริ่มต้นคือ 8000 px
responseTypestringOptional zip (ดาวน์โหลดไฟล์ .zip โดยตรง - ค่าเริ่มต้น)
zip_url (คืนค่า JSON พร้อมลิงก์ดาวน์โหลด ZIP)
url (คืนค่า JSON พร้อมรายการลิงก์รูปภาพ WebP)

💡 รูปแบบผลตอบกลับ (Response Format)

1. กรณี responseType = zip (Default): ดาวน์โหลดไฟล์ไบนารี .zip ผลลัพธ์ทันที

2. กรณี responseType = zip_url: คืนค่า JSON สำหรับนำลิงก์ไปดาวน์โหลดต่อ

{
  "success": true,
  "jobId": "ext_9a12bc",
  "responseType": "zip_url",
  "expiresIn": "30 minutes",
  "downloadUrl": "https://webtoonsplitter.duckdns.org/download/ext_9a12bc",
  "zipName": "SoloLeveling_ch_180_optimized.zip"
}

3. กรณี responseType = url: คืนค่า JSON รายการลิงก์รูปภาพที่หั่นและบีบอัดแล้ว

{
  "success": true,
  "jobId": "ext_9a12bc",
  "responseType": "url",
  "expiresIn": "30 minutes",
  "images": [
    "https://webtoonsplitter.duckdns.org/api/external/files/ext_9a12bc/001.webp",
    "https://webtoonsplitter.duckdns.org/api/external/files/ext_9a12bc/002.webp"
  ],
  "totalImages": 2
}

💻 ตัวอย่างการเรียกใช้งาน (Code Examples)

📂 ตัวอย่างที่ 1: ส่งไฟล์ ZIP (cURL)

curl -X POST https://webtoonsplitter.duckdns.org/api/external/optimize   -H "x-api-key: mykey"   -F "uploadType=zip"   -F "mangaName=OnePiece"   -F "chapterNumber=1110"   -F "mangaZip=@/path/to/your_manga.zip"   -o OnePiece_ch_1110_optimized.zip

🖼️ ตัวอย่างที่ 2: ส่งหลายรูปภาพพร้อมกัน (Python)

import requests

url = "https://webtoonsplitter.duckdns.org/api/external/optimize"
files = [
    ("mangaImages", ("01.jpg", open("01.jpg", "rb"), "image/jpeg")),
    ("mangaImages", ("02.jpg", open("02.jpg", "rb"), "image/jpeg"))
]
data = {
    "uploadType": "img",
    "mangaName": "Naruto",
    "chapterNumber": "700",
    "maxSplitHeight": "8000"
}
resp = requests.post(url, files=files, data=data)
with open("Naruto_ch_700_optimized.zip", "wb") as f:
    f.write(resp.content)
print("ดาวน์โหลดและบันทึกไฟล์สำเร็จ!")

🔗 ตัวอย่างที่ 3: ส่งลิงก์รูปภาพผ่าน URL (Python)

import requests

url = "https://webtoonsplitter.duckdns.org/api/external/optimize"
data = {
    "uploadType": "url_image",
    "responseType": "url",
    "mangaName": "SoloLeveling",
    "chapterNumber": "180",
    "mangaUrls": "https://example.com/p1.jpg\nhttps://example.com/p2.jpg",
    "maxSplitHeight": "8000"
}
resp = requests.post(url, data=data)
print(resp.json())