คุณสามารถส่งไฟล์รูปภาพ, ไฟล์ ZIP หรือลิงก์รูปภาพผ่านโปรแกรมภายนอก (Script, Bot, Workflow) เพื่อใช้ระบบหั่นภาพแนวยาว (Smart Split) และบีบอัดเป็น WebP (คุณภาพ 80%) ได้อัตโนมัติ โดยระบบจะส่งไฟล์ ZIP ผลลัพธ์กลับไปให้ทันที หรือคืนค่าเป็น JSON ตามที่ระบุ
| Header Key | Value | คำอธิบาย |
|---|---|---|
x-api-key | any-key | ระบุคีย์อะไรก็ได้ (ระบบรองรับเพื่อความเข้ากันได้) |
Content-Type | multipart/form-data | ฟอร์มส่งข้อมูลแบบไฟล์ |
| Field Name | Type | สถานะ | คำอธิบาย |
|---|---|---|---|
uploadType | string | Optional | zip (ค่าเริ่มต้น), img (หลายรูป), หรือ url_image (ลิงก์รูป) |
mangaZip | file | กรณี zip | ไฟล์ .zip ที่มีรูปการ์ตูนอยู่ภายใน |
mangaImages | file[] | กรณี img | ไฟล์รูปภาพหลายไฟล์พร้อมกัน |
mangaUrls | string | กรณี url_image | รายการลิงก์รูปภาพ เรียงบรรทัดละ 1 ลิงก์ (Newline-separated) |
referral | string | Optional | Header Referer ป้องกันเว็บรูปภาพบล็อกการดูด |
mangaName | string | Optional | ชื่อเรื่องมังงะ (ใช้ประกอบตั้งชื่อไฟล์ผลลัพธ์) |
chapterNumber | string | Optional | หมายเลขตอน เช่น 180 |
maxSplitHeight | number | Optional | ความสูงสูงสุดในการหั่นรูปภาพ ค่าเริ่มต้นคือ 8000 px |
responseType | string | Optional |
zip (ดาวน์โหลดไฟล์ .zip โดยตรง - ค่าเริ่มต้น)zip_url (คืนค่า JSON พร้อมลิงก์ดาวน์โหลด ZIP)url (คืนค่า JSON พร้อมรายการลิงก์รูปภาพ WebP)
|
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
}
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
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("ดาวน์โหลดและบันทึกไฟล์สำเร็จ!")
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())