https://easyf.appสร้างการดาวน์โหลดด้วย EasyF
EasyF แสดงอินเทอร์เฟซล่วงหน้าเพื่อให้นักพัฒนาสามารถประเมินงานของตนได้ จำเป็นต้องมีการตรวจสอบการสนับสนุนก่อนที่จะมีคีย์ใช้งานจริงและขอบเขตการใช้งาน
การเริ่มต้นอย่างรวดเร็ว
เพื่ออธิบายโฮสต์ API EasyF แยกข้อมูลรับรองที่เปิดใช้งานการสนับสนุนออกจากจุดสิ้นสุดผู้เช่าเฉพาะ กระบวนการทำงานภาษาธรรมดาให้เส้นทางการเรียกใช้เฉพาะเซิร์ฟเวอร์มีที่ของตัวเอง
X-API-Key: pending_activation_…EasyfClientv1# Available only after support activation
export EASYF_SERVICE_KEY="issued-after-review"
curl -X POST https://easyf.app/v1/resolve \
-H "X-API-Key: $EASYF_SERVICE_KEY" \
-H "Content-Type: application/json" \
-d '{"asset_url":"https://www.youtube.com/watch?v=VIDEO_ID"}'ความปลอดภัยของข้อมูลรับรองเริ่มต้นด้วยการจัดเก็บความลับฝั่งเซิร์ฟเวอร์บน EasyF มุมมองถัดไปครอบคลุมการไม่ฝังชุดไคลเอนต์ หน้าเว็บไม่เก็บบันทึกสาธารณะหรือที่เก็บข้อมูลที่มองเห็นได้
แก้ไขปัญหาการเชื่อมโยง
เพื่ออธิบายการทำงานของ Resolve, EasyF แยกการตรวจจับแหล่งที่มาจากรูปแบบจาก URL ที่ยื่นหนึ่ง กระบวนการทำงานภาษาธรรมดาให้ผลลัพธ์ที่ไม่มีการประดิษฐ์ที่ของตัวเอง
/v1/resolveขอบเขต: แก้ไข| ช่องข้อมูล | ชนิด | ต้องการ | คำอธิบาย |
|---|---|---|---|
asset_url | ที่อยู่ URL แบบ HTTPS | ใช่ | หน้าสื่อสาธารณะหรือที่ได้รับอนุญาตให้วิเคราะห์ |
tenant | ข้อความ | ไม่มี | โดเมนผู้เช่าที่ได้รับมอบหมาย โดยปกติจะถูกละเว้น |
{
"success": true,
"platform": "youtube",
"title": "Example video",
"formats": [
{"id":"18","type":"video","quality":"360p","container":"mp4"}
],
"cached": false
}ตัวระบุรูปแบบเริ่มต้นด้วยค่าที่ส่งกลับโดยไม่เปลี่ยนแปลงบน EasyF มุมมองถัดไปครอบคลุมความพร้อมใช้งานต่อแต่ละลิงก์ หน้าไม่แสดงป้ายคุณภาพที่คาดเดาไว้
สร้างและติดตามงานดาวน์โหลด
EasyF นำเสนอสามประเด็นปฏิบัติสำหรับการสร้างงาน ประการแรกคือการเตรียมการแบบอะซิงโครนัส ขั้นตอนการทำงานภาษาธรรมดาจึงครอบคลุมคำขอ HTTP สั้น ๆ จุดสุดท้ายคือการดำเนินการของพนักงานที่มีขอบเขตจำกัด
/v1/jobsขอบเขต: งาน| ช่องข้อมูล | ชนิด | ต้องการ | คำอธิบาย |
|---|---|---|---|
asset_url | ที่อยู่ URL แบบ HTTPS | ใช่ | เดียวกันแหล่งที่มาปกติยื่นให้แก้ไข |
variant_code | ข้อความ | ใช่ | หมายเลข ID ที่แน่นอนจากคำตอบการแก้ไข |
tenant | ข้อความ | ไม่มี | โดเมนผู้เช่าที่ได้รับมอบหมาย โดยปกติจะถูกละเว้น |
curl -X POST https://easyf.app/v1/jobs \
-H "X-API-Key: $EASYF_SERVICE_KEY" \
-H "Content-Type: application/json" \
-d '{"asset_url":"https://www.youtube.com/watch?v=VIDEO_ID","variant_code":"18"}'delivery_id.GET /v1/jobs/{delivery_id} ด้วยกุญแจเดียวกัน| สถานะ | ความหมาย | การกระทำของไคลเอนต์ |
|---|---|---|
queued | รับเข้าคิวที่กำหนดขอบเขต | โพลอีกครั้งด้วยการถอยหลัง |
extracting | กำลังรีเฟรชเมตาข้อมูลแหล่งหรือเส้นทาง | ทำการโพลต่อไป |
processing | การดาวน์โหลด รีมูซ หรือการรวม | แสดงความคืบหน้าของเซิร์ฟเวอร์ |
ready | ดาวน์โหลดที่ลงนามมีให้ | ส่ง URL ไปยังผู้ใช้ |
failed | ข้อผิดพลาดของโครงสร้างเทอร์มินัล | อ่านแล้ว error_codeลองใหม่เมื่อได้รับคำแนะนำเท่านั้น |
expired | ผลลัพธ์ชั่วคราวถูกลบออก | สร้างงานใหม่ |
curl https://easyf.app/v1/jobs/DELIVERY_ID \
-H "X-API-Key: $EASYF_SERVICE_KEY"EasyF เข้าใกล้การโหวตงานผ่านการรอในเบื้องต้นหนึ่งวินาทีแล้วปิดกั้นการถอยหลังกระบวนการทำงานภาษาธรรมดารักษาการส่งมอบที่ลงนามชั่วคราวอย่างชัดเจน
ความผิดพลาดที่คาดการณ์ได้
EasyF จัดระเบียบสัญญาข้อผิดพลาดรอบซองจดหมายที่ไม่ใช่ 2xx หนึ่งซอง กระบวนการทำงานภาษาธรรมดาเปรียบเทียบ ID คำขอสนับสนุน การจัดการไคลเอนต์ที่คาดเดาได้ยังคงเป็นการตรวจสอบขั้นสุดท้าย
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"category": "rate_limited",
"message": "Too many requests. Please try again shortly.",
"retryable": true,
"details": {"retry_after_seconds": 20}
},
"request_id": "…"
}| ข้อความ | ความหมายโดยทั่วไป | การกระทำ |
|---|---|---|
| 400 | URL ไม่ถูกต้อง, ส่วนตัว หรือ รูปแบบที่ไม่สามารถใช้ได้. | แก้ไขคำขอ แก้ไขอีกครั้งสำหรับรูปแบบ |
| 401 | คีย์หายไป ไม่ถูกต้อง หมดอายุ หรือมีขอบเขตไม่ถูกต้อง | ตรวจสอบข้อมูลประจำตัวด้านเซิร์ฟเวอร์ |
| 403 | นโยบายผู้เช่าหรือแหล่งที่มาปฏิเสธคำขอ | อย่าข้ามนโยบาย ติดต่อฝ่ายสนับสนุน |
| 404 | งานที่ไม่รู้จักหรือหมดอายุแล้ว | สร้างงานใหม่หากเหมาะสม |
| 429 | ถึงขีด จำกัด การร้องขอหรืองานที่ทำงานอยู่แล้ว | เกียรติ retry_after_seconds. |
| 503 | คิว/ความจุ หรือแหล่งข้อมูลต้นทางไม่พร้อมใช้งานชั่วคราว | ลองใหม่ด้วย backoff และ jitter แบบเอกซ์โพเนนเชียล |
สัญญาการดำเนินงาน
EasyF ตกลงข้อจำกัดการใช้ในทางปฏิบัติกับผลิตภัณฑ์ที่ได้รับอนุมัติแต่ละตัวเพื่อรักษากระบวนการทำงานที่นำทางได้ที่สามารถคาดการณ์ได้
- ใช้ตรรกะการใช้งาน idempotent และไม่เคยเริ่มงานซ้ำสำหรับคลิกเดียวกันของผู้ใช้
- แคชแก้ปัญหาข้อมูลกำกับโดยสั้น ๆ แต่มักจะปฏิบัติต่อ URL ดาวน์โหลดที่ลงนามว่าหมดอายุ
- ใช้ backoff แบบเอกซ์โพเนนเชียลที่มีขอบเขตด้วย jitter สำหรับ
429,503และความผิดพลาดที่สามารถลองใหม่ได้ - ประมวลผลเฉพาะสื่อสาธารณะหรือสื่อที่คุณได้รับอนุญาตให้เข้าถึง DRM และการควบคุมการเข้าถึงไม่ถูกข้าม
- เก็บหมายเลข ID คำขอและหมายเลข ID งานในบันทึกการทำงานส่วนตัว อย่าบันทึก URL ที่ส่งมาโดยไม่จำเป็น
เพื่ออธิบายการเข้าถึงสคีมา, EasyF แยกการเปิดใช้งานก่อนการสำรวจออกจากการตรวจสอบสิทธิ์ที่กำหนด กระบวนการทำงานภาษาธรรมดาจะให้รูปแบบคำขอที่มีเอกสารมีที่ของตัวเอง
กระตุ้นผ่านการสนับสนุน
บอก EasyF ว่าคุณกำลังสร้างอะไร ความถี่ที่มันจะเรียกใช้ API และผู้ให้บริการใดที่สำคัญ การตรวจสอบจะตัดสินการดำเนินการที่อนุญาต จากนั้นเปิดเผยข้อมูลรับรองเพียงครั้งเดียวในขณะที่บันทึกเฉพาะดิจิทัลที่ปลอดภัย
ขอให้เปิดใช้งาน กุญแจมีขอบเขตของผู้เช่าสามารถยกเลิกได้และออกโดยผ่านแบบฟอร์มติดต่อสคริปต์นิรนามไม่สามารถประมวลผลงานดาวน์โหลดได้