YouTube Live Streaming API ช่วยให้คุณสร้าง อัปเดต และจัดการการถ่ายทอดสดบน YouTube โดยใช้ API คุณสามารถกำหนดเวลาการถ่ายทอดสด (การออกอากาศ) และเชื่อมโยงการถ่ายทอดสดกับวิดีโอสตรีม ซึ่งแสดงถึงเนื้อหาการออกอากาศจริง
Live Streaming API ประกอบด้วยคอมโพเนนต์ของ YouTube Data API และ YouTube Content ID API Data API ช่วยให้ผู้ใช้ YouTube จัดการบัญชี YouTube ของตนได้ ส่วน YouTube Content ID API ช่วยให้มีการโต้ตอบกับระบบการจัดการสิทธิ์ของ YouTube อย่างไรก็ตาม ทรัพยากรทั้งหมดที่ประกอบขึ้นเป็น Live Streaming API จะใช้เพื่อสร้างและจัดการการถ่ายทอดสดเท่านั้น
เอกสารนี้มีไว้สำหรับนักพัฒนาแอปที่ต้องการเขียนแอปพลิเคชันเพื่ออำนวยความสะดวกในการถ่ายทอดสดบน YouTube โดยจะอธิบายแนวคิดพื้นฐานของ YouTube และ API เอง รวมถึงให้ภาพรวมของฟังก์ชันต่างๆ ที่ API รองรับ
แนวคิดหลัก
- การออกอากาศ
- การออกอากาศ แสดงถึงเหตุการณ์ที่ดูได้บน YouTube ขณะที่เหตุการณ์นั้นเกิดขึ้น นอกจากนี้ยังสามารถบันทึกและบันทึกการออกอากาศเป็นวิดีโอ YouTube เพื่อให้ผู้ใช้ดูได้หลังจากเหตุการณ์เกิดขึ้น
- สตรีม
- สตรีม ระบุเนื้อหาเสียงและวิดีโอที่ส่งไปยัง YouTube การออกอากาศแต่ละรายการจะเชื่อมโยงกับวิดีโอสตรีม 1 รายการ
- คิวพอยต์
- cuepoint แสดงถึงช่วงพักโฆษณาที่แทรกลงในการถ่ายทอดสดได้
กรณีการใช้งาน API
รายการด้านล่างนี้แสดงวิธีต่างๆ ในการใช้ API ในแอปพลิเคชัน
-
กำหนดเวลาการออกอากาศและกำหนดการตั้งค่าการออกอากาศ แอปพลิเคชันของคุณสามารถช่วยให้ผู้ใช้กำหนดการตั้งค่าการออกอากาศล่วงหน้า แล้วเลือกการตั้งค่าที่จะใช้กับการออกอากาศที่เฉพาะเจาะจงได้
-
เชื่อมโยงวิดีโอสตรีมและการออกอากาศ
-
ช่วยให้ผู้ถ่ายทอดสดกำหนดข้อมูลเกี่ยวกับการออกอากาศและวิดีโอ (โดยใช้ YouTube Data API) ได้ในเวลาเดียวกัน
-
ลดความซับซ้อนของการเปลี่ยนสถานะการออกอากาศ (เช่น
testingหรือlive) และช่วยให้ผู้ใช้แทรกคิวพอยต์ได้
ก่อนจะเริ่มต้น
-
คุณต้องมีบัญชี Google เพื่อเข้าถึงGoogle Cloud console ขอคีย์ API และลงทะเบียนแอปพลิเคชัน
-
ลงทะเบียนแอปพลิเคชันกับ Google เพื่อให้แอปพลิเคชันสามารถส่งคำขอ API
-
หลังจากลงทะเบียนแอปพลิเคชันแล้ว ให้เลือก YouTube Data API เป็นหนึ่งในบริการที่แอปพลิเคชันใช้ โดยทำดังนี้
- ไปที่ Cloud console แล้วเลือกโปรเจ็กต์ที่เพิ่งลงทะเบียน
- ไปที่หน้า API ที่เปิดใช้ ในรายการ API ให้ตรวจสอบว่าสถานะของ YouTube Data API v3 เป็นเปิด และหากคุณเป็นพาร์ทเนอร์เนื้อหาของ YouTube ให้ตรวจสอบว่าสถานะของ YouTube Content ID API เป็นเปิด
-
ทำความคุ้นเคยกับแนวคิดหลักของรูปแบบข้อมูล JavaScript Object Notation (JSON) JSON เป็นรูปแบบข้อมูลทั่วไปที่ไม่ขึ้นกับภาษา ซึ่งแสดงโครงสร้างข้อมูลที่กำหนดเองในรูปแบบข้อความอย่างง่าย สำหรับข้อมูลเพิ่มเติม โปรดดู json.org
การให้สิทธิ์คำขอ API
ดังที่กล่าวไว้ข้างต้น Live Streaming API ใช้ฟังก์ชันการทำงานที่เป็นส่วนหนึ่งของ YouTube Data API หรือ YouTube Content ID API คุณสามารถใช้ Content ID API เพื่อให้ข้อมูลเมตา ข้อมูลการเป็นเจ้าของ และข้อมูลนโยบายสำหรับเนื้อหาแก่ YouTube ได้ (การถ่ายทอดสดวิดีโอเป็นตัวอย่างของเนื้อหา) นอกจากนี้ API ยังช่วยให้คุณอ้างสิทธิ์วิดีโอและกำหนดนโยบายโฆษณาสำหรับวิดีโอได้
ส่วนนี้จะอธิบายข้อกำหนดการให้สิทธิ์สำหรับคำขอไปยัง Content ID API ซึ่งแตกต่างจากข้อกำหนดสำหรับการให้สิทธิ์คำขอ Live Streaming API อื่นๆ
- การเรียก Data API
- คำขอ API ต้องได้รับอนุญาตจากบัญชี Google ที่เป็นเจ้าของช่อง YouTube ที่ออกอากาศ
- การเรียก Content ID API
- คำขอ API ต้องได้รับอนุญาตจากบัญชี Google ที่ลิงก์กับเจ้าของเนื้อหาที่เป็นเจ้าของช่อง YouTube ที่ออกอากาศ
ทรัพยากรและประเภททรัพยากร
ทรัพยากรคือเอนทิตีข้อมูลแต่ละรายการที่มีตัวระบุที่ไม่ซ้ำกัน ตารางด้านล่างอธิบาย
ทรัพยากรประเภทต่างๆ ที่คุณจะโต้ตอบด้วยโดยใช้
Live Streaming API ในทางเทคนิคแล้ว ทรัพยากรทั้งหมดนี้กำหนดไว้เป็นส่วนหนึ่งของ
หรือYouTube Data API
หรือYouTube Content ID API อย่างไรก็ตาม ทรัพยากร
liveBroadcast,
liveStream และ
cuepoint จะใช้เพื่อสร้างและจัดการการถ่ายทอดสดเท่านั้น
| ทรัพยากร | |
|---|---|
liveBroadcast |
มีข้อมูลเกี่ยวกับเหตุการณ์ที่คุณกำลังออกอากาศบน YouTube ทรัพยากร
liveBroadcast เป็นส่วนขยายของทรัพยากรวิดีโอ YouTube และกำหนดข้อมูลเมตาของวิดีโอที่เกี่ยวข้องกับการถ่ายทอดสด แต่ไม่เกี่ยวข้องกับวิดีโอ YouTube อื่นๆดังนั้น ทรัพยากร liveBroadcast จึงสอดคล้องกับทรัพยากรวิดีโอ YouTube 1 รายการ
โดยทรัพยากร liveBroadcast
และทรัพยากร video ใช้รหัสเดียวกัน และหลังจากสร้างการออกอากาศโดยใช้ Live Streaming API แล้ว คุณสามารถใช้
YouTube Data API เพื่อให้ข้อมูลเมตาเพิ่มเติมเกี่ยวกับวิดีโอได้ |
liveStream |
มีข้อมูลเกี่ยวกับวิดีโอสตรีมที่คุณส่งไปยัง YouTube สตรีม
จะให้เนื้อหาที่จะออกอากาศไปยังผู้ใช้ YouTube เมื่อสร้างแล้ว ทรัพยากร liveStream
จะเชื่อมโยงกับทรัพยากร liveBroadcast ได้เพียง 1 รายการเท่านั้น ในทำนองเดียวกัน ทรัพยากร
liveBroadcast จะเชื่อมโยงกับทรัพยากร liveStream ได้เพียง 1 รายการเท่านั้น |
cuepoint |
แทรกคิวพอยต์ในวิดีโอสตรีมการออกอากาศ ซึ่งอาจทำให้เกิดช่วงพักโฆษณา ใช้เมธอด
liveBroadcasts.cuepoint
เพื่อแทรกคิวพอยต์ระหว่างการออกอากาศ
|
video |
แสดงถึงวิดีโอ YouTube 1 รายการ ดังที่กล่าวไว้ข้างต้น ทรัพยากร liveBroadcast เป็นส่วนขยายของทรัพยากร video คุณสามารถใช้ YouTube Data API เพื่ออัปเดตข้อมูลเมตาเกี่ยวกับวิดีโอ เช่น สถานที่บันทึกหรือภูมิภาคที่การออกอากาศจะดูได้ |
videoAdvertisingOptions |
กำหนดการตั้งค่าการโฆษณาสำหรับวิดีโอ (หรือการออกอากาศ) คุณใช้ YouTube Content ID API เพื่อตั้งค่าตัวเลือกการโฆษณา |
asset |
แสดงถึงทรัพย์สินทางปัญญา เช่น ภาพยนตร์หรือตอนของรายการ ในกรณีนี้ วิดีโอการออกอากาศคือเนื้อหา คุณจะใช้ YouTube Content ID API เพื่อสร้างและจัดการทรัพยากร asset |
claim |
ลิงก์วิดีโอกับเนื้อหาที่วิดีโอตรงกัน คุณสร้างการอ้างสิทธิ์โดยใช้ YouTube Content ID API เพื่อระบุตัวเองว่าเป็นเจ้าของวิดีโอการออกอากาศ |
policy |
กำหนดกฎที่ระบุสถานการณ์ที่คุณต้องการให้เนื้อหาดูได้บน YouTube หรือบล็อกไม่ให้ปรากฏบน YouTube คุณต้องใช้นโยบายกับวิดีโอการออกอากาศ และยังระบุนโยบายที่ YouTube จะใช้กับวิดีโอที่ผู้ใช้อัปโหลดซึ่งตรงกับวิดีโอการออกอากาศได้ด้วย |
การดำเนินการที่รองรับ
ตารางต่อไปนี้แสดงเมธอดต่างๆ ที่ API รองรับ
| การดำเนินการ | |
|---|---|
list |
ดึงข้อมูล (GET) รายการทรัพยากรตั้งแต่ 0 รายการขึ้นไป |
insert |
สร้าง (POST) ทรัพยากรใหม่ |
update |
แก้ไข (PUT) ทรัพยากรที่มีอยู่ให้แสดงข้อมูลในคำขอ |
bind |
ลิงก์ทรัพยากร liveBroadcast กับทรัพยากร liveStream หรือนำลิงก์ดังกล่าวออก |
transition |
เปลี่ยนสถานะของทรัพยากร liveBroadcast และเริ่มกระบวนการใดๆ ที่เชื่อมโยงกับสถานะใหม่ เช่น เมื่อคุณเปลี่ยนสถานะการออกอากาศเป็น testing YouTube จะเริ่มส่งวิดีโอไปยังสตรีมการตรวจสอบของการออกอากาศนั้น |
delete |
นำ (DELETE) ทรัพยากรที่เฉพาะเจาะจงออก |
ตารางต่อไปนี้ระบุการดำเนินการที่รองรับสำหรับทรัพยากรประเภทต่างๆ การดำเนินการที่แทรก อัปเดต หรือลบทรัพยากรต้องมีการให้สิทธิ์จากผู้ใช้เสมอ ในบางกรณี เมธอด list รองรับทั้งคำขอที่ได้รับอนุญาตและไม่ได้รับอนุญาต โดยคำขอที่ไม่ได้รับอนุญาตจะดึงข้อมูลสาธารณะเท่านั้น ส่วนคำขอที่ได้รับอนุญาตจะดึงข้อมูลที่จำกัดไว้สำหรับผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์ได้ด้วย
| การดำเนินการที่รองรับ | |||||||
|---|---|---|---|---|---|---|---|
| list | insert | update | bind | transition | cuepoint | delete | |
| liveBroadcast | |||||||
| liveStream | |||||||
ทรัพยากรบางส่วน
API อนุญาตและกำหนดให้ดึงข้อมูลทรัพยากรบางส่วน เพื่อให้แอปพลิเคชันหลีกเลี่ยงการโอน การแยกวิเคราะห์ และการจัดเก็บข้อมูลที่ไม่จำเป็น แนวทางนี้ยังช่วยให้ API ใช้ทรัพยากรเครือข่าย, CPU และหน่วยความจำได้อย่างมีประสิทธิภาพมากขึ้น
พารามิเตอร์ part เป็นพารามิเตอร์ที่จำเป็นสำหรับคำขอ API ใดก็ตามที่ดึงหรือแสดงผลทรัพยากร YouTube Data API พารามิเตอร์นี้จะระบุพร็อพเพอร์ตี้ทรัพยากรระดับบนสุด (ไม่ซ้อนกัน) อย่างน้อย 1 รายการที่ควรจะรวมอยู่ในการตอบกลับจาก API ตัวอย่างเช่น ทรัพยากร liveStream มีส่วนต่างๆ ดังนี้
snippetcdnstatus
ส่วนทั้งหมดนี้เป็นออบเจ็กต์ที่มีพร็อพเพอร์ตี้ซ้อนกัน และคุณสามารถมองออบเจ็กต์เหล่านี้เป็นกลุ่มของฟิลด์ข้อมูลเมตาที่เซิร์ฟเวอร์ API อาจดึง (หรือไม่ดึง) ก็ได้ ดังนั้น พารามิเตอร์ part จึงกำหนดให้คุณเลือกคอมโพเนนต์ทรัพยากรที่แอปพลิเคชันใช้จริง ข้อกำหนดนี้มีวัตถุประสงค์สำคัญ 2 ประการ ได้แก่
- ลดเวลาในการตอบสนองโดยป้องกันไม่ให้เซิร์ฟเวอร์ API เสียเวลาในการดึงข้อมูลเมตาที่แอปพลิเคชันไม่ได้ใช้
- ลดการใช้แบนด์วิดท์โดยลด (หรือกำจัด) ปริมาณข้อมูลที่ไม่จำเป็นที่แอปพลิเคชันอาจดึง
เมื่อเวลาผ่านไป เมื่อทรัพยากรเพิ่มส่วนต่างๆ มากขึ้น ประโยชน์เหล่านี้ก็จะเพิ่มขึ้น เนื่องจากแอปพลิเคชันจะไม่ขอพร็อพเพอร์ตี้ที่เพิ่งเปิดตัวซึ่งแอปพลิเคชันไม่รองรับ
เคล็ดลับและแนวทางปฏิบัติแนะนำ
อ้างสิทธิ์เนื้อหา
หากต้องการแสดงโฆษณาระหว่างการออกอากาศ คุณต้องอ้างสิทธิ์วิดีโอการออกอากาศก่อนเริ่มกิจกรรม หากต้องการอ้างสิทธิ์เนื้อหา คุณต้องเป็น พาร์ทเนอร์เนื้อหาของ YouTube ที่เข้าร่วมโปรแกรม Content ID
กระบวนการอ้างสิทธิ์วิดีโอการถ่ายทอดสดจะแตกต่างจากกระบวนการปกติในการอ้างสิทธิ์วิดีโอ เมื่ออ้างสิทธิ์วิดีโอสด คุณต้องสร้างการอ้างสิทธิ์ก่อนที่วิดีโอจะพร้อมใช้งานจริง API รองรับการดำเนินการนี้ และวงจรชีวิตของการออกอากาศเอกสารจะอธิบายการเรียกYouTube Content ID APIที่ช่วยให้คุณสร้างการอ้างสิทธิ์ได้
แสดงตัวอย่างและทดสอบเนื้อหา
เมื่อได้รับวิดีโอสตรีมขาเข้าแล้ว YouTube จะออกอากาศวิดีโอนั้นในวิดีโอสตรีมขาออก 2 รายการที่แตกต่างกันได้
-
สตรีมการตรวจสอบ ช่วยให้คุณแสดงตัวอย่าง (และทดสอบ) การออกอากาศวิดีโอได้ ซึ่งเป็นสตรีมส่วนตัวที่คุณเข้าถึงได้เท่านั้น คุณจะเปลี่ยนการออกอากาศเป็นระยะ
testingได้ก็ต่อเมื่อเปิดใช้สตรีมการตรวจสอบของการออกอากาศแล้วเท่านั้น สตรีมการตรวจสอบจะไม่แสดงช่วงพักโฆษณา -
สตรีมการออกอากาศ คือสตรีมที่ผู้ชมมองเห็น คุณสามารถตั้งค่าสถานะความเป็นส่วนตัวของการออกอากาศเป็น
public,privateหรือunlisted(การออกอากาศแบบส่วนตัวจะปรากฏต่อผู้ใช้ที่ได้รับเชิญให้ดูเท่านั้น ส่วนการออกอากาศแบบไม่เป็นสาธารณะจะปรากฏต่อทุกคนที่มีลิงก์เพื่อดู)คุณสามารถเลือกที่จะหน่วงเวลาสตรีมการออกอากาศเพื่อไม่ให้สตรีมการออกอากาศทำงานพร้อมกับสตรีมการตรวจสอบ การหน่วงเวลาสตรีมการออกอากาศจะช่วยให้คุณควบคุมเวลาที่จะแทรกคิวพอยต์ลงในการออกอากาศได้อย่างละเอียดยิ่งขึ้น
อย่างไรก็ตาม การหน่วงเวลาสตรีมการออกอากาศจะทำให้ผู้ดำเนินรายการสดโต้ตอบกับผู้ชมได้ยาก นอกจากนี้ การหน่วงเวลาการออกอากาศยังเพิ่มโอกาสที่ผู้ชมจะค้นพบรายละเอียดสำคัญเกี่ยวกับเหตุการณ์จากแหล่งที่มาอื่นๆ นอกเหนือจากการออกอากาศของคุณ ตัวอย่างเช่น หากคุณออกอากาศการแข่งขันกีฬาโดยหน่วงเวลา 60 วินาที ผู้ชมอาจทราบช่วงเวลาสำคัญในการแข่งขันจากแหล่งข่าวแบบเรียลไทม์อื่นๆ ก่อนที่จะเห็นช่วงเวลาดังกล่าวในการออกอากาศ
YouTube ขอแนะนำให้คุณเปิดใช้สตรีมการตรวจสอบสำหรับการออกอากาศเพื่อให้คุณทดสอบเนื้อหาได้ คุณควรเลือกว่าจะหน่วงเวลาการออกอากาศด้วยหรือไม่ โดยพิจารณาจากความต้องการที่จะควบคุมเวลาของคิวพอยต์เทียบกับความต้องการที่จะโต้ตอบกับผู้ชมหรือให้ข้อมูลแบบเรียลไทม์เกี่ยวกับเหตุการณ์
การแสดงโฆษณาตอนกลางระหว่างสตรีมการออกอากาศ
ระหว่างการออกอากาศ คุณสามารถแทรกcuepoint เพื่อระบุว่าควรเริ่มช่วงพักโฆษณาใน การออกอากาศโดยเร็วที่สุดหรือในเวลาที่ระบุ ช่วงพักโฆษณาช่วยให้ YouTube แสดงโฆษณาตอนกลางระหว่างการออกอากาศได้
ช่วงพักโฆษณามีลักษณะดังนี้
-
มีระยะเวลาที่กำหนดไว้ล่วงหน้า ซึ่งคุณตั้งค่าโดยใช้พร็อพเพอร์ตี้
cuepointของทรัพยากรdurationSecsหลังจากช่วงพักโฆษณาจบลง ผู้ชมจะกลับไปดูการถ่ายทอดสด -
เมื่อเกิดช่วงพักโฆษณา โฆษณาจะเล่นในโปรแกรมเล่นวิดีโอสำหรับผู้ชมที่ดู การออกอากาศเมื่อมีการแทรกคิวพอยต์เท่านั้น โฆษณาจะไม่เล่นเมื่อผู้ชมรีเฟรชหน้าเว็บ ที่การออกอากาศกำลังเล่นอยู่ หรือเมื่อผู้เข้าชมเริ่มดูการออกอากาศหลังจาก มีการแทรกคิวพอยต์
ลำดับขั้นตอนด้านล่างนี้แสดงแนวทางปฏิบัติแนะนำสำหรับการแทรกช่วงพักโฆษณาระหว่างการออกอากาศ
ตั้งค่าออฟเซ็ตเวลา
เมื่อแทรกคิวพอยต์ คุณสามารถระบุให้แทรกทันทีหรือแทรกในจุดที่เฉพาะเจาะจงในการออกอากาศก็ได้ ตัวเลือกจะขึ้นอยู่กับว่ามีการหน่วงเวลาสตรีมการออกอากาศสำหรับวิดีโอหรือไม่
-
หากไม่มีการหน่วงเวลาสตรีมการออกอากาศ คุณจะแทรกคิวพอยต์ทันทีหรือใช้ พร็อพเพอร์ตี้
walltimeMsเพื่อให้ช่วงพักโฆษณาเริ่มในเวลาที่เฉพาะเจาะจงก็ได้-
หากต้องการเริ่มช่วงพักโฆษณาทันที ให้เรียกใช้เมธอด
liveBroadcasts.cuepointในทรัพยากรในเนื้อหาของคำขอ ให้ตั้งค่าพร็อพเพอร์ตี้insertionOffsetTimeMsเป็น0หรือไม่ระบุค่าสำหรับพร็อพเพอร์ตี้นั้น และไม่ระบุค่าสำหรับพร็อพเพอร์ตี้walltimeMsสำคัญ: โปรดทราบว่าผู้ชมจะไม่เห็นเนื้อหาโฆษณาที่แสดงผลทันที เนื้อหาโฆษณาอาจใช้เวลาประมาณ 30 วินาทีก่อนที่จะปรากฏต่อผู้ใช้ ระหว่างที่รอ สตรีมการออกอากาศจะยังคงปรากฏต่อผู้ชม และคุณต้องดูสตรีมการออกอากาศเพื่อดูว่าเนื้อหาโฆษณาจะแสดงเมื่อใดแทนที่จะดูสตรีมการตรวจสอบ
-
หากต้องการเริ่มช่วงพักโฆษณาในเวลาที่เฉพาะเจาะจง ให้เรียกใช้
liveBroadcasts.cuepointเมธอด และใช้walltimeMsพร็อพเพอร์ตี้ เพื่อระบุเวลาที่ต้องการ ค่าพร็อพเพอร์ตี้เป็นจำนวนเต็มที่แสดงถึง การประทับเวลา Epoch
-
-
หากมีการหน่วงเวลาสตรีมการออกอากาศ คุณจะแทรกคิวพอยต์ทันทีตามที่อธิบายไว้ข้างต้น ระบุเวลาตามนาฬิกาตามที่อธิบายไว้ข้างต้น หรือระบุออฟเซ็ตเวลาเพื่อกำหนดเวลาที่จะเริ่มช่วงพักโฆษณาได้ ออฟเซ็ตเวลาจะระบุจุดในการออกอากาศ ที่ผู้ชมควรเห็นโฆษณา
ค่าการชดเชยจะวัดเป็นมิลลิวินาทีจากจุดเริ่มต้นของสตรีมการตรวจสอบสำหรับ การออกอากาศ โปรดทราบว่าหากการออกอากาศมีระยะการทดสอบ สตรีมการตรวจสอบ จะเริ่มขึ้นเมื่อการออกอากาศเปลี่ยนเป็นสถานะ
testingมิฉะนั้น สตรีมการตรวจสอบจะเริ่มขึ้นเมื่อการออกอากาศเปลี่ยนเป็นสถานะliveเมื่อแทรกคิวพอยต์ ให้ตั้งค่าพร็อพเพอร์ตี้
cuepointของทรัพยากรinsertionOffsetTimeMsเป็นการชดเชยที่ต้องการ
คำนวณค่าออฟเซ็ตเวลา
หากต้องการดึงค่าการชดเชย ให้เรียกใช้ฟังก์ชัน getCurrentTime ของ YouTube Player API สำหรับโปรแกรมเล่นที่กำลังเล่นสตรีมการตรวจสอบ ใช้ค่าที่ดึงมาเพื่อแทรกคิวพอยต์ในสตรีมการออกอากาศในเวลานั้น
ค่าที่เป็นไปได้สำหรับเวลาการชดเชยสามารถคำนวณได้เป็นช่วงต่อไปนี้
[(elapsed_time - broadcast_delay + Δ), (elapsed_time - Δ)]
The Δ คือบัฟเฟอร์ 5 วินาทีที่จุดเริ่มต้นและจุดสิ้นสุดของออฟเซ็ตเวลาที่เป็นไปได้เมื่อ YouTube แทรกคิวพอยต์ได้อย่างไม่แม่นยำ ตัวอย่างเช่น
- การออกอากาศมีระยะการทดสอบ 5 นาที
- มีการหน่วงเวลาสตรีมการออกอากาศ 60 วินาทีหลังจากสตรีมการตรวจสอบ
- ผู้ถ่ายทอดสดแทรกคิวพอยต์ 4 นาทีหลังจากที่การออกอากาศเปลี่ยนเป็นสถานะ
live(ซึ่งเป็นเวลา 3 นาทีหลังจากสตรีมการออกอากาศปรากฏ)
ในกรณีนี้ ช่วงเวลาการชดเชยที่เป็นไปได้คือ [(485,000), (535,000)]
เวลาเหล่านี้ระบุเป็นมิลลิวินาทีและคำนวณโดยใช้ค่าต่อไปนี้
elapsed_time=540000– สตรีมการตรวจสอบทำงานมาเก้า นาที (540 วินาที, 540,000 มิลลิวินาที) เมื่อมีการเรียกใช้เมธอดliveBroadcasts.cuepointbroadcast_delay=60000– มีการหน่วงเวลาสตรีมการออกอากาศ 60 วินาที หรือ 60, 000 มิลลิวินาทีΔ=5000– บัฟเฟอร์ 5 วินาทีเมื่อแทรกคิวพอยต์ได้อย่างไม่น่าเชื่อถือ
การแก้ปัญหาและการจัดการข้อผิดพลาด
หลักเกณฑ์ต่อไปนี้อธิบายวิธีแก้ปัญหาที่เฉพาะเจาะจงที่อาจเกิดขึ้น ดูรายการข้อผิดพลาดที่เมธอด API แต่ละรายการอาจแสดงผลได้ที่ YouTube Live Streaming API - Errors
-
เมื่อการออกอากาศเปลี่ยนจากสถานะหนึ่งไปยังอีกสถานะหนึ่ง ระบบอาจกำหนดสถานะอื่นให้ชั่วคราวในขณะที่ YouTube ดำเนินการที่เชื่อมโยงกับการเปลี่ยนสถานะให้เสร็จสมบูรณ์ ตัวอย่างเช่น หากคุณส่งคำขอ
liveBroadcasts.transitionเพื่อเปลี่ยนสถานะการออกอากาศจากreadyเป็นtestingYouTube จะตั้งค่าสถานะการออกอากาศเป็นtestStartingแล้วดำเนินการที่เชื่อมโยงกับการเปลี่ยนสถานะให้เสร็จสมบูรณ์ เมื่อดำเนินการทั้งหมดเสร็จแล้ว YouTube จะอัปเดตสถานะการออกอากาศเป็นtestingซึ่งแสดงว่าการเปลี่ยนสถานะเสร็จสมบูรณ์แล้วหากการออกอากาศติดอยู่ในสถานะ
testStartingหรือliveStartingคุณต้องเรียกใช้เมธอดliveBroadcasts.deleteและลบการออกอากาศ จากนั้นสร้างการออกอากาศใหม่ เชื่อมโยงกับการถ่ายทอดสด และดำเนินการตามกระบวนการทดสอบต่อไปดังที่ระบุไว้ในเอกสารประกอบของเมธอด
liveBroadcasts.transitionคุณควรยืนยันว่าค่าของพร็อพเพอร์ตี้status.streamStatusสำหรับสตรีมที่เชื่อมโยงกับการออกอากาศเป็นactiveก่อนที่จะเรียกใช้เมธอดนั้น