คำขอ YouTube Data API แต่ละรายการจะระบุเวอร์ชันของ API ที่ YouTube ควรใช้เพื่อจัดการคำขอนั้นได้ หากคำขอไม่ได้ระบุเวอร์ชัน API ไว้ YouTube จะใช้ API เวอร์ชันเก่าที่สุดที่รองรับเพื่อจัดการคำขอนั้น เวอร์ชันเก่าที่สุดที่รองรับในปัจจุบันคือ 1 โปรดสังเกตลักษณะของหมายเลขเวอร์ชัน API ต่อไปนี้
-
YouTube อาจเผยแพร่การอัปเดต API เวอร์ชันหนึ่งๆ ซึ่งไม่ได้กำหนดหมายเลขเวอร์ชันใหม่ การอัปเดตที่เข้ากันได้แบบย้อนหลังเหล่านี้อาจรวมถึงฟีเจอร์ API ที่ไม่บังคับ การแก้ไขข้อบกพร่อง หรือทั้ง 2 อย่าง
-
การเพิ่มหมายเลขเวอร์ชัน API จะระบุรุ่นที่มีการเปลี่ยนแปลงซึ่งเข้ากันไม่ได้กับ API เวอร์ชันก่อนหน้า
เอกสารนี้กำหนดหลักเกณฑ์ความเข้ากันได้ย้อนหลังสำหรับการอัปเดต API เวอร์ชันที่เฉพาะเจาะจง ซึ่งเป็นรายการแรกในรายการด้านบน หลักเกณฑ์นี้มีไว้เพื่อแยกความแตกต่างระหว่างฟังก์ชันการทำงานของ API ประเภทต่างๆ ต่อไปนี้
-
หลักเกณฑ์จะระบุฟังก์ชันการทำงานของ API ที่อาจเปลี่ยนแปลงแม้ว่าคุณจะไม่ได้แก้ไขเวอร์ชัน API ที่ควรใช้เพื่อจัดการคำขอ API ก็ตาม โค้ดของคุณควรจัดการการเปลี่ยนแปลงเหล่านี้โดยไม่ทำให้ระบบขัดข้อง ตัวอย่างเช่น หาก YouTube เพิ่มแท็ก XML ใหม่ในการตอบกลับของ API โค้ดของคุณควรละเว้นแท็กเหล่านั้น
-
หลักเกณฑ์นี้ยังกำหนดฟังก์ชันการทำงานของ API ที่ YouTube ไม่มีความตั้งใจที่จะเปลี่ยนแปลงเมื่ออัปเดต API เวอร์ชันหนึ่งๆ ด้วย กล่าวคือ คุณควรคาดหวังว่าฟังก์ชันการทำงานดังกล่าวจะเปลี่ยนแปลงก็ต่อเมื่อ YouTube เปิดตัว API เวอร์ชันใหม่ และโค้ดของคุณไม่จําเป็นต้องพยายามจัดการกับการเปลี่ยนแปลงประเภทนี้
เกี่ยวกับเอกสารนี้
เอกสารนี้ประกอบด้วยส่วนต่อไปนี้
-
ส่วนคำขอ API จะกำหนดหลักเกณฑ์ความเข้ากันได้แบบย้อนหลังที่เกี่ยวข้องกับส่วนหัวคำขอ HTTP, พารามิเตอร์คำขอ API, ชื่อองค์ประกอบ XML (ตามที่ปรากฏในคำขอ API) และคำขอ API ที่มีรูปแบบไม่ถูกต้อง
-
ส่วนการตอบกลับของ API จะกำหนดหลักเกณฑ์ความเข้ากันได้แบบย้อนหลังที่เกี่ยวข้องกับชื่อองค์ประกอบ XML (ตามที่ปรากฏในการตอบกลับของ API) และลำดับที่แท็กและแอตทริบิวต์ XML ปรากฏในการตอบกลับของ API
-
ส่วนแนวทางปฏิบัติแนะนำจะแสดงคําแนะนําในการผสานรวม YouTube API กับแอปพลิเคชันไคลเอ็นต์
คำขอ API
ฟังก์ชันการทำงานที่ไม่ได้ตั้งใจจะเปลี่ยนแปลง
-
พารามิเตอร์คำขอที่มีอยู่
-
ค่าพารามิเตอร์ที่มีอยู่สําหรับพารามิเตอร์ที่มีค่าที่ระบุ หรือความหมายของค่าพารามิเตอร์เหล่านั้น
-
ชื่อขององค์ประกอบ XML ที่ใช้ในคําขอ API POST (แทรก) หรือ PUT (อัปเดต)
-
ชุดส่วนหัวคำขอ HTTP ที่จําเป็นสําหรับคําขอ API แต่ละประเภท หลักเกณฑ์นี้หมายความว่า YouTube ไม่มีความตั้งใจที่จะเพิ่มส่วนหัวคำขอ HTTP ที่ต้องระบุ หรือเปลี่ยนส่วนหัวคำขอที่ไม่บังคับที่มีอยู่ให้ต้องระบุ
-
ลักษณะการละเว้นพารามิเตอร์ที่ไม่รองรับในคำขอ API เว้นแต่คำขอจะใช้พารามิเตอร์
strictซึ่งจะสั่งให้ YouTube ปฏิเสธคำขอ API ที่มีพารามิเตอร์คำขอที่ไม่ถูกต้อง
ฟังก์ชันการทำงานที่อาจมีการเปลี่ยนแปลง
-
YouTube อาจเพิ่มพารามิเตอร์คำขอที่ไม่บังคับ
-
YouTube อาจเพิ่มค่าใหม่สำหรับพารามิเตอร์ที่มีอยู่ซึ่งมีชุดค่าที่ระบุไว้
-
YouTube สามารถปฏิเสธคำขอใดก็ตามที่พารามิเตอร์ที่ถูกต้องมีค่าพารามิเตอร์ไม่ถูกต้อง ด้วยเหตุนี้ คำขอที่มีรูปแบบไม่ถูกต้องซึ่งได้รับการยอมรับเนื่องจากการแยกวิเคราะห์ที่ผ่อนปรนมากเกินไปอาจถูกปฏิเสธหากแก้ไขตรรกะการแยกวิเคราะห์แล้ว
-
YouTube อาจเพิ่มส่วนหัวคำขอ HTTP ที่ไม่บังคับ
-
YouTube อาจเปลี่ยนแปลงข้อมูลที่เก็บไว้ (จัดเก็บ) เมื่อแทรกหรืออัปเดตทรัพยากร อย่างไรก็ตาม การตัดสินใจดังกล่าวจะไม่ส่งผลต่อหรือกำหนดให้ต้องเปลี่ยนแปลงไวยากรณ์ของคำขอ API ที่เกี่ยวข้อง
-
YouTube อาจเปลี่ยนชุดหมวดหมู่ที่เรียกดูได้หรือชุดหมวดหมู่ที่กำหนดให้กับวิดีโอที่อัปโหลดใหม่ได้
-
ฟังก์ชันการทำงานที่ไม่ได้บันทึกไว้อาจถูกนำออกหรือเปลี่ยนแปลงได้ทุกเมื่อ
การตอบกลับจาก API
ฟังก์ชันการทำงานที่ไม่ได้ตั้งใจจะเปลี่ยนแปลง
-
ชื่อแท็ก XML ที่มีอยู่
-
ปฏิบัติตามข้อกำหนดเฉพาะของ Media RSS เพื่อกำหนดลําดับขององค์ประกอบที่ระบุไว้ในข้อกําหนดเฉพาะนั้นและปรากฏหลายครั้งในรายการฟีด เช่น หากรายการมีแท็ก
<media:thumbnail>หลายรายการ ระบบจะจัดเรียงตามลําดับความสําคัญ -
ค่าแอตทริบิวต์
termของแท็ก<category>ที่ระบุประเภทของรายการที่อธิบายไว้ในฟีดหรือรายการฟีด ภายในแท็ก<feed>หรือ<entry>แท็ก<id>จะระบุทรัพยากรที่ไม่ซ้ำกันซึ่งระบุโดยรายการ และแท็ก<category>จะระบุประเภททรัพยากรที่อธิบายโดยรายการ สำหรับแท็ก<category>นี้ ค่าของแอตทริบิวต์รูปแบบคือhttp://schemas.google.com/g/2005#kindและค่าของแอตทริบิวต์คำระบุว่ารายการฟีดอธิบายวิดีโอ ลิงก์เพลย์ลิสต์ การติดตาม รายชื่อติดต่อ หรือเอนทิตีประเภทอื่นหรือไม่
ฟังก์ชันการทำงานที่อาจมีการเปลี่ยนแปลง
-
YouTube อาจเพิ่มแท็ก XML ใหม่ในการตอบกลับของ API
-
YouTube อาจเพิ่มแอตทริบิวต์ใหม่ลงในแท็ก XML ที่มีอยู่
-
แท็ก API ที่มีอยู่อาจซ้ำกันโดยมีค่าต่างกัน เช่น YouTube อาจเพิ่มแท็ก
<media:restriction>ใหม่ที่มีค่าtypeอื่น หรือแท็ก<media:credit>ใหม่ที่มีschemeและroleอื่น -
ลำดับแท็กและแอตทริบิวต์ XML ในการตอบกลับของ API อาจเปลี่ยนแปลง
-
ระบบอาจนำแท็กย่อยที่ไม่บังคับออกจากคำตอบของ API
-
ฟังก์ชันการทำงานที่ไม่ได้บันทึกไว้อาจถูกนำออกหรือเปลี่ยนแปลงได้ทุกเมื่อ
แนวทางปฏิบัติแนะนำ
-
ใช้ค่าแท็ก
<id>เพื่อระบุรายการ -
ใช้ลิงก์
selfเพื่อเรียกข้อมูล -
ใช้ลิงก์
editเพื่อแก้ไขหรืออัปเดตรายการ -
ใช้ค่าแท็ก
<yt:videoid>สำหรับรายการวิดีโอเพื่อรับค่าที่ YouTube ใช้ระบุวิดีโอนั้นโดยเฉพาะ อย่าแยกวิเคราะห์รหัสวิดีโอจากลิงก์ -
ใช้ URL ที่ระบุไว้ในแท็ก
<link>,<content>และ<gd:feedLink>เพื่อไปยังส่วนต่างๆ ของฟีด YouTube รองรับชุด URL จํากัดที่คุณสร้างได้อย่างน่าเชื่อถือเพื่อดึงข้อมูลฟีดที่เฉพาะเจาะจง นอกเหนือจาก URL ของฟีดที่ระบุไว้ด้านล่างแล้ว คุณไม่ควรสร้าง URL ของฟีดเองเนื่องจากอาจหยุดทํางานโดยไม่คาดคิด- /feeds/api/videos/
<videoid> - /feeds/api/users/default
- /feeds/api/users/default/uploads
- /feeds/api/users/default/favorites
- /feeds/api/users/default/contacts
- /feeds/api/users/default/inbox
- /feeds/api/users/default/playlists
- /feeds/api/users/default/subscriptions
- /feeds/api/users/default/newsubscriptionvideos
- /feeds/api/standardfeeds/
regionID/feedID_CATEGORY_NAME(ดูข้อมูลเพิ่มเติมในคู่มืออ้างอิง)
- /feeds/api/videos/
-
อย่าพยายามแยกวิเคราะห์ตัวระบุที่เป็นตัวเลขหรือตัวอักษรและตัวเลขคละกันจาก URL ในการตอบกลับของ API การตอบกลับของ API จะมีแท็กเฉพาะสำหรับตัวระบุที่ลิงก์กับทรัพยากรในเว็บไซต์ YouTube เช่น รหัสวิดีโอ (
<yt:videoid>) และชื่อผู้ใช้ (<name>และ<media:credit>). -
หากคุณส่งคําขอ API เพื่อแทรก (POST) หรืออัปเดต (PUT) ข้อมูล ให้ใช้การตอบกลับ XML สําหรับคําขอนั้นเพื่อดูว่า YouTube จัดเก็บค่าแท็กใดในคําขอนั้นจริง ตามที่ระบุไว้ในหลักเกณฑ์ความเข้ากันได้แบบย้อนหลังสำหรับคำขอ API ทาง YouTube อาจเปลี่ยนแปลงข้อมูลที่เก็บไว้ (จัดเก็บ) เมื่อแทรกหรืออัปเดตทรัพยากร ซึ่งหมายความว่าระบบอาจละเว้นแท็กบางรายการในคำขอ
-
เมื่อดึงข้อมูลฟีด XML ให้จัดเก็บแท็กและแอตทริบิวต์ XML ที่ไม่รู้จักซึ่งเกี่ยวข้องกับรายการฟีด หากแอปพลิเคชันของคุณอนุญาตให้ผู้ใช้อัปเดตรายการดังกล่าว หากผู้ใช้อัปเดตทรัพยากร แอปพลิเคชันของคุณควรระบุแท็กและแอตทริบิวต์ที่ไม่รู้จักในคำขออัปเดต แนวทางปฏิบัตินี้ช่วยให้มั่นใจได้ว่าแอปพลิเคชันจะไม่ลบข้อมูลที่เกี่ยวข้องกับฟีเจอร์ใหม่ของ API โดยไม่ได้ตั้งใจในกระบวนการอัปเดตทรัพยากร
ตัวอย่างต่อไปนี้แสดงแนวทางปฏิบัติแนะนำนี้
- แอปพลิเคชันของคุณช่วยให้ผู้ใช้อัปเดตคำอธิบายวิดีโอได้
- แอปพลิเคชันของคุณดึงข้อมูลรายการวิดีโอโดยใช้ API แต่ระบบไม่รู้จักแท็กรายการใดรายการหนึ่งในรายการ
- ผู้ใช้แก้ไขคำอธิบายวิดีโอ
- แอปพลิเคชันของคุณต้องส่งรายการวิดีโอที่สมบูรณ์กลับไปยัง API รายการต้องมีแท็กที่ไม่รู้จักจากขั้นตอนที่ 2 มิฉะนั้นระบบอาจลบค่านั้น
-
ยืนยันว่ามีแท็กอยู่และมีค่าที่ไม่ใช่ Null ก่อนพยายามแสดงค่าแท็ก
-
ดังที่ระบุไว้ข้างต้น YouTube อาจเพิ่มค่าใหม่สำหรับแท็กหรือแอตทริบิวต์ที่มีอยู่ซึ่งมีชุดค่าที่ระบุไว้ โดยทั่วไปแล้ว โค้ดควรแยกวิเคราะห์ค่าขององค์ประกอบ XML ที่มีชุดค่าที่ระบุ จากนั้นกำหนดการดำเนินการที่เหมาะสมกับค่าเหล่านั้น เราขอแนะนําให้ใช้แนวทางนี้แม้ว่าจะมีเพียงค่าเดียวที่เป็นไปได้สําหรับองค์ประกอบ
เช่น แท็ก
<media:credit>จะระบุเจ้าของวิดีโอ ค่าที่บันทึกไว้เพียงค่าเดียวสำหรับแอตทริบิวต์roleของแท็กคือuploaderซึ่งบ่งบอกว่าวิดีโออัปโหลดโดยพาร์ทเนอร์ YouTube แนวทางปฏิบัติแนะนำนี้กําหนดว่าแอปพลิเคชันของคุณควรยืนยันว่าค่าของแอตทริบิวต์roleของแท็กคือuploaderจริงก่อนที่จะระบุผู้ใช้ที่เกี่ยวข้องเป็นเจ้าของวิดีโอ (ข้อควรระวังนี้ช่วยให้มั่นใจว่าโค้ดของคุณจะไม่ระบุเจ้าของวิดีโออย่างไม่ถูกต้องหาก YouTube เพิ่มเครดิตประเภทอื่นๆ เช่น ผู้กำกับ ให้กับวิดีโอ)-
หากแท็กมีชุดค่าที่ระบุ และคุณไม่รู้จักค่าของแท็กนั้น คุณควรละเว้น
<entry>ทั้งหมดที่แท็กนั้นปรากฏอยู่ -
ละเว้นรายการฟีดการติดตามหากคุณไม่รู้จักค่าของแอตทริบิวต์
termสำหรับแท็ก<category>ที่มีค่าแอตทริบิวต์schemeเป็นhttp://gdata.youtube.com/schemas/2007/subscriptiontypes.catแท็กดังกล่าวจะระบุประเภทการสมัครใช้บริการที่ระบุโดยรายการ หากแอปพลิเคชันของคุณไม่รู้จักประเภทการสมัครใช้บริการ แอปพลิเคชันไม่ควรแสดงข้อมูลเกี่ยวกับรายการนั้น -
หากแอตทริบิวต์อื่นๆ มีชุดค่าที่ระบุ และคุณไม่รู้จักค่าของแอตทริบิวต์นั้น คุณควรละเว้นแท็กที่แอตทริบิวต์ปรากฏอยู่
-
-
รหัสแอปพลิเคชันของคุณควรได้รับข้อความ
yt:errorได้ทุกเมื่อ ในกรณีที่การดำเนินการ API ไม่สำเร็จ แอปพลิเคชันควรระบุข้อผิดพลาดและแสดงข้อความที่สื่อความหมายต่อผู้ใช้ -
YouTube อาจเพิ่มหมวดหมู่ใหม่สำหรับการแยกประเภทวิดีโอได้ทุกเมื่อ นอกจากนี้ YouTube ยังอาจอัปเดตหรือเลิกใช้งานหมวดหมู่ที่มีอยู่ด้วย คุณสามารถดึงข้อมูลไฟล์หมวดหมู่ปัจจุบันได้จาก http://gdata.youtube.com/schemas/2007/categories.cat
-
หากแอปพลิเคชันของคุณอนุญาตให้ผู้ใช้เรียกดูวิดีโอตามหมวดหมู่หรืออัปโหลดวิดีโอ ให้ดึงข้อมูลไฟล์หมวดหมู่ที่อัปเดตแล้วทุกสัปดาห์
-
หากแอปพลิเคชันของคุณอนุญาตให้ผู้ใช้เรียกดูวิดีโอตามหมวดหมู่ ให้เรียกข้อมูลไฟล์หมวดหมู่ที่อัปเดตแล้วด้วยหาก API ส่งคืนฟีดว่างเมื่อมีการค้นหาหมวดหมู่
-
หากแอปพลิเคชันของคุณอนุญาตให้ผู้ใช้อัปโหลดวิดีโอ ให้ดึงข้อมูลไฟล์หมวดหมู่ที่อัปเดตแล้วก่อนที่จะอัปโหลดวิดีโอ และยืนยันว่ายังกำหนดหมวดหมู่ที่เชื่อมโยงกับวิดีโอที่อัปโหลดได้อยู่ ดูข้อมูลเพิ่มเติมได้ที่คู่มืออ้างอิง (โปรดทราบว่าหากคุณพยายามกำหนดวิดีโอให้กับหมวดหมู่ที่ไม่สามารถกำหนดได้ API จะแสดงข้อความแสดงข้อผิดพลาดซึ่งมีค่าของแท็ก
<code>เป็นdeprecated)
-
-
ใช้แท็ก
<link>ในการตอบกลับของ API เพื่อระบุลิงก์การแบ่งหน้าสำหรับหน้าก่อนหน้าและ/หรือหน้าถัดไปของรายการในฟีด ดูข้อมูลเพิ่มเติมได้ที่ส่วนการเลื่อนดูผลลัพธ์ในคู่มืออ้างอิง