LiveStreams

ทรัพยากร liveStream มีข้อมูลเกี่ยวกับสตรีมวิดีโอที่คุณส่งไปยัง YouTube สตรีมจะแสดงเนื้อหาที่จะออกอากาศไปยังผู้ใช้ YouTube เมื่อสร้างแล้ว ทรัพยากร liveStream จะเชื่อมโยงกับทรัพยากร liveBroadcast อย่างน้อย 1 รายการได้

เมธอด

API รองรับวิธีการต่อไปนี้สำหรับทรัพยากร liveStreams

list
แสดงรายการสตรีมวิดีโอที่ตรงกับพารามิเตอร์คำขอ API ลองใช้เลย
แทรก
สร้างสตรีมวิดีโอ สตรีมนี้ช่วยให้คุณส่งวิดีโอไปยัง YouTube ได้ ซึ่งจะออกอากาศวิดีโอต่อผู้ชมได้ ลองใช้เลย
update
อัปเดตสตรีมวิดีโอ หากอัปเดตพร็อพเพอร์ตี้ที่ต้องการเปลี่ยนไม่ได้ คุณจะต้องสร้างสตรีมใหม่ที่มีการตั้งค่าที่เหมาะสม ลองใช้เลย
ลบ
ลบสตรีมวิดีโอ ลองใช้เลย

การนําเสนอทรัพยากร

โครงสร้าง JSON ต่อไปนี้แสดงรูปแบบของทรัพยากร liveStreams

{
  "kind": "youtube#liveStream",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "isDefaultStream": boolean
  },
  "cdn": {
    "ingestionType": string,
    "ingestionInfo": {
      "streamName": string,
      "ingestionAddress": string,
      "backupIngestionAddress": string
    },
    "resolution": string,
    "frameRate": string
  },
  "status": {
    "streamStatus": string,
    "healthStatus": {
      "status": string,
      "lastUpdateTimeSeconds": unsigned long,
      "configurationIssues": [
        {
          "type": string,
          "severity": string,
          "reason": string,
          "description": string
        }
      ]
    }
  },
  "contentDetails": {
    "closedCaptionsIngestionUrl": string,
    "isReusable": boolean
  }
}

พร็อพเพอร์ตี้

ตารางต่อไปนี้จะกำหนดพร็อพเพอร์ตี้ที่ปรากฏในทรัพยากรนี้

พร็อพเพอร์ตี้
kind string
ระบุประเภทของทรัพยากร API ค่าจะเป็น youtube#liveStream
etag etag
Etag ของทรัพยากรนี้
id string
รหัสที่ YouTube กำหนดเพื่อระบุสตรีมนั้นๆ โดยไม่ซ้ำกัน
snippet object
ออบเจ็กต์ snippet มีรายละเอียดพื้นฐานเกี่ยวกับสตรีม ซึ่งรวมถึงช่อง ชื่อ และคําอธิบาย
snippet.publishedAt datetime
วันที่และเวลาที่สร้างสตรีม ค่าที่ระบุอยู่ในรูปแบบ ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ)
snippet.channelId string
รหัสที่ YouTube ใช้เพื่อระบุช่องที่กำลังส่งสตรีมอย่างเจาะจง
snippet.title string
ชื่อของสตรีม ค่าต้องมีความยาวระหว่าง 1 ถึง 128 อักขระ
snippet.description string
คําอธิบายของสตรีม ค่าต้องยาวไม่เกิน 10,000 อักขระ
snippet.isDefaultStream boolean
เราจะเลิกใช้งานพร็อพเพอร์ตี้นี้ตั้งแต่วันที่ 1 กันยายน 2020 เป็นต้นไป เมื่อถึงเวลาดังกล่าว YouTube จะหยุดสร้างสตรีมเริ่มต้นและออกอากาศเริ่มต้นเมื่อเปิดใช้ช่องสำหรับการสตรีมมิงแบบสด โปรดดูรายละเอียดเพิ่มเติมในประกาศการเลิกใช้งาน
พร็อพเพอร์ตี้นี้ระบุว่าสตรีมนี้เป็นสตรีมเริ่มต้นของช่องหรือไม่

วิธีการทำงานของสตรีมเริ่มต้น

เมื่อเปิดใช้การสตรีมแบบสดในช่อง YouTube แล้ว YouTube จะสร้างสตรีมเริ่มต้นและการออกอากาศเริ่มต้นสำหรับช่อง สตรีมจะกำหนดวิธีที่เจ้าของช่องส่งวิดีโอสดไปยัง YouTube และการออกอากาศคือวิธีที่ผู้ชมจะเห็นสตรีมเริ่มต้น เจ้าของช่องสามารถใช้วิธีการ liveStreams.list และ liveBroadcasts.list เพื่อระบุทรัพยากรเหล่านี้

สตรีมเริ่มต้นของช่องจะคงอยู่อย่างไม่มีกำหนด ไม่มีเวลาเริ่มต้นหรือสิ้นสุดที่เชื่อมโยงอยู่ และไม่สามารถลบได้ เจ้าของช่องเพียงเริ่มส่งบิตวิดีโอและสตรีมก็จะดำเนินต่อไปโดยอัตโนมัติ

เมื่อสตรีมสิ้นสุดลง YouTube จะแปลงการออกอากาศที่เสร็จสมบูรณ์เป็นวิดีโอ YouTube และกำหนดรหัสวิดีโอ YouTube ให้กับวิดีโอ หลังจากแปลงเสร็จแล้ว วิดีโอจะรวมอยู่ในรายการวิดีโอที่อัปโหลดของช่อง วิดีโอจะยังไม่พร้อมใช้งานทันทีที่การออกอากาศสิ้นสุดลง และระยะเวลาในการเลื่อนเวลาจะสัมพันธ์กับระยะเวลาจริงของการออกอากาศ
cdn object
ออบเจ็กต์ cdn จะกำหนดการตั้งค่าเครือข่ายนำส่งข้อมูล (CDN) ของสตรีมแบบสด การตั้งค่าเหล่านี้ให้รายละเอียดเกี่ยวกับวิธีสตรีมเนื้อหาไปยัง YouTube
cdn.format string
เราได้เลิกใช้งานพร็อพเพอร์ตี้นี้ตั้งแต่วันที่ 18 เมษายน 2016 และจะไม่รองรับอีกต่อไปตั้งแต่วันที่ 17 สิงหาคม 2020 คำขอที่ยังคงใช้พร็อพเพอร์ตี้นี้ ณ วันที่ดังกล่าวจะดำเนินการไม่สำเร็จ

ให้ใช้พร็อพเพอร์ตี้ cdn.frameRate และ cdn.resolution เพื่อระบุอัตราเฟรมและความละเอียดแยกกันแทน
cdn.ingestionType string
วิธีการหรือโปรโตคอลที่ใช้ส่งสตรีมวิดีโอ

ค่าที่ใช้ได้สำหรับพร็อพเพอร์ตี้นี้มีดังนี้
  • dash
  • hls
  • rtmp (ซึ่งรวมถึง RTMPS)
cdn.ingestionInfo object
ออบเจ็กต์ ingestionInfo มีข้อมูลที่ YouTube ระบุไว้ซึ่งคุณต้องใช้เพื่อส่งสตรีมไปยัง YouTube
cdn.ingestionInfo.streamName string
ชื่อสตรีมที่ YouTube กำหนดให้กับสตรีมวิดีโอ
cdn.ingestionInfo.ingestionAddress string
URL การส่งผ่านข้อมูลหลักที่คุณควรใช้เพื่อสตรีมวิดีโอไปยัง YouTube หากคุณใช้ RTMP, DASH หรือ HLS คุณต้องสตรีมวิดีโอไปยัง URL นี้

คุณอาจต้องป้อน URL ของสตรีมและชื่อสตรีมแยกกัน หรืออาจต้องต่อ URL และสตรีมเข้าด้วยกันในรูปแบบต่อไปนี้ ทั้งนี้ขึ้นอยู่กับแอปพลิเคชันหรือเครื่องมือที่คุณใช้เข้ารหัสสตรีมวิดีโอ
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
URL การส่งผ่านข้อมูลสำรองที่คุณควรใช้เพื่อสตรีมวิดีโอไปยัง YouTube หากคุณใช้ RTMP, DASH หรือ HLS คุณมีตัวเลือกในการสตรีมเนื้อหาที่ส่งไปยัง ingestionAddress ไปยัง URL นี้พร้อมกัน
cdn.ingestionInfo.rtmpsIngestionAddress string
URL การส่งผ่านข้อมูลหลักที่คุณควรใช้เพื่อสตรีมวิดีโอไปยัง YouTube หากคุณใช้ RTMPS คุณต้องสตรีมวิดีโอไปยัง URL นี้

คุณอาจต้องป้อน URL ของสตรีมและชื่อสตรีมแยกกัน หรืออาจต้องต่อ URL และสตรีมเข้าด้วยกันในรูปแบบต่อไปนี้ ทั้งนี้ขึ้นอยู่กับแอปพลิเคชันหรือเครื่องมือที่คุณใช้เข้ารหัสสตรีมวิดีโอ
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
URL การส่งผ่านข้อมูลสำรองที่คุณควรใช้เพื่อสตรีมวิดีโอไปยัง YouTube หากคุณใช้ RTMPS
cdn.resolution string
ความละเอียดของข้อมูลวิดีโอขาเข้า

ค่าที่ใช้ได้สำหรับพร็อพเพอร์ตี้นี้มีดังนี้
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: ใช้การตั้งค่านี้เพื่อระบุว่า YouTube ควรตรวจหาความละเอียดของวิดีโอที่สตรีมโดยอัตโนมัติ คุณต้องตั้งค่า cdn.frameRate เป็น variable ด้วย
    ดูการตั้งค่าโปรแกรมเปลี่ยนไฟล์ที่แนะนำได้ในศูนย์ช่วยเหลือของ YouTube
cdn.frameRate string
อัตราเฟรมของข้อมูลวิดีโอขาเข้า

ค่าที่ใช้ได้สำหรับพร็อพเพอร์ตี้นี้มีดังนี้
  • 30fps
  • 60fps
  • variable: ใช้การตั้งค่านี้เพื่อระบุว่า YouTube ควรตรวจหาอัตราเฟรมของวิดีโอที่สตรีมโดยอัตโนมัติ คุณต้องตั้งค่า cdn.resolution เป็น variable ด้วย
    ดูการตั้งค่าโปรแกรมเปลี่ยนไฟล์ที่แนะนำได้ในศูนย์ช่วยเหลือของ YouTube
status object
ออบเจ็กต์ status มีข้อมูลเกี่ยวกับสถานะของสตรีมแบบสด
status.streamStatus string
สถานะของสตรีม

ค่าที่ใช้ได้สำหรับพร็อพเพอร์ตี้นี้มีดังนี้
  • active – สตรีมอยู่ในสถานะ "ทำงานอยู่" ซึ่งหมายความว่าผู้ใช้กำลังรับข้อมูลผ่านสตรีม
  • created – สร้างสตรีมแล้ว แต่ไม่มีการตั้งค่า CDN ที่ถูกต้อง
  • error – มีข้อผิดพลาดในสตรีม
  • inactive – สตรีมอยู่ในสถานะ "ไม่ได้ใช้งาน" ซึ่งหมายความว่าผู้ใช้ไม่ได้รับข้อมูลผ่านสตรีม
  • ready – สตรีมมีการตั้งค่า CDN ที่ถูกต้อง
status.healthStatus object
ออบเจ็กต์นี้มีข้อมูลเกี่ยวกับสถานะประสิทธิภาพของสตรีมแบบสด ซึ่งอาจใช้เพื่อระบุ วินิจฉัย และแก้ไขปัญหาการสตรีมได้
status.healthStatus.status string
รหัสสถานะของสตรีมนี้

ค่าที่ถูกต้องสำหรับพร็อพเพอร์ตี้นี้ ได้แก่
  • good – ไม่มีปัญหาการกําหนดค่าที่ความรุนแรงเป็น warning ขึ้นไป
  • ok – ไม่มีปัญหาการกําหนดค่าที่มีความรุนแรงเป็น error
  • bad – สตรีมมีปัญหาบางอย่างที่ความรุนแรงคือ error
  • noData – เซิร์ฟเวอร์แบ็กเอนด์ของสตรีมมิงแบบสดของ YouTube ไม่มีข้อมูลเกี่ยวกับสถานะความเสถียรของสตรีม
status.healthStatus.lastUpdateTimeSeconds unsigned long
เวลาที่อัปเดตสถานะความสมบูรณ์ของสตรีมครั้งล่าสุด ค่าแสดงการประทับเวลา UNIX เป็นวินาที
status.healthStatus.configurationIssues[] list
ออบเจ็กต์นี้มีรายการปัญหาการกําหนดค่าที่ส่งผลกระทบต่อสตรีม
status.healthStatus.configurationIssues[].type string
ระบุประเภทของข้อผิดพลาดที่ส่งผลต่อสตรีม
status.healthStatus.configurationIssues[].severity string
บ่งบอกความรุนแรงของปัญหาต่อสตรีม

ค่าที่ถูกต้องสำหรับพร็อพเพอร์ตี้นี้คือ
  • info – วิดีโอออกอากาศแก่ผู้ชมโดยไม่ส่งผลเสียต่อประสิทธิภาพ
  • warning – วิดีโอออกอากาศไปยังผู้ชม แต่ประสิทธิภาพไม่ดีที่สุด
  • error – ออกอากาศวิดีโอไปยังผู้ชมไม่ได้
status.healthStatus.configurationIssues[].reason string
คำอธิบายสั้นๆ ของปัญหา เอกสารปัญหาการกําหนดค่าสําหรับทรัพยากรสตรีมแบบสดจะระบุเหตุผลที่เกี่ยวข้องกับปัญหาการกําหนดค่าแต่ละประเภท
status.healthStatus.configurationIssues[].description string
คําอธิบายปัญหาโดยละเอียด คำอธิบายจะระบุข้อมูลเกี่ยวกับวิธีแก้ไขปัญหา (หากเป็นไปได้) เอกสารปัญหาการกำหนดค่าสำหรับทรัพยากรสตรีมแบบสดจะแสดงประเภทปัญหาการกำหนดค่าทั้งหมดและคำอธิบายที่เกี่ยวข้อง
contentDetails object
ออบเจ็กต์ content_details มีข้อมูลเกี่ยวกับสตรีม รวมถึง URL การส่งผ่านข้อมูลคำบรรยายแทนเสียง
contentDetails.closedCaptionsIngestionUrl string
URL การส่งผ่านข้อมูลที่ส่งคำบรรยายแทนเสียงของสตรีมนี้
contentDetails.isReusable boolean
ระบุว่าสตรีมสามารถนำมาใช้ซ้ำได้หรือไม่ ซึ่งหมายความว่าสามารถเชื่อมโยงกับหลายการออกอากาศได้ เป็นเรื่องปกติที่ผู้ออกอากาศจะใช้สตรีมเดียวกันซ้ำสำหรับการออกอากาศหลายรายการหากออกอากาศเหล่านั้นเกิดขึ้นในเวลาที่ต่างกัน

หากคุณตั้งค่านี้เป็น false สตรีมจะไม่สามารถนํามาใช้ซ้ำได้ ซึ่งหมายความว่าจะเชื่อมโยงกับสตรีมออกอากาศได้เพียงรายการเดียว สตรีมที่นำมาใช้ซ้ำไม่ได้แตกต่างจากสตรีมที่นำมาใช้ซ้ำได้ดังนี้
  • สตรีมที่ไม่สามารถนํามาใช้ซ้ำได้จะเชื่อมโยงกับสตรีมแบบสดได้เพียงรายการเดียว
  • ระบบอัตโนมัติอาจลบสตรีมที่ไม่สามารถนำมาใช้ซ้ำได้หลังจากการออกอากาศสิ้นสุดลง
  • เมธอด liveStreams.list จะไม่แสดงสตรีมที่นํามาใช้ซ้ำไม่ได้หากคุณเรียกใช้เมธอดและตั้งค่าพารามิเตอร์ mine เป็น true วิธีเดียวที่จะใช้เมธอดดังกล่าวเพื่อเรียกข้อมูลทรัพยากรสำหรับสตรีมที่นํามาใช้ซ้ำไม่ได้คือการใช้พารามิเตอร์ id เพื่อระบุสตรีม