LiveStreams

Tài nguyên liveStream chứa thông tin về luồng video mà bạn đang truyền đến YouTube. Luồng cung cấp nội dung sẽ được phát đến người dùng YouTube. Sau khi được tạo, một tài nguyên liveStream có thể được liên kết với một hoặc nhiều tài nguyên liveBroadcast.

Phương pháp

API hỗ trợ các phương thức sau cho tài nguyên liveStreams:

list
Trả về danh sách luồng video khớp với thông số yêu cầu API. Thử ngay.
chèn
Tạo luồng video. Luồng phát cho phép bạn gửi video đến YouTube để có thể phát video đó cho khán giả. Thử ngay.
cập nhật
Cập nhật luồng video. Nếu không thể cập nhật các thuộc tính mà bạn muốn thay đổi thì bạn cần phải tạo một luồng mới có chế độ cài đặt phù hợp. Thử ngay.
xóa
Xoá luồng video. Thử ngay.

Biểu diễn tài nguyên

Cấu trúc JSON sau đây cho thấy định dạng của tài nguyên 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
  }
}

Thuộc tính

Bảng sau đây xác định các thuộc tính xuất hiện trong tài nguyên này:

Thuộc tính
kind string
Xác định loại tài nguyên API. Giá trị sẽ là youtube#liveStream.
etag etag
Etag của tài nguyên này.
id string
Mã nhận dạng mà YouTube gán để nhận dạng duy nhất luồng.
snippet object
Đối tượng snippet chứa thông tin cơ bản về luồng, bao gồm kênh, tiêu đề và nội dung mô tả.
snippet.publishedAt datetime
Ngày và giờ tạo sự kiện trực tiếp. Giá trị này được chỉ định ở định dạng ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ).
snippet.channelId string
Mã nhận dạng mà YouTube sử dụng để nhận dạng duy nhất kênh đang truyền luồng.
snippet.title string
Tiêu đề của sự kiện trực tiếp. Giá trị phải dài từ 1 đến 128 ký tự.
snippet.description string
Phần mô tả của luồng. Giá trị này không được dài hơn 10.000 ký tự.
snippet.isDefaultStream boolean
Thuộc tính này sẽ ngừng hoạt động từ hoặc sau ngày 1 tháng 9 năm 2020. Tại thời điểm đó, YouTube sẽ ngừng tạo sự kiện phát trực tiếp mặc định và phát đi theo mặc định khi một kênh được bật tính năng phát trực tiếp. Vui lòng xem thông báo về việc ngừng cung cấp để biết thêm thông tin.
Thuộc tính này cho biết luồng này có phải là luồng mặc định cho kênh hay không.

Cách hoạt động của sự kiện phát trực tiếp mặc định

Khi một kênh YouTube được bật để phát trực tiếp, YouTube sẽ tạo một sự kiện phát trực tiếp mặc định và một chương trình phát sóng mặc định cho kênh đó. Luồng xác định cách chủ sở hữu kênh gửi video trực tiếp đến YouTube và chương trình phát sóng là cách người xem có thể xem luồng mặc định. Chủ sở hữu kênh có thể dùng các phương thức liveStreams.listliveBroadcasts.list để xác định những tài nguyên này.

Luồng mặc định của kênh tồn tại vô thời hạn, không có thời gian bắt đầu hoặc kết thúc và bị xoá. Chủ sở hữu kênh chỉ cần bắt đầu gửi các bit video và sự kiện phát trực tiếp sẽ tự động diễn ra.

Khi một sự kiện trực tiếp kết thúc, YouTube sẽ chuyển đổi video phát sóng hoàn chỉnh thành một video trên YouTube và gán cho video đó một mã video trên YouTube. Sau khi quá trình chuyển đổi hoàn tất, video sẽ được đưa vào danh sách video đã tải lên của kênh. Video sẽ không xuất hiện ngay sau khi chương trình phát sóng kết thúc và thời lượng trễ sẽ liên quan đến thời lượng thực tế của chương trình phát.
cdn object
Đối tượng cdn xác định chế độ cài đặt mạng phân phối nội dung (CDN) của sự kiện phát trực tiếp. Các chế độ này cung cấp thông tin chi tiết về cách bạn phát trực tiếp nội dung lên YouTube.
cdn.format string
Tài sản này không còn được dùng từ ngày 18 tháng 4 năm 2016 và sẽ không còn được hỗ trợ kể từ ngày 17 tháng 8 năm 2020. Các yêu cầu vẫn sử dụng thuộc tính này tính đến ngày đó sẽ không thực hiện được.

Thay vào đó, hãy sử dụng các thuộc tính cdn.frameRatecdn.resolution để chỉ định tốc độ khung hình và độ phân giải một cách riêng biệt.
cdn.ingestionType string
Phương thức hoặc giao thức dùng để truyền luồng video.

Các giá trị hợp lệ cho thuộc tính này là:
  • dash
  • hls
  • rtmp (bao gồm RTMPS)
cdn.ingestionInfo object
Đối tượng ingestionInfo chứa thông tin mà YouTube cung cấp rằng bạn cần truyền luồng của mình đến YouTube.
cdn.ingestionInfo.streamName string
Tên luồng mà YouTube chỉ định cho luồng video.
cdn.ingestionInfo.ingestionAddress string
URL truyền dẫn chính mà bạn nên sử dụng để truyền video lên YouTube nếu sử dụng RTMP, DASH hoặc HLS. Bạn phải truyền video trực tuyến đến URL này.

Tùy thuộc vào ứng dụng hoặc công cụ bạn sử dụng để mã hoá luồng video, bạn có thể cần nhập URL và luồng luồng riêng biệt hoặc có thể bạn cần nối các định dạng đó theo định dạng sau:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
URL truyền dẫn dự phòng mà bạn nên dùng để phát video lên YouTube nếu sử dụng RTMP, DASH hoặc HLS. Bạn có thể chọn phát trực tuyến nội dung mà bạn đang gửi đến ingestionAddress cho URL này.
cdn.ingestionInfo.rtmpsIngestionAddress string
URL truyền dẫn chính mà bạn nên sử dụng để truyền video lên YouTube nếu sử dụng RTMPS. Bạn phải truyền trực tuyến video đến URL này.

Tùy thuộc vào ứng dụng hoặc công cụ bạn sử dụng để mã hóa luồng video của mình, bạn có thể cần nhập URL và tên luồng phát riêng biệt hoặc có thể cần nối các định dạng đó theo định dạng sau:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
URL truyền dẫn dự phòng mà bạn nên dùng để phát video lên YouTube nếu sử dụng RTMPS.
cdn.resolution string
Độ phân giải của dữ liệu video đến.

Các giá trị hợp lệ cho thuộc tính này là:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: Sử dụng chế độ cài đặt này để cho biết rằng YouTube sẽ tự động phát hiện độ phân giải của video phát trực tiếp. Bạn cũng phải đặt cdn.frameRate thành variable.
    Hãy truy cập vào Trung tâm trợ giúp YouTube để xem các chế độ cài đặt bộ mã hoá đề xuất.
cdn.frameRate string
Tốc độ khung hình của dữ liệu video đến.

Các giá trị hợp lệ cho thuộc tính này là:
  • 30fps
  • 60fps
  • variable: Sử dụng chế độ cài đặt này để cho biết rằng YouTube sẽ tự động phát hiện tốc độ khung hình của video phát trực tiếp. Bạn cũng phải đặt cdn.resolution thành variable.
    Hãy truy cập vào Trung tâm trợ giúp YouTube để xem các chế độ cài đặt bộ mã hoá đề xuất.
status object
Đối tượng status chứa thông tin về trạng thái của sự kiện phát trực tiếp.
status.streamStatus string
Trạng thái của luồng.

Các giá trị hợp lệ cho tài sản này là:
  • active – Luồng ở trạng thái đang hoạt động, nghĩa là người dùng này đang nhận dữ liệu qua luồng.
  • created – Luồng đã được tạo nhưng chưa có tùy chọn cài đặt CDN hợp lệ.
  • error – Tình trạng lỗi tồn tại trên luồng.
  • inactive – Luồng ở trạng thái không hoạt động, tức là người dùng không nhận được dữ liệu qua luồng.
  • ready – Luồng có các tùy chọn cài đặt CDN hợp lệ.
status.healthStatus object
Đối tượng này chứa thông tin về tình trạng sức khỏe của buổi phát trực tiếp. Thông tin này có thể được dùng để xác định, chẩn đoán và giải quyết các vấn đề liên quan đến việc phát trực tiếp.
status.healthStatus.status string
Mã trạng thái của luồng này.

Các giá trị hợp lệ cho tài sản này là:
  • good – Không có vấn đề về cấu hình, trong đó mức độ nghiêm trọng từ warning trở xuống.
  • ok – Không có vấn đề về cấu hình, trong đó mức độ nghiêm trọngerror.
  • bad – Luồng có một số vấn đề, trong đó mức độ nghiêm trọngerror.
  • noData – Các máy chủ phụ trợ phát trực tiếp của YouTube không có thông tin nào về tình trạng sức khỏe của sự kiện trực tiếp đó.
status.healthStatus.lastUpdateTimeSeconds unsigned long
Lần gần đây nhất mà hệ thống cập nhật trạng thái hoạt động của luồng. Giá trị này phản ánh dấu thời gian UNIX tính bằng giây.
status.healthStatus.configurationIssues[] list
Đối tượng này chứa danh sách các vấn đề về cấu hình ảnh hưởng đến luồng.
status.healthStatus.configurationIssues[].type string
Xác định loại lỗi ảnh hưởng đến luồng.
status.healthStatus.configurationIssues[].severity string
Cho biết mức độ nghiêm trọng của vấn đề đối với luồng.

Các giá trị hợp lệ cho thuộc tính này là:
  • info – Video được phát cho người xem mà không ảnh hưởng xấu đến hiệu suất.
  • warning – Video được phát cho người xem nhưng hiệu suất không tối ưu.
  • error – Không thể phát video cho người xem.
status.healthStatus.configurationIssues[].reason string
Thông tin mô tả ngắn gọn về vấn đề này. Tài liệu về Vấn đề cấu hình cho tài nguyên phát trực tiếp xác định lý do liên quan đến từng loại vấn đề về cấu hình.
status.healthStatus.configurationIssues[].description string
Thông tin mô tả chi tiết về vấn đề. Khi có thể, mô tả cung cấp thông tin về cách giải quyết vấn đề. Tài liệu về Vấn đề về cấu hình cho tài nguyên phát trực tiếp liệt kê tất cả các loại vấn đề về cấu hình và nội dung mô tả liên quan.
contentDetails object
Đối tượng content_details chứa thông tin về luồng, bao gồm cả URL truyền dẫn phụ đề.
contentDetails.closedCaptionsIngestionUrl string
URL truyền dẫn nơi phụ đề của sự kiện này được gửi đến.
contentDetails.isReusable boolean
Cho biết luồng có thể sử dụng lại hay không, có nghĩa là luồng có thể liên kết với nhiều thông báo. Thông thường, các đài truyền hình có thể sử dụng lại cùng một luồng cho nhiều chương trình phát sóng nếu những chương trình đó xuất hiện vào những thời điểm khác nhau.

Nếu bạn đặt giá trị này là false, thì luồng sẽ không thể tái sử dụng, tức là luồng chỉ có thể được liên kết với một chương trình phát sóng. Luồng không thể tái sử dụng khác với luồng có thể sử dụng lại ở những điểm sau:
  • Một luồng không thể tái sử dụng chỉ có thể được liên kết với một chương trình phát sóng.
  • Một sự kiện phát trực tiếp không thể sử dụng lại có thể bị một quy trình tự động xoá sau khi chương trình phát sóng kết thúc.
  • Phương thức liveStreams.list không liệt kê các luồng không thể tái sử dụng nếu bạn gọi phương thức này và đặt thông số mine thành true. Cách duy nhất để sử dụng phương thức đó nhằm truy xuất tài nguyên cho một luồng không thể tái sử dụng là sử dụng tham số id để xác định luồng.