이제 API에서 라이브 스트림을 '아동용'으로 표시하는 기능을 지원하며
liveBroadcast
리소스에는 라이브 스트림의 '아동용' 상태를 식별하는 속성이 포함됩니다. 2020년 1월 10일에는 YouTube API 서비스 약관 및 개발자 정책도 업데이트되었습니다. 자세한 내용은 YouTube Live Streaming API 서비스 및 YouTube API 서비스 약관의 업데이트 기록을 참고하세요.
liveBroadcast
리소스는 YouTube에서 라이브 동영상을 통해 스트리밍될 이벤트를 나타냅니다.
메서드
API는 liveBroadcasts
리소스에 대해 다음 메서드를 지원합니다.
- list
- API 요청 매개변수와 일치하는 YouTube 방송 목록을 반환합니다. 지금 사용해보기
- insert
- 방송을 만듭니다. 지금 사용해보기
- 업데이트
- 방송을 업데이트합니다. 예를 들어
liveBroadcast
리소스의contentDetails
객체에 정의된 브로드캐스트 설정을 수정할 수 있습니다. 지금 사용해 보기 - 삭제
- 방송을 삭제합니다. 지금 사용해보기
- bind
- YouTube 방송을 스트림에 바인딩하거나 방송과 스트림 간의 기존 바인딩을 삭제합니다. 방송은 하나의 동영상 스트림에만 연결할 수 있지만 동영상 스트림은 두 개 이상의 방송에 연결할 수 있습니다. 지금 사용해보기
- transition
- YouTube 실시간 방송의 상태를 변경하고 새 상태와 관련된 모든 프로세스를 시작합니다. 예를 들어 방송 상태를
testing
로 전환하면 YouTube에서 해당 방송의 모니터 스트림으로 동영상을 전송하기 시작합니다. 이 메서드를 호출하기 전에 브로드캐스트에 바인딩된 스트림의status.streamStatus
속성 값이active
인지 확인해야 합니다. 지금 사용해 보세요. - cuepoint
- 라이브 방송에 큐포인트를 삽입합니다. 큐 시점은 광고 시점을 트리거할 수 있습니다.
리소스 표현
다음 JSON 구조에서 liveBroadcasts
리소스의 형식을 보여줍니다.
{ "kind": "youtube#liveBroadcast", "etag": etag, "id": string, "snippet": { "publishedAt": datetime, "channelId": string, "title": string, "description": string, "thumbnails": { (key): { "url": string, "width": unsigned integer, "height": unsigned integer } }, "scheduledStartTime": datetime, "scheduledEndTime": datetime, "actualStartTime": datetime, "actualEndTime": datetime, "isDefaultBroadcast": boolean, "liveChatId": string }, "status": { "lifeCycleStatus": string, "privacyStatus": string, "recordingStatus": string, "madeForKids": string, "selfDeclaredMadeForKids": string, }, "contentDetails": { "boundStreamId": string, "boundStreamLastUpdateTimeMs": datetime, "monitorStream": { "enableMonitorStream": boolean, "broadcastStreamDelayMs": unsigned integer, "embedHtml": string }, "enableEmbed": boolean, "enableDvr": boolean, "recordFromStart": boolean, "enableClosedCaptions": boolean, "closedCaptionsType": string, "projection": string, "enableLowLatency": boolean, "latencyPreference": boolean, "enableAutoStart": boolean, "enableAutoStop": boolean }, "statistics": { "totalChatCount": unsigned long }, "monetizationDetails": { "cuepointSchedule": { "enabled": boolean, "pauseAdsUntil": datetime, "scheduleStrategy": string, "repeatIntervalSecs": unsigned integer, } } } }
속성
다음 표는 이 리소스에 표시되는 속성을 정의합니다.
속성 | |
---|---|
kind |
string API 리소스의 유형을 식별합니다. 값은 youtube#liveBroadcast 입니다. |
etag |
etag 이 리소스의 Etag입니다. |
id |
string YouTube에서 방송을 고유하게 식별하기 위해 할당하는 ID입니다. |
snippet |
object snippet 객체에는 제목, 설명, 시작 시간, 종료 시간 등 이벤트에 관한 기본 세부정보가 포함됩니다. |
snippet.publishedAt |
datetime 방송이 YouTube의 실시간 방송 일정에 추가된 날짜 및 시간입니다. 값은 ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) 형식으로 지정됩니다. |
snippet.channelId |
string YouTube에서 방송을 게시하는 채널을 고유하게 식별하는 데 사용하는 ID입니다. |
snippet.title |
string 방송 제목입니다. 브로드캐스트는 정확히 하나의 YouTube 동영상을 나타냅니다. 이 필드는 방송 리소스를 수정하거나 해당 동영상 리소스의 title 필드를 설정하여 설정할 수 있습니다. |
snippet.description |
string 브로드캐스트의 설명입니다. title 와 마찬가지로 방송 리소스를 수정하거나 해당 동영상 리소스의 description 필드를 설정하여 이 필드를 설정할 수 있습니다. |
snippet.thumbnails |
object 방송과 관련된 썸네일 이미지 맵입니다. 이 객체의 각 중첩 객체의 경우 키는 썸네일 이미지의 이름이고 값은 썸네일에 관한 다른 정보를 포함하는 객체입니다. |
snippet.thumbnails.(key) |
object 유효한 키 값은 다음과 같습니다.
|
snippet.thumbnails.(key).url |
string 이미지의 URL입니다. |
snippet.thumbnails.(key).width |
unsigned integer 이미지의 너비입니다. |
snippet.thumbnails.(key).height |
unsigned integer 이미지의 높이입니다. |
snippet.scheduledStartTime |
datetime 방송이 시작될 예정인 날짜와 시간입니다. 값은 ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) 형식으로 지정됩니다. 크리에이터 스튜디오에서는 시작 시간을 예약하지 않고도 방송을 만들 수 있는 기능을 지원합니다. 이 경우 채널 소유자가 스트리밍을 시작할 때마다 방송이 시작됩니다. 이러한 방송의 경우 datetime 값은 UNIX 시간 0에 해당하며 이 값은 API 또는 크리에이터 스튜디오를 통해 변경할 수 없습니다. |
snippet.scheduledEndTime |
datetime 방송이 종료될 예정인 날짜 및 시간입니다. 값은 ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) 형식으로 지정됩니다. liveBroadcast 리소스가 이 속성의 값을 지정하지 않으면 브로드캐스트가 무기한 계속되도록 예약됩니다. 마찬가지로 이 속성의 값을 지정하지 않으면 YouTube는 방송이 무기한 계속되는 것으로 간주합니다. |
snippet.actualStartTime |
datetime 방송이 실제로 시작된 날짜 및 시간입니다. 이 정보는 브로드캐스트 상태가 live 가 된 후에만 사용할 수 있습니다. 값은 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ) 형식으로 지정됩니다. |
snippet.actualEndTime |
datetime 방송이 실제로 종료된 날짜 및 시간입니다. 이 정보는 브로드캐스트 상태가 complete 가 된 후에만 사용할 수 있습니다. 값은 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ ) 형식으로 지정됩니다. |
snippet.isDefaultBroadcast |
boolean
이 속성은 2020년 9월 1일 이후에 지원 중단됩니다. 그때가 되면 YouTube에서는 채널에 라이브 스트리밍이 사용 설정되면 기본 스트림 및 기본 방송의 생성을 중지합니다. 자세한 내용은 지원 중단 공지사항을 참고하세요.
이 속성은 이 방송이 기본 방송인지 여부를 나타냅니다.기본 방송 작동 방식 YouTube 채널에 라이브 스트리밍이 사용 설정되면 YouTube에서 채널의 기본 스트림과 기본 방송을 만듭니다. 스트림은 채널 소유자가 YouTube에 라이브 동영상을 전송하는 방법을 정의하며, 브로드캐스트는 시청자가 기본 스트림을 볼 수 있는 방법입니다. 채널 소유자는 liveStreams.list 및 liveBroadcasts.list 메서드를 사용하여 이러한 리소스를 식별할 수 있습니다.채널에서 기본 스트림으로 동영상 스트리밍을 시작하면 동영상이 채널의 기본 방송에 표시됩니다. 스트림이 종료되면 YouTube에서 완료된 방송을 YouTube 동영상으로 변환하고 동영상에 YouTube 동영상 ID를 할당합니다. 변환이 완료되면 동영상이 채널의 업로드된 동영상 목록에 포함됩니다. 방송이 끝난 직후에 동영상을 사용할 수 없으며 지연 시간이 실제 방송의 길이와 관련이 있습니다. |
snippet.liveChatId |
string 방송의 YouTube 실시간 채팅 ID입니다. 이 ID를 사용하면 liveChatMessage 리소스의 메서드를 사용하여 채팅 메시지를 검색, 삽입 또는 삭제할 수 있습니다. 채팅 운영자를 추가 또는 삭제하거나 사용자가 실시간 채팅에 참여하지 못하도록 차단하거나 기존 차단을 해제할 수도 있습니다. |
status |
object status 객체에는 이벤트 상태 정보가 포함됩니다. |
status.lifeCycleStatus |
string 방송의 상태입니다. API의 liveBroadcasts.transition 메서드를 사용하여 상태를 업데이트할 수 있습니다.이 속성의 유효한 값은 다음과 같습니다.
|
status.privacyStatus |
string 방송의 개인 정보 보호 상태입니다. 브로드캐스트는 정확히 하나의 YouTube 동영상을 나타내므로 개인 정보 보호 설정은 동영상에 지원되는 설정과 동일합니다. 또한 방송 리소스를 수정하거나 해당 동영상 리소스의 privacyStatus 필드를 설정하여 이 필드를 설정할 수 있습니다.이 속성에 유효한 값은 다음과 같습니다.
|
status.recordingStatus |
string 방송의 녹화 상태입니다. 이 속성의 유효한 값은 다음과 같습니다.
|
status.madeForKids |
boolean 이 값은 방송이 아동용으로 지정되었는지 여부를 나타냅니다. 이 속성 값은 읽기 전용입니다. |
status.selfDeclaredMadeForKids |
boolean liveBroadcasts.insert 요청에서 이 속성을 사용하면 채널 소유자가 방송을 아동용으로 지정할 수 있습니다. liveBroadcasts.list 요청에서 속성 값은 채널 소유자가 API 요청을 승인한 경우에만 반환됩니다. |
contentDetails |
object contentDetails 객체에는 콘텐츠가 삽입된 동영상 플레이어에 표시될 수 있는지 또는 보관처리되어 이벤트가 종료된 후 시청할 수 있는지와 같은 이벤트의 동영상 콘텐츠에 관한 정보가 포함됩니다. |
contentDetails.boundStreamId |
string 이 값은 브로드캐스트에 바인딩된 live stream 를 고유하게 식별합니다. |
contentDetails.boundStreamLastUpdateTimeMs |
datetime boundStreamId 에서 참조한 라이브 스트림이 마지막으로 업데이트된 날짜와 시간입니다. |
contentDetails.monitorStream |
object monitorStream 객체에는 브로드캐스트 스트림이 공개적으로 표시되기 전에 브로드캐스터가 이벤트 콘텐츠를 검토하는 데 사용할 수 있는 모니터 스트림에 관한 정보가 포함됩니다. |
contentDetails.monitorStream.enableMonitorStream |
boolean 이 값은 브로드캐스트에 모니터 스트림이 사용 설정되어 있는지 여부를 결정합니다. 모니터 스트림을 사용하도록 설정한 경우 YouTube는 방송사의 소비만을 위한 특별 스트림을 통해 이벤트 콘텐츠를 방송합니다. 브로드캐스터는 스트림을 사용하여 이벤트 콘텐츠를 검토하고 큐포인트를 삽입할 최적의 시간을 파악할 수 있습니다. 방송에 testing 무대를 설정하거나 이벤트에 방송 지연을 설정하려는 경우 이 값을 true 로 설정해야 합니다. 또한 이 속성의 값이 true 인 경우 브로드캐스트를 live 상태로 전환하기 전에 testing 상태로 전환해야 합니다. 속성 값이 false 인 경우 브로드캐스트에 testing 단계가 없으므로 브로드캐스트를 live 상태로 직접 전환할 수 있습니다.update a broadcast 할 때 API 요청의 part 매개변수 값에 contentDetails 부분이 포함된 경우 이 속성을 설정해야 합니다. 하지만 insert a broadcast 인 경우 속성은 선택사항이며 기본값은 true 입니다.중요: 브로드캐스트가 testing 또는 live 상태가 되면 이 속성을 업데이트할 수 없습니다. |
contentDetails.monitorStream.broadcastStreamDelayMs |
unsigned integer enableMonitorStream 속성을 true 로 설정한 경우 이 속성은 라이브 방송 지연 시간을 결정합니다.update a broadcast 을 실행할 때 API 요청에 part 매개변수 값에 contentDetails 부분이 포함된 경우 이 속성을 설정해야 합니다. 하지만 insert a broadcast 인 경우 속성은 선택사항이며 기본값은 0 입니다. 이 값은 방송에 방송 지연이 없음을 나타냅니다. 참고: 브로드캐스트가 testing 또는 live 상태가 되면 이 속성을 업데이트할 수 없습니다. |
contentDetails.monitorStream.embedHtml |
string 모니터 스트림을 재생하는 플레이어를 삽입하는 HTML 코드입니다. |
contentDetails.enableEmbed |
boolean 이 설정은 삽입된 플레이어에서 방송 동영상을 재생할 수 있는지 여부를 나타냅니다. enableArchive 속성을 사용하여 동영상을 보관처리하도록 선택하면 이 설정이 보관처리된 동영상에도 적용됩니다.update a broadcast 을 실행할 때 API 요청에 part 매개변수 값에 contentDetails 부분이 포함된 경우 이 속성을 설정해야 합니다. 하지만 insert a broadcast 하는 경우 속성은 선택사항이며 기본값은 true 입니다.참고: 브로드캐스트가 testing 또는 live 상태가 되면 이 속성을 업데이트할 수 없습니다. |
contentDetails.enableDvr |
boolean 이 설정은 시청자가 동영상을 시청하는 동안 DVR 컨트롤에 액세스할 수 있는지 여부를 결정합니다. DVR 컨트롤을 사용하면 시청자가 콘텐츠를 일시중지, 되감기 또는 빨리 감기하여 동영상 재생 환경을 제어할 수 있습니다. 이 속성의 기본값은 true 입니다. update a broadcast 을 실행할 때 API 요청에 part 매개변수 값에 contentDetails 부분이 포함된 경우 이 속성을 설정해야 합니다. 하지만 insert a broadcast 하는 경우 속성은 선택사항이며 기본값은 true 입니다.중요: 브로드캐스트가 종료된 후 즉시 재생할 수 있도록 하려면 값을 true 로 설정하고 enableArchive 속성의 값도 true 로 설정해야 합니다. 또한 브로드캐스트가 testing 또는 live 상태가 되면 이 속성을 업데이트할 수 없습니다. |
contentDetails.recordFromStart |
boolean 이 설정은 이벤트 상태가 '실시간'으로 변경된 후 YouTube에서 자동으로 방송 녹화를 시작할지 여부를 나타냅니다. 이 속성의 기본값은 true 이며 방송 채널에서 라이브 방송의 녹화를 사용 중지할 수 있는 경우에만 false 로 설정할 수 있습니다.채널에 녹화 콘텐츠를 사용 중지할 권한이 없고 recordFromStart 속성을 false 로 설정하여 방송을 삽입하려고 하면 API에서 Forbidden 오류를 반환합니다. 또한 채널에 해당 권한이 없고 recordFromStart 속성을 false 로 설정하도록 브로드캐스트를 업데이트하려고 하면 API에서 modificationNotAllowed 오류를 반환합니다.update a broadcast 을 실행할 때 API 요청에 part 매개변수 값에 contentDetails 부분이 포함된 경우 이 속성을 설정해야 합니다. 하지만 insert a broadcast 하는 경우 속성은 선택사항이며 기본값은 true 입니다.중요: 방송이 종료된 후 즉시 재생을 시작하려면 enableDvr 속성의 값도 true 로 설정해야 합니다. 이 속성의 값을 true 로 설정했지만 enableDvr 속성을 true 로 설정하지 않으면 보관처리된 동영상을 재생할 수 있기까지 약 1일 정도 지연될 수 있습니다.참고: 브로드캐스트가 testing 또는 live 상태가 되면 이 속성을 업데이트할 수 없습니다. |
contentDetails.enableClosedCaptions |
boolean 이 속성은 2015년 12월 17일부터 지원 중단되었습니다. 대신 contentDetails.closedCaptionsType 속성을 사용하세요.이 설정은 이 브로드캐스트에 HTTP POST 자막 방송을 사용 설정할지 여부를 나타냅니다. 이 속성을 이미 사용 중인 API 클라이언트의 경우:
|
contentDetails.closedCaptionsType |
string 참고: 이 속성은 contentDetails.enableClosedCaptions 속성을 대체합니다.이 속성은 방송에 자막이 사용 설정되어 있는지 여부와 사용 설정된 경우 제공하는 자막 유형을 나타냅니다.
|
contentDetails.projection |
string 이 방송의 프로젝션 형식입니다. 이 속성의 기본값은 rectangular 입니다.이 속성의 유효한 값은 다음과 같습니다.
|
contentDetails.enableLowLatency |
boolean 이 방송을 지연 시간이 짧은 스트리밍용으로 인코딩해야 하는지 여부를 나타냅니다. 지연 시간이 짧은 스트림은 방송을 시청하는 사용자에게 동영상이 표시되는 데 걸리는 시간을 줄일 수 있지만 스트림 시청자의 해상도에 영향을 줄 수도 있습니다. |
contentDetails.latencyPreference |
string 이 브로드캐스트에 사용할 지연 시간 설정을 나타냅니다. 이 속성은 ultraLow 를 지원하지 않는 enableLowLatency 대신 사용할 수 있습니다.지연 시간이 짧은 스트림은 방송을 시청하는 사용자에게 동영상이 표시되는 데 걸리는 시간을 줄일 수 있지만 재생의 원활함에 영향을 줄 수도 있습니다. 지연 시간이 매우 짧은 스트림은 시청자에게 동영상이 표시되는 데 걸리는 시간을 더욱 줄여 시청자와의 상호작용이 더 쉬워지지만, 지연 시간이 매우 짧은 스트림은 자막이나 1080p 이상의 해상도를 지원하지 않습니다. 이 속성의 유효한 값은 다음과 같습니다.
|
contentDetails.enableAutoStart |
boolean 바인드된 live stream 에서 동영상 스트리밍을 시작할 때 이 브로드캐스트를 자동으로 시작할지 여부를 나타냅니다. |
contentDetails.enableAutoStop |
boolean 채널 소유자가 연결된 동영상 스트림에서 동영상 스트리밍을 중지한 후 1분 후에 이 브로드캐스트가 자동으로 중지되어야 하는지 나타냅니다. |
statistics |
object statistics 객체에는 실시간 방송과 관련된 통계가 포함됩니다. 이러한 통계의 값은 방송 중에 변경될 수 있으며 방송이 진행되는 동안에만 검색할 수 있습니다. |
statistics.totalChatCount |
unsigned long 방송과 연결된 실시간 채팅 메시지의 총 개수입니다. 브로드캐스트가 사용자에게 표시되고 실시간 채팅 기능이 사용 설정되어 있으며 메시지가 하나 이상 있는 경우 속성과 값이 표시됩니다. 이 속성은 브로드캐스트가 종료된 후에는 값을 지정하지 않습니다. 따라서 이 속성은 완료된 라이브 방송의 보관처리된 동영상의 채팅 메시지 수를 식별하지 않습니다. |
monetizationDetails |
object monetizationDetails 객체에는 광고 자동화가 사용 설정되어 있는지, 미드롤 광고 삽입이 지연되는지와 같은 스트림의 수익 창출 세부정보에 관한 정보가 포함됩니다. |
monetizationDetails.cuepointSchedule |
object cuepointSchedule 객체는 방송의 광고 자동화 설정을 지정합니다. |
monetizationDetails.cuepointSchedule.enabled |
boolean 이 값은 방송에 광고를 자동으로 삽입할지 여부를 결정합니다. 값이 true 이면 YouTube에서 방송에 미드롤 광고를 자동으로 삽입합니다. 광고
게재 일정은 monetizationDetails.cuepointSchedule 객체의 다른 필드 값에 따라
결정됩니다.
|
monetizationDetails.cuepointSchedule.pauseAdsUntil |
datetime 이 값은 지정된 날짜와 시간까지 YouTube가 방송에 미드롤 광고를 삽입해서는 안 됨을 지정합니다. 값은 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) 형식으로 지정됩니다. 광고를 일시중지하려면 값을 미래의 날짜/시간으로 설정해야 합니다. 필드 값을 가까운 미래의 날짜/시간으로 설정하여 시간이 지나면 광고 일시중지를 해제할 수도 있습니다. |
monetizationDetails.cuepointSchedule.scheduleStrategy |
string 이 값은 YouTube에서 큐포인트 예약 시 따라야 하는 전략을 지정합니다. 유효한 값은 다음과 같습니다.
|
monetizationDetails.cuepointSchedule.repeatIntervalSecs |
unsigned integer 이 값은 방송 중에 자동 광고 삽입 간의 간격을 초 단위로 지정합니다. 예를 들어 값이 300 이면 YouTube에서 5분 간격으로 미드롤 광고 큐포인트를 삽입할 수 있습니다.값은 연속된 큐포인트 시작 사이의 시간을 지정합니다. 즉, 한 큐 포인트의 끝에서 다음 큐 포인트의 시작까지 간격이 측정되지 않습니다. |