ฉันกำลังเขียนรหัสเพื่อตรวจสอบ URL ของ YouTube มันรับประกันได้หรือไม่ว่ารหัสวิดีโอเช่น oHg5SJYRHA0
ยาว 11 ตัวอักษรเสมอหรือบางครั้งอาจสั้นหรือยาวกว่าเดิม มีเอกสารอย่างเป็นทางการเกี่ยวกับเรื่องนี้หรือไม่?
ฉันกำลังเขียนรหัสเพื่อตรวจสอบ URL ของ YouTube มันรับประกันได้หรือไม่ว่ารหัสวิดีโอเช่น oHg5SJYRHA0
ยาว 11 ตัวอักษรเสมอหรือบางครั้งอาจสั้นหรือยาวกว่าเดิม มีเอกสารอย่างเป็นทางการเกี่ยวกับเรื่องนี้หรือไม่?
คำตอบ:
พวกเขาอาจจะติดอยู่ที่ 11 ตัวอักษรเป็นเวลานาน อักขระแต่ละตัวมีค่าที่เป็นไปได้ 64 ค่า:
2 * 26 ตัวอักษร (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) + 10 สำหรับตัวเลข + 2 สำหรับ "_" และ "-" ตัวอักษร
2 * 26 + 10 + 2 = 64
จากนั้นทั้งหมด 11 ตัวอักษร:
64 ^ 11 = 73786976294838210000 (หรือมากกว่าหรือน้อยกว่า "73,7e18")
แน่นอนว่าจะไม่มีการใช้ชุดค่าผสมทั้งหมดขึ้นอยู่กับอัลกอริทึมของตัวเอง แต่อาจจะไม่สามารถเปลี่ยนได้ตลอดเวลาในไม่ช้า คำพูดจากนักพัฒนาซอฟต์แวร์ของ YouTube ซึ่งพวกเขาไม่ได้รับประกันว่า:
ฉันไม่เห็นเอกสารใด ๆ ในเอกสารที่เรายอมรับอย่างเป็นทางการกับความยาวมาตรฐาน 11 ตัวอักษรสำหรับรหัสวิดีโอของ YouTube มันเป็นหนึ่งในสิ่งที่เรามีการนำไปปฏิบัติในปัจจุบันและมันอาจจะยังคงอยู่อย่างนั้นไปเรื่อย ๆ แต่เราไม่ได้ให้คำมั่นสัญญาอย่างเป็นทางการกับคุณดังนั้นดำเนินการด้วยความเสี่ยงของคุณเอง
วิธีที่ดีกว่าแม้ว่าจะเกี่ยวข้องมากกว่านั้นก็คือการใช้รหัสวิดีโอแต่ละรายการและส่งคำขอไปยัง YouTube API เพื่อดูว่ามันถูกต้องหรือไม่ เช่นทำให้ HTTP GET เป็น
http://gdata.youtube.com/feeds/api/videos/VIDEO_ID
และดูว่าคุณได้รับการตอบกลับ HTTP 200 หรือไม่ แน่นอนว่าหากคุณใช้วิธีการดังกล่าววิดีโอที่ถูกลบออกจาก YouTube จะกลับมาใช้งานไม่ได้ (ซึ่งอาจเป็นหรือไม่ใช่สิ่งที่คุณต้องการ) และวิดีโอที่อัปโหลดไปยัง YouTube เมื่อเร็ว ๆ นี้อาจกลับมาใช้งานไม่ได้อีกด้วย
ไชโย -Jeff Posnick, ทีม YouTube API
มีบางสิ่งที่ชี้ให้เห็นได้อย่างชัดเจน URL สองรายการชี้ไปที่วิดีโอเดียวกัน ตัวอย่างเช่นในวิดีโอที่โพสต์ด้านล่างพวกเขาคือ "รางวัลโนเบลปี 2015 ทั้งหมด" โดย Scishow:
นอกจากนี้หากคุณเปลี่ยนอักขระตัวสุดท้ายเป็นC
หรือD
จะใช้งานได้เช่นกัน