ภาพรวม API สตรีมมิงแบบสดของ YouTube

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 เป็นต้น) และช่วยให้ผู้ใช้แทรกจุดเริ่มโฆษณาได้

ก่อนจะเริ่ม

  1. คุณต้องมีบัญชี Google เพื่อเข้าถึง Google API Console, ขอคีย์ API และลงทะเบียนแอปพลิเคชัน

  2. ลงทะเบียนแอปพลิเคชันกับ Google เพื่อให้แอปพลิเคชันสามารถส่งคำขอ API

  3. หลังจากลงทะเบียนแอปพลิเคชันแล้ว ให้เลือก YouTube Data API เป็นหนึ่งในบริการที่แอปพลิเคชันของคุณใช้ ดังนี้

    1. ไปที่ API Console และเลือกโปรเจ็กต์ที่คุณเพิ่งลงทะเบียน
    2. ไปที่หน้า API ที่เปิดใช้ ในรายการ API ให้ตรวจสอบว่าสถานะสำหรับ YouTube Data API v3 เป็นเปิด และหากคุณเป็นพาร์ทเนอร์เนื้อหาของ YouTube ให้ใช้ API ของ Content ID ของ YouTube

  4. ทำความคุ้นเคยกับแนวคิดหลักของรูปแบบข้อมูล 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 แสดงโฆษณาตอนกลางระหว่างออกอากาศได้

ช่วงพักโฆษณาจะมีลักษณะดังต่อไปนี้

  1. ระยะเวลานี้มีระยะเวลาที่กำหนดไว้แล้ว ซึ่งคุณจะตั้งค่าโดยใช้พร็อพเพอร์ตี้ durationSecs ของทรัพยากร cuepoint หลังจากช่วงพักโฆษณาสิ้นสุดลง ผู้ชมจะกลับไปที่การถ่ายทอดสด

  2. เมื่อมีช่วงพักโฆษณา โฆษณาจะแสดงในโปรแกรมเล่นวิดีโอเฉพาะสำหรับผู้ชมที่กำลังรับชมการออกอากาศเมื่อมีการแทรกจุดเริ่มโฆษณา โฆษณาจะไม่ทำงานเมื่อผู้ชมรีเฟรชหน้าที่กำลังออกอากาศ หรือเมื่อผู้เข้าชมเริ่มดูการออกอากาศหลังจากแทรกจุดเริ่มโฆษณาแล้ว

ลำดับขั้นตอนด้านล่างแสดงถึงแนวทางปฏิบัติแนะนำสำหรับการแทรกช่วงพักโฆษณาระหว่างออกอากาศ

ตั้งค่าการชดเชยเวลา

เมื่อแทรกจุดเริ่มโฆษณา คุณระบุได้ว่าควรแทรกจุดดังกล่าวทันทีหรือแทรกจากจุดที่เจาะจงในการออกอากาศ ตัวเลือกของคุณจะขึ้นอยู่กับว่าสตรีมการออกอากาศของวิดีโอมีความล่าช้าหรือไม่

  • หากสตรีมการออกอากาศไม่ล่าช้า คุณจะแทรกจุดเริ่มโฆษณาทันทีหรือใช้พร็อพเพอร์ตี้ 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 ก่อนที่จะเรียกใช้เมธอดนั้น