ใช้รหัสช่อง

Jeff Posnick จากทีมพัฒนาแอปของ YouTube – มิถุนายน 2013

คุณสามารถลิงก์โปรไฟล์ Google+ กับช่อง YouTube มานานกว่า 1 ปีแล้ว และเราได้เขียนบล็อกเกี่ยวกับการเปลี่ยนแปลงของคำตอบ Data API เวอร์ชัน 2 บางรายการที่เป็นผลมาจากลิงก์โปรไฟล์ดังกล่าว เมื่อเร็วๆ นี้ ผู้ใช้สามารถสร้างช่อง YouTube ใหม่ที่ไม่ได้เชื่อมโยงกับชื่อผู้ใช้ YouTube แบบดั้งเดิม แต่ใช้โปรไฟล์ Google+ ในการระบุตัวตนเพียงอย่างเดียว ข้อมูลส่วนใหญ่จากบล็อกโพสต์ดังกล่าวยังคงใช้ได้อยู่ แต่ข้อจำกัดเพิ่มเติมนี้ทำให้ข้อสันนิษฐานพื้นฐานบางอย่างเกี่ยวกับช่อง YouTube ใช้งานไม่ได้ เช่น แต่ละช่องจะเชื่อมโยงกับชื่อผู้ใช้ YouTube ที่ไม่ซ้ำกันเสมอ และเราจึงอยากติดตามผลด้วยแนวทางปฏิบัติแนะนำเพิ่มเติมในการเขียนโค้ดที่ใช้งานได้กับช่องทุกประเภท

รหัสช่องใน Data API เวอร์ชัน 3

การดำเนินการทั้งหมดใน v3 ที่ทำงานกับช่องจะใช้รหัสช่องเป็นวิธีระบุช่องเหล่านั้นโดยเฉพาะ รหัสของช่อง YouTube ของผู้ใช้รายหนึ่งๆ จะเหมือนกันทั้งใน API เวอร์ชัน 2 และ 3 ซึ่งทำให้การย้ายข้อมูลระหว่างเวอร์ชันง่ายขึ้น การพึ่งพารหัสช่องเพียงอย่างเดียวนี้อาจทำให้นักพัฒนาแอปที่เคยส่งชื่อผู้ใช้ YouTube ไปยังเมธอด API มาก่อนเกิดความสับสน แต่ v3 ออกแบบมาเพื่อจัดการกับช่องที่มีและไม่มีชื่อผู้ใช้เดิมในลักษณะเดียวกัน ซึ่งหมายความว่าต้องใช้รหัสช่องในทุกที่

หากคุณใช้ v3 และต้องการนำรหัสช่องที่สอดคล้องกับผู้ใช้ที่ได้รับอนุญาตในปัจจุบัน ให้เรียกใช้เมธอด channels.list(part="id", mine=true) ซึ่งเทียบเท่ากับการขอโปรไฟล์แชแนลของผู้ใช้ default ใน v2

หากพบว่าตัวเองมีชื่อผู้ใช้ YouTube แบบเดิมซึ่งต้องแปลงเป็นรหัสช่องโดยใช้ API เวอร์ชัน 3 คุณสามารถchannels.list(part="id", forUsername="username")เรียกใช้ API ได้

หากทราบเฉพาะชื่อที่แสดงและต้องการค้นหาช่องที่เกี่ยวข้อง เมธอด search.list(part="snippet", type="channel", q="display name") จะมีประโยชน์ คุณควรเตรียมพร้อมรับมือกับกรณีที่การเรียกใช้แสดงผลมากกว่า 1 รายการในการตอบกลับ เนื่องจากชื่อที่แสดงไม่ซ้ำกัน

รหัสช่องใน Data API เวอร์ชัน 2

หมายเหตุ: เราเลิกใช้งาน YouTube Data API (เวอร์ชัน 2) ตั้งแต่วันที่ 26 กุมภาพันธ์ 2014 และปิดใช้ API ดังกล่าวแล้ว แอปพลิเคชันที่ยังใช้ v2 API ควรเปลี่ยนไปใช้ v3 API ทันที

สิ่งที่นักพัฒนาแอปที่ใช้ Data API เวอร์ชัน 2 ควรทราบมากที่สุดคือช่อง YouTube บางช่องมีชื่อผู้ใช้ซ้ำกัน แต่โชคดีที่ช่อง YouTube ทุกช่องมีรหัสช่องที่ไม่ซ้ำกันซึ่งเชื่อมโยงอยู่ ซึ่งแสดงโดยค่าในแท็ก <yt:channelId> และเราขอแนะนำให้นักพัฒนาแอปใช้ค่านี้แทนชื่อผู้ใช้ ตัวอย่างเช่น หากคุณมีฐานข้อมูลที่เชื่อมโยงชื่อผู้ใช้ YouTube กับข้อมูลเกี่ยวกับช่องนั้น รายการเก่าๆ ก็ควรใช้งานได้ต่อไป (ช่องที่มีอยู่จะไม่สูญเสียชื่อผู้ใช้) อย่างไรก็ตาม เมื่อเวลาผ่านไป คุณอาจต้องทำงานกับช่องที่ไม่สามารถระบุตัวตนได้โดยใช้ชื่อผู้ใช้เพียงอย่างเดียว

การเปลี่ยนจากชื่อผู้ใช้เป็นรหัสช่องนั้นง่ายขึ้นด้วยปัจจัย 2 อย่าง ประการแรก Data API เวอร์ชัน 2 ยอมรับรหัสช่องใน URL คำขอทุกที่ที่ยอมรับชื่อผู้ใช้ YouTube ซึ่งหมายความว่าคุณสามารถเปลี่ยนรหัสช่องลงในโค้ดที่มีอยู่ได้อย่างราบรื่น ตัวอย่างเช่น เนื่องจาก UC_x5XG1OV2P6uZZ5FSM9Ttw คือรหัสช่องของช่องที่มีชื่อผู้ใช้เดิม GoogleDevelopers ดังนั้น URL 2 รายการต่อไปนี้จึงเป็นคำขอ API ที่เทียบเท่ากัน

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

อีกสิ่งที่ควรทราบคือเมื่อส่งคำขอ v2 ที่ตรวจสอบสิทธิ์แล้ว คุณไม่จำเป็นต้องใส่ชื่อผู้ใช้ของช่องที่ได้รับอนุญาตเมื่อสร้าง URL คำขอ คุณสามารถใส่ค่า default แทนชื่อผู้ใช้ (หรือรหัสช่อง) ได้ทุกเมื่อ ดังนั้นหากต้องการเรียกข้อมูลฟีดการอัปโหลดวิดีโอของผู้ใช้ที่ได้รับอนุญาตในปัจจุบัน คุณจะทำได้ที่ https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1