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 ให้ตรวจสอบว่าสถานะสำหรับ YouTube Data API v3 เป็นเปิด และหากคุณเป็นพาร์ทเนอร์เนื้อหาของ YouTube ให้ใช้ API ของ Content ID ของ YouTube
-
ทำความคุ้นเคยกับแนวคิดหลักของรูปแบบข้อมูล JSON (JavaScript Object Notation) JSON คือรูปแบบข้อมูลทั่วไปที่ไม่อิงตามภาษา ซึ่งให้การนำเสนอข้อความธรรมดาของโครงสร้างข้อมูลที่กำหนดเอง สำหรับข้อมูลเพิ่มเติม โปรดดู json.org
การให้สิทธิ์คำขอ API
ตามที่ระบุไว้ข้างต้น API สตรีมมิงแบบสดจะใช้ฟังก์ชันการทำงานที่ทางเทคนิคแล้วเป็นส่วนหนึ่งของ YouTube Data API หรือ 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 ใช้รหัสเดียวกัน และหลังจากสร้างการออกอากาศโดยใช้ Live Streaming API คุณจะใช้ YouTube Data API เพื่อให้ข้อมูลเมตาเพิ่มเติมเกี่ยวกับวิดีโอได้ |
liveStream |
มีข้อมูลเกี่ยวกับสตรีมวิดีโอที่คุณกำลังส่งไปยัง YouTube สตรีมจะมีเนื้อหาที่จะนำไปเผยแพร่ให้ผู้ใช้ YouTube ทราบ เมื่อสร้างแล้ว ทรัพยากร liveStream จะเชื่อมโยงกับทรัพยากร liveBroadcast ได้เพียงรายการเดียว (ในทำนองเดียวกัน ทรัพยากร 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 ) รายการทรัพยากรอย่างน้อย 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
จะ���ีส่วนต่อไปนี้
snippet
cdn
status
ทุกส่วนเป็นออบเจ็กต์ที่มีพร็อพเพอร์ตี้ที่ซ้อนกันอยู่ โดยคุณอาจคิดว่าออบเจ็กต์เหล่านี้เป็นกลุ่มช่องข้อมูลเมตาที่เซิร์ฟเวอร์ API อาจ (หรืออาจไม่) ดึงข้อมูลก็ได้ ดังนั้น พารามิเตอร์ part
จึงกำหนดให้คุณต้องเลือกคอมโพเนนต์ทรัพยากรที่แอปพลิเคชันของคุณใช้งานจริง ข้อกำหนดนี้มีจุดประสงค์ที่สำคัญ 2 ประการ ได้แก่
- ลดเวลาในการตอบสนองโดยการป้องกันไม่ให้เซิร์ฟเวอร์ API ใช้เวลาในการเรียกดูช่องข้อมูลเมตาที่แอปพลิเคชันของคุณไม่ได้ใช้
- ซึ่งช่วยลดการใช้แบนด์วิดท์ด้วยการลด (หรือขจัด) ปริมาณ��้อมูลที่ไม่จำเป็นที่แอปพลิเคชันของคุณอาจดึงมา
เมื่อเวลาผ่านไป เมื่อทรัพยากรมีส่วนต่างๆ เพิ่ม��ากขึ้น ประโยชน์เหล่านี้จะเพิ่มขึ้นเรื่อยๆ เนื่องจากแอปพลิเคชันจะไม่ขอพร็อพเพอร์ตี้ที่เพิ่งแนะนำซึ่งไม่รองรับ
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
อ้างสิทธิ์เนื้อหาของคุณ
หากต้องการแสดงโฆษณาระหว่างการออกอากาศ คุณจะต้องอ้างสิทธิ์วิดีโอที่ออกอากาศก่อนที่การถ่ายทอดสดจะเริ่มขึ้น คุณต้องเป็นพาร์ทเนอร์ด้านเนื้อหาของ YouTube ที่เข้าร่วมโปรแกรม Content ID เพื่ออ้างสิทธิ์เนื้อหา
ขั้นตอนการอ้างสิทธิ์วิดีโอถ่ายทอดสดของคุณแตกต่างจากขั้นตอนปกติในการอ้างสิทธิ์วิดีโอ เมื่ออ้างสิทธิ์วิดีโอสด คุณต้องสร้างการอ้างสิทธิ์ก่อนจะมีวิดีโอจริง API รองรับการทำงานนี้ และเอกสาร ชีวิตของการออกอากาศ จะอธิบายการเรียก YouTube Content ID API ที่ช่วยให้คุณสามารถสร้างการอ้างสิทธิ์ของคุณ
ดูตัวอย่างและทดสอบเนื้อหา
เมื่อได้รับสตรีมวิดีโอขาเข้าของคุณแล้ว YouTube สามารถออกอากาศวิดีโอนั้นในสตรีมขาออก 2 สตรีมที่แตกต่างกัน:
-
ตรวจสอบสตรีมช่วยให้คุณดูตัวอย่าง (และทดสอบ) การเผยแพร่วิดีโอได้ โดยเป็นสตรีมส่วนตัวที่มีเพียงคุณเท่านั้นที่เข้าถึงได้ คุณสามารถเปลี่ยนการออกอากาศไปยังระยะ
testing
ได้ต่อเมื่อสตรีมจอภาพของการออกอากาศเปิดใช้งานอยู่เท่านั้น สตรีมตรวจสอบไม่แสดงช่วงพักโฆษณา -
สตรีมการออกอากาศคือสตรีมที่แสดงต่อผู้ชม คุณตั้งค่าสถานะความเป็นส่วนตัวของการออกอากาศเป็น
public
,private
หรือunlisted
ได้ (การออกอากาศส่วนตัวจะปรากฏต่อผู้ใช้ที่ได้รับเชิญให้รับชมอย่างชัดเจนเท่านั้น ส่วนการออกอากาศที่ไม่เป็นสาธารณะจะแสดงต่อทุกคนที่มีลิงก์เ��ื่อดูการออกอากาศได้)คุณสามารถเลือกเลื่อนสตรีมออกอากาศเพื่อไม่ให้สตรีมทำงานพร้อมกันกับสตรีมบนหน้าจอได้ การหน่วงเวลาสตรีมออกอากาศจะช่วยให้คุณควบคุมเวลาที่จะแทรกจุดเริ่มโฆษณาลงในการออกอากาศได้อย่างละเอียดขึ้น
อย่างไรก็ตาม การเลื่อนเวลาออกอากาศจะทำให้ผู้นำเสนอสดโต้ตอบกับผู้ชมที่กำลังรับชมได้ยาก นอกจากนี้ การเลื่อนเวลาออกอากาศจะเพิ่มความเป็นไปได้ที่ผู้ชมจะค้นพบรายละเอียดสำคัญเกี่ยวกับเหตุการณ์จากแหล่งที่มาอื่นๆ ที่ไม่ใช่การออกอากาศของคุณ ตัวอย่างเช่น หากคุณกำลังออกอากาศการแข่งขันกีฬาล่าช้า 60 วินาที ผู้ชมอาจได้เรียนรู้เกี่ยวกับช่วงสำคัญในเหตุการณ์จากแหล่งข่าวแบบเรียลไทม์อื่นๆ ก่อนที่จะเห็นเหตุการณ์จริงในการถ่ายทอดสด
YouTube ขอแนะนำให้คุณเปิดใช้สตรีมบนหน้าจอสำหรับการออกอากาศเพื่อให้ทดสอบเนื้อหาได้ คุณควรเลือกว่าจะเลื่อนเวลาออกอากาศหรือไม่โดยอิงตามความต้องการที่จะควบคุมช่วงเวลาของจุดเริ่มโฆษณา แทนที่จะเป็นการโต้ตอบกับผู้ชมหรือนำเสนอเหตุการณ์แบบเรียลไทม์
การแสดงโฆษณาตอนกลางระหว่างสตรีมการออกอากาศ
ระหว่างการออกอากาศ คุณสามารถแทรกจุดเริ่มโฆษณาเพื่อระบุว่าช่วงพักโฆษณาควรเริ่มต้นในการออกอากาศโดยเร็วที่สุดหรือในเวลาที่ระบุ ช่วงพักโฆษณาช่วยให้ YouTube แสดงโฆษณาตอนกลางระหว่างออกอากาศได้
ช่วงพักโฆษณาจะมีลักษณะดังต่อไปนี้
-
ระยะเวลานี้มีระยะเวลาที่กำหนดไว้แล้ว ซึ่งคุณจะตั้งค่าโดยใช้พร็อพเพอร์ตี้
durationSecs
ของทรัพยากรcuepoint
หลังจากช่วงพักโฆษณาสิ้นสุดลง ผู้ชมจะกลับไปที่การถ่ายทอดสด -
เมื่อมีช่วงพักโฆษณา โฆษณาจะแสดงในโปรแกรมเล่นวิดีโอเฉพาะสำหรับผู้ชมที่กำลังรับชมการออกอากาศเมื่อมีการแทรกจุดเริ่มโฆษณา โฆษณาจะไม่ทำงานเมื่อผู้ชมรีเฟรชหน้าที่กำลังออกอากาศ หรือเมื่อผู้เข้าชมเริ่มดูการออกอากาศหลังจากแทรกจุดเริ่มโฆษณาแล้ว
ลำดับขั้นตอนด้านล่างแสดงถึงแนวทางปฏิบัติแนะนำสำหรับการแทรกช่วงพักโฆษณาระหว่างออกอากาศ
ตั้งค่าการชดเชยเวลา
เมื่อแทรกจุดเริ่มโฆษณา คุณระบุได้ว่าควรแทรกจุดดังกล่าวทันทีหรือแทรกจากจุดที่เจาะจงในการออกอากาศ ตัวเลือกของคุณจะขึ้นอยู่กับว่าสตรีมการออกอากาศของวิดีโอมีความล่าช้าหรือไม่
-
หากสตรีมการออกอากาศไม่ล่าช้า คุณจะแทรกจุดเริ่มโฆษณาทันทีหรือใช้พร็อพเพอร์ตี้
walltimeMs
เพื่อเริ่มช่วงพักโฆษณาในเวลาที่เฉพาะเจาะจงก็ได้-
หากต้องการเริ่มช่วงพักโฆษณาทันที ให้เรียกใช้เมธอด
liveBroadcasts.cuepoint
ในทรัพยากรในส่วนเนื้อหาของคำขอ ให้ตั้งค่าของพร็อพเพอร์ตี้insertionOffsetTimeMs
เป็น0
หรือไม่ระบุค่าสำหรับพร็อพเพอร์ตี้นั้น และไม่ต้องระบุค่าสำหรับพร็อพเพอร์ตี้walltimeMs
สำคัญ: โปรดทราบว่าผู้ชมจะไม่เห็นเนื้อหาโฆษณาผลลัพธ์ทันที อาจมีความล่าช้าประมาณ 30 วินาทีก่อนที่เนื้อหาโฆษณาจะแสดงต่อผู้ใช้ ในช่วงหน่วงเวลานั้น สตรีมการออกอากาศของคุณจะยังคงปรากฏต่อผู้ชม และคุณต้องดูสตรีมออกอากาศเพื่อพิจารณาว่าเนื้อหาโฆษณาจะปรากฏขึ้นจริงเมื่อใดแทนสตรีมบนหน้าจอ
-
หากต้องการเริ่มช่วงพักโฆษณาในเวลาที่เจาะจง ให้เรียกใช้เมธอด
liveBroadcasts.cuepoint
และใช้พร็อพเพอร์ตี้walltimeMs
เพื่อระบุเวลาที่ต้องการ ค่าพร็อพเพอร์ตี้เป็นจำนวนเต็มที่แสดงการประทับเวลา Epoch
-
หากต้องการเริ่มช่วงพักโฆษณาทันที ให้เรียกใช้เมธอด
-
หากสตรีมการออกอากาศล่าช้า คุณสามารถแทรกจุดเริ่มโฆษณาได้ทันทีตามที่อธิบายไว้ข้างต้น ระบุเวลาของนาฬิกาตามที่อธิบายไว้ข้างต้น หรือจะระบุออฟเซ็ตเวลาเพื่อกำหนดเวลาที่ช่วงพักโฆษณาจะเริ่มก็ได้ ออฟเซ็ตเวลาระบุจุดในการออก���ากาศ เวลาที่ผู้ชมควรเห็นโฆษณา
ค่าออฟเซ็ตจะวัดเป็นมิลลิวินาทีนับจากจุดเริ่มต้นของสตรีมจอภาพสำหรับการออกอากาศ โปรดทราบว่าหากการออกอากาศมีระยะทดสอบ สตรีมของหน้าจอจะเริ่มเมื่อการออกอากาศเปลี่ยนเป็นส��านะ
testing
หรือไม่เช่นนั้น สตรีมที่จอภาพจะเริ่มเมื่อการออกอากาศเปลี่ยนเป็นสถานะlive
เมื่อแทรกจุดเริ่มโฆษณา ให้ตั้งค่าพร็อพเพอร์ตี้
insertionOffsetTimeMs
ของทรัพยากรcuepoint
เป็นออฟเซ็ตที่ต้องการ
คำนวณค่าออฟเซ็ตเวลา
หากต้องการดึงค่าออฟเซ็ต ให้เรียกใช้ฟังก์ชัน getCurrentTime
ของ YouTube Player API สำหรับโปรแกรมเล่นที่เล่นสตรีมจอภาพ ใช้ค่าที่ดึงมาเพื่อแทรกจุดเริ่มโฆษณาในสตรีมการออกอากาศในเวลานั้น
ค่าที่เป็นไปได้สำหรับเวลาออฟเซ็ตสามารถคำนวณได้เป็นช่วงต่อไปนี้
[(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 ดำเนินการที่เกี่ยวข้องกับการเปลี่ยนดังกล่าวให้เสร็จสิ้น ตัวอย่างเช่น หากคุณส่งคำขอ
liveBroadcasts.transition
เพื่อเปลี่ยนสถานะของการออกอากาศจากready
เป็นtesting
ทาง YouTube จะตั้งค่าสถานะการออกอากาศเป็นtestStarting
แล้วดำเนินการที่เกี่ยวข้องกับการเปลี่ยนสถานะให้เสร็จสมบูรณ์ เมื่อดำเนินการทั้งหมดเรียบร้อยแล้ว YouTube จะอัปเดตสถานะการออกอากาศเป็นtesting
ซึ่งแสดงว่าการเปลี่ยนแปลงเสร็จสมบูรณ์แล้วหากการออกอากาศค้างอยู่ที่สถานะ
testStarting
หรือliveStarting
คุณต้องเรียกใช้เมธอดliveBroadcasts.delete
และลบการออกอากาศ จากนั้นสร้างการออกอากาศใหม่ เชื่อมโยงกับสตรีมแบบสด และดำเนินการทดสอบต่อไปตามที่ระบุไว้ในเอกสารประกอบของเมธอด
liveBroadcasts.transition
คุณควรยืนยันว่าค่าของพร็อพเพอร์ตี้status.streamStatus
สำหรับสตรีมที่เชื่อมโยงกับการออกอากาศเป็นactive
ก่อนที่จะเรียกใช้เมธอดนั้น