LiveStreams

liveStream 리소스에는 YouTube로 전송하는 동영상 스트림에 관한 정보가 포함됩니다. 스트림은 YouTube 사용자에게 브로드캐스트할 콘텐츠를 제공합니다. liveStream 리소스는 생성된 후 하나 이상의 liveBroadcast 리소스에 바인딩될 수 있습니다.

메서드

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

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

리소스 표현

다음 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에서 채널의 기본 스트림과 기본 방송을 만듭니다. 스트림은 채널 소유자가 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
문제에 관한 간단한 설명입니다. 라이브 스트림 리소스의 구성 문제 문서에서는 각 구성 문제 유형과 관련된 이유를 확인할 수 있습니다.
status.healthStatus.configurationIssues[].description string
문제에 관한 자세한 설명 가능한 경우 설명에 문제 해결 방법에 관한 정보가 제공됩니다. 라이브 스트림 리소스의 구성 문제 문서에는 모든 구성 문제 유형과 관련 설명이 나와 있습니다.
contentDetails object
content_details 객체에는 자막 처리 URL을 비롯한 스트림에 관한 정보가 포함됩니다.
contentDetails.closedCaptionsIngestionUrl string
이 스트림의 자막이 전송되는 처리 URL입니다.
contentDetails.isReusable boolean
스트림을 재사용할 수 있는지 여부를 나타냅니다. 즉, 스트림을 여러 방송에 바인드할 수 있습니다. 방송이 여러 번 진행되는 경우 방송 시간이 다르면 동일한 스트림을 재사용하는 것이 일반적입니다.

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