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