구현: 브로드캐스트 및 스트림

다음 예에서는 YouTube Live Streaming API를 사용하여 실시간 브로드캐스트와 스트림을 만들고 관리하는 방법을 보여줍니다.

방송 만들기

liveBroadcasts.insert 메서드를 호출하여 새 실시간 이벤트를 예약합니다. 요청 본문은 브로드캐스트의 제목, 예약된 시작 시간, 공개 상태를 정의해야 합니다. 선택적으로 snippet.categoryId 속성을 사용하여 동영상 카테고리를 지정할 수도 있습니다. videoCategories.list 메서드를 사용하여 카테고리 목록을 가져올 수 있습니다.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.insert?
        part=snippet,status

요청 본문에는 liveBroadcast 리소스가 포함됩니다. 이 예에서 요청 본문은 다음과 같습니다.

{
  "snippet": {
    "title": "My Live Event",
    "scheduledStartTime": "2026-10-30T19:00:00Z",
    "categoryId": "17"
  },
  "status": {
    "privacyStatus": "unlisted"
  }
}

스트림 만들기

liveStreams.insert 메서드를 호출하여 동영상의 전송 설정을 정의하는 스트림을 만듭니다. 스트림의 제목과 CDN 설정 (수집 유형, 해상도, 프레임 속도)을 지정해야 합니다.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveStreams.insert?
        part=snippet,cdn

요청 본문에는 liveStream 리소스가 포함됩니다. 이 예에서 요청 본문은 다음과 같습니다.

{
  "snippet": {
    "title": "My Live Stream"
  },
  "cdn": {
    "frameRate": "30fps",
    "ingestionType": "rtmp",
    "resolution": "720p"
  }
}

브로드캐스트를 스트림에 바인딩

liveBroadcasts.bind 메서드를 호출하여 브로드캐스트를 스트림과 연결합니다. id 매개변수를 브로드캐스트 ID로, streamId 쿼리 매개변수를 스트림 ID로 설정합니다.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.bind?
        id=BROADCAST_ID
        &streamId=STREAM_ID
        &part=id,snippet

브로드캐스트 상태 전환

liveBroadcasts.transition 메서드를 호출하여 브로드캐스트의 상태를 변경합니다. 예를 들어 테스트를 시작하려면 상태를 testing으로 전환합니다. 실제 브로드캐스트를 시작하려면 상태를 live로 전환합니다.

이 예에서는 브로드캐스트를 testing으로 전환합니다. id 매개변수를 브로드캐스트 ID로, broadcastStatus 매개변수를 testing으로 설정합니다.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.transition?
        broadcastStatus=testing
        &id=BROADCAST_ID
        &part=id,status

브로드캐스트 가져오기

liveBroadcasts.list 메서드를 호출하여 브로드캐스트를 가져옵니다. broadcastStatus (예: active, completed, upcoming)로 필터링하거나 mine 매개변수를 사용하여 자신의 브로드캐스트를 가져올 수 있습니다.

이 예에서는 인증된 사용자의 예정된 브로드캐스트를 가져옵니다.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.liveBroadcasts.list?
        part=snippet,status
        &broadcastStatus=upcoming
        &mine=true