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 ได้เพียง 1 รายการเท่านั้น |
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
ก่อนที่จะเรียกใช้เมธอดนั้น