LiveStreams

liveStream 리소스에는 YouTube에 전송하는 동영상 스트림에 대한 정보가 포함되어 있습니다. 스트림에서 YouTube 사용자에게 방송할 콘텐츠를 제공합니다. liveStream 리소스가 생성되면 하나 이상의 liveBroadcast 리소스에 바인딩할 수 있습니다.

방법

API는 liveStreams 리소스에 다음 메서드를 지원합니다.

list
API 요청 매개변수와 일치하는 동영상 스트림의 목록을 반환합니다. 지금 사용해보기
삽입
동영상 스트림을 만듭니다. 스트림을 사용하면 동영상을 YouTube에 전송할 수 있고 시청자에게 동영상을 브로드캐스트할 수 있습니다. 지금 사용해보기
업데이트
동영상 스트림을 업데이트합니다. 변경하려는 속성을 업데이트할 수 없는 경우 적절한 설정으로 새 스트림을 만들어야 합니다. 지금 사용해보기
delete
동영상 스트림을 삭제합니다. 지금 사용해보기

리소스 표현

다음 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가 스트림을 고유하게 식별하기 위해 할당하는 ID입니다.
snippet object
snippet 객체에는 채널, 제목, 설명 등 스트림에 대한 기본 세부정보가 포함되어 있습니다.
snippet.publishedAt datetime
스트림이 만들어진 날짜 및 시간입니다. 값은 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) 형식으로 지정됩니다.
snippet.channelId string
YouTube가 스트림을 전송하는 채널을 고유하게 식별하는 데 사용하는 ID입니다.
snippet.title string
스트림의 제목입니다. 값은 1~128자(영문 기준)여야 합니다.
snippet.description string
스트림의 설명입니다. 값은 10,000자(영문 기준) 이하여야 합니다.
snippet.isDefaultStream boolean
이 속성은 2020년 9월 1일부터 지원이 중단됩니다. 그 이후에는 채널에서 실시간 스트리밍을 사용 설정할 때 기본 스트림 및 기본 방송 생성이 중단됩니다. 자세한 내용은 지원 중단 공지를 참고하세요.
이 속성은 이 스트림이 채널의 기본 스트림인지 여부를 나타냅니다.

기본 스트림의 작동 방식

YouTube 채널에서 실시간 스트리밍을 사용 설정하면 YouTube에서 채널의 기본 스트림과 기본 방송을 만듭니다. 스트림은 채널 소유자가 YouTube에 실시간 동영상을 전송하는 방법을 정의하며 방송은 시청자가 기본 스트림을 볼 수 있는 방법입니다. 채널 소유자는 liveStreams.listliveBroadcasts.list 메서드를 사용하여 이러한 리소스를 식별할 수 있습니다.

채널의 기본 스트림은 무기한으로 존재하며 연결된 시작 또는 종료 시간이 없으며 삭제할 수 없습니다. 채널 소유자가 동영상 비트 전송만 시작하면 스트림이 자동으로 진행됩니다.

스트림이 종료되면 YouTube에서 완료된 방송을 YouTube 동영상으로 변환하고 동영상에 YouTube 동영상 ID를 할당합니다. 변환이 완료되면 동영상이 채널의 업로드된 동영상 목록에 포함됩니다. 브로드캐스트가 완료된 직후 동영상을 사용할 수 없으며 지연 시간은 브로드캐스트의 실제 길이와 관련이 있습니다.
cdn object
cdn 객체는 실시간 스트림의 콘텐츠 전송 네트워크 (CDN) 설정을 정의합니다. 이 설정은 YouTube에 콘텐츠를 스트리밍하는 방식에 대한 세부정보를 제공합니다.
cdn.format string
이 속성은 2016년 4월 18일부터 지원 중단되었으며 2020년 8월 17일부터 더 이상 지원되지 않습니다. 그때까지 이 속성을 사용하는 요청은 실패합니다.

대신 cdn.frameRatecdn.resolution 속성을 사용하여 프레임 속도와 해상도를 별도로 지정하세요.
cdn.ingestionType string
동영상 스트림을 전송하는 데 사용되는 메서드 또는 프로토콜입니다.

이 속성의 유효한 값은 다음과 같습니다.
  • dash
  • hls
  • rtmp (RTMPS 포함)
cdn.ingestionInfo object
ingestionInfo 객체에는 YouTube에 스트림을 전송하는 데 필요한 정보가 YouTube에 포함되어 있습니다.
cdn.ingestionInfo.streamName string
YouTube에서 동영상 스트림에 할당하는 스트림 이름입니다.
cdn.ingestionInfo.ingestionAddress string
RTMP, DASH 또는 HLS를 사용하는 경우 YouTube에 동영상을 스트리밍하는 데 사용해야 하는 기본 처리 URL입니다. 동영상을 이 URL로 스트리밍해야 합니다.

동영상 스트림을 인코딩하는 데 사용하는 애플리케이션이나 도구에 따라 스트림 URL과 스트림 이름을 따로 입력하거나 다음 형식으로 연결해야 할 수 있습니다.
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
RTMP, DASH 또는 HLS를 사용하는 경우 YouTube에 동영상을 스트리밍하는 데 사용해야 하는 백업 처리 URL입니다. ingestionAddress로 전송하는 콘텐츠를 이 URL로 동시에 스트리밍하는 옵션이 있습니다.
cdn.ingestionInfo.rtmpsIngestionAddress string
RTMPS를 사용하는 경우 YouTube에 동영상을 스트리밍하는 데 사용해야 하는 기본 처리 URL입니다. 동영상을 이 URL로 스트리밍해야 합니다.

동영상 스트림을 인코딩하는 데 사용하는 애플리케이션이나 도구에 따라 스트림 URL과 스트림 이름을 따로 입력하거나 다음 형식으로 연결해야 할 수 있습니다.
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
RTMPS를 사용하는 경우 YouTube에 동영상을 스트리밍하는 데 사용해야 하는 백업 처리 URL입니다.
cdn.resolution string
수신 동영상 데이터의 해상도입니다.

이 속성에 유효한 값은 다음과 같습니다.
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: 이 설정을 사용하여 YouTube가 스트리밍된 동영상의 해상도를 자동으로 감지하도록 지정합니다. 또한 cdn.frameRatevariable로 설정해야 합니다.
    권장 인코더 설정은 YouTube 고객센터를 참고하세요.
cdn.frameRate string
수신 동영상 데이터의 프레임 속도입니다.

이 속성에 유효한 값은 다음과 같습니다.
  • 30fps
  • 60fps
  • variable: 이 설정을 사용해 YouTube에서 스트리밍된 동영상의 프레임 속도를 자동으로 감지하도록 지정합니다. 또한 cdn.resolutionvariable로 설정해야 합니다.
    권장 인코더 설정은 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
문제에 관한 간략한 설명입니다. LiveStream 리소스 구성 문제 문서에서는 각 구성 문제 유형과 관련된 이유를 확인합니다.
status.healthStatus.configurationIssues[].description string
문제에 관한 자세한 설명입니다. 가능한 경우 문제를 해결하는 방법에 관한 정보를 제공합니다. LiveStream 리소스 구성 문제 문서에 모든 구성 문제 유형 및 관련 설명이 나열되어 있습니다.
contentDetails object
content_details 객체에는 자막 처리 URL을 비롯한 스트림 관련 정보가 포함됩니다.
contentDetails.closedCaptionsIngestionUrl string
이 스트림의 자막이 전송되는 처리 URL입니다.
contentDetails.isReusable boolean
스트림을 재사용할 수 있는지 여부를 나타냅니다. 즉, 여러 브로드캐스트에 바인딩될 수 있습니다. 방송이 여러 시간에 발생하는 경우 일반적으로 여러 방송에서 동일한 스트림을 재사용하는 방송사입니다.

이 값을 false로 설정하면 스트림을 재사용할 수 없습니다. 즉, 하나의 브로드캐스트에만 바인딩될 수 있습니다. 재사용 불가능한 스트림은 재사용 가능한 스트림과 다음과 같은 차이가 있습니다.
  • 재사용 불가능한 스트림은 하나의 브로드캐스트에만 바인딩될 수 있습니다.
  • 방송이 종료된 후 자동화된 프로세스에 의해 재사용 불가능한 스트림이 삭제될 수 있습니다.
  • 메서드를 호출하고 mine 매개변수를 true로 설정하면 liveStreams.list 메서드가 재사용 가능한 스트림을 나열하지 않습니다. 이 메서드를 사용하여 재사용 불가능한 스트림의 리소스를 검색할 수 있는 유일한 방법은 id 매개변수를 사용하여 스트림을 식별하는 것입니다.