LiveChatMessages: streamList

이 메서드는 지연 시간이 짧은 특정 채팅의 실시간 채팅 메시지를 수신할 수 있는 서버 스트리밍 연결을 설정합니다. 이 방법은 업데이트를 폴링할 필요 없이 새 메시지가 제공되는 즉시 클라이언트에 푸시하므로 실시간 채팅 메시지를 사용하는 가장 효율적인 방법입니다.

처음 연결하면 API에서 최근 채팅 기록이 포함된 일련의 메시지를 전송합니다. 새 메시지가 게시되면 서버는 열린 연결을 통해 계속 전송합니다.

각 서버 응답의 메시지는 오래된 것부터 최신 것까지 순서대로 정렬됩니다. 각 응답에는 nextPageToken도 포함됩니다. 클라이언트가 연결 해제되면 이 토큰을 사용하여 스트림을 재개할 수 있습니다. 이렇게 하려면 새 연결 요청에서 pageToken 매개변수의 값으로 수신한 마지막 nextPageToken를 제공하세요. 그러면 API가 중단된 지점부터 메시지 전송을 다시 시작합니다.

데모

이 엔드포인트의 Python 데모는 라이브 채팅 스트리밍 가이드를 참고하세요.

요청

매개변수

다음 표에는 이 쿼리에서 지원하는 매개변수가 나와 있습니다. 나열된 모든 매개변수는 쿼리 매개변수입니다.

매개변수
필수 매개변수
liveChatId string
liveChatId 매개변수는 메시지가 반환될 채팅의 ID를 지정합니다. 방송과 연결된 실시간 채팅 ID는 liveBroadcast 리소스의 snippet.liveChatId 속성에 반환됩니다.
part string
part 매개변수는 API 응답에 포함될 liveChatMessage 리소스 부분을 지정합니다. 지원되는 값은 id, snippet, authorDetails입니다.
선택적 매개변수
hl string
hl 매개변수는 API에 YouTube 웹사이트에서 지원하는 특정 애플리케이션 언어의 현지화된 통화 표시 문자열을 가져오도록 지시합니다. 예를 들어 영어에서는 통화가 $1.50로 표시되지만 프랑스어에서는 1,50$로 표시됩니다.

매개변수 값은 i18nLanguages.list 메서드에서 반환된 목록에 포함된 언어 코드여야 합니다.
maxResults unsigned integer
maxResults 매개변수는 결과 집합에 반환되어야 하는 최대 메시지 수를 지정합니다. 허용되는 값은 200~2000입니다. 기본값은 500입니다.
pageToken string
pageToken 매개변수는 반환되어야 하는 결과 집합의 특정 페이지를 식별합니다. API 응답에서 nextPageToken 속성은 가져올 수 있는 다른 페이지를 식별합니다.
profileImageSize unsigned integer
profileImageSize 매개변수는 결과 집합에 반환되어야 하는 사용자 프로필 사진의 크기를 지정합니다. 이미지가 정사각형입니다. 기본값은 88이며, 이는 사진이 88px x 88px임을 의미합니다. 허용되는 값은 16~720입니다.

요청 본문

이 메서드를 호출할 때는 요청 본문을 제공하지 마세요.

응답

요청에 성공할 경우 이 메소드는 다음과 같은 구조의 응답 본문을 반환합니다.

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigned integer,
  "offlineAt": datetime,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource
}

속성

다음 표는 이 리소스에 표시되는 속성을 정의합니다.

속성
kind string
API 리소스의 유형을 식별합니다. 값은 youtube#liveChatMessageListResponse입니다.
etag etag
이 리소스의 ETag입니다.
nextPageToken string
결과 집합의 다음 페이지를 검색하기 위해 pageToken 매개변수의 값으로 사용할 수 있는 토큰입니다.
offlineAt datetime
기본 라이브 스트림이 오프라인 상태가 된 날짜와 시간입니다. 이 속성은 스트림이 이미 오프라인인 경우에만 존재합니다. 값은 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) 형식으로 지정됩니다.
pageInfo object
pageInfo 객체는 결과 세트의 페이지로 나누기 정보를 캡슐화합니다.
pageInfo.totalResults integer
결과 집합의 총 결과 수입니다.
pageInfo.resultsPerPage integer
API 응답에 포함된 결과 수입니다.
items[] list
메시지 목록입니다. 목록의 각 항목은 liveChatMessage 리소스입니다.
activePollItem object
메시지의 설문조사 데이터입니다. 각 설문조사는 활성 설문조사를 나타내는 pollEvent 유형의 liveChatMessage 리소스입니다. 채팅당 설문조사는 하나만 있을 수 있습니다.

오류

다음 표에는 이 메서드 호출에 대한 응답으로 API가 반환할 수 있는 오류 메시지가 나와 있습니다. 자세한 내용은 오류 메시지 문서를 참고하세요.

gRPC를 사용하여 연결하는 경우:

gRPC 오류 코드 오류 세부정보 설명
PERMISSION_DENIED (7) The caller does not have permission 지정된 라이브 채팅의 메시지를 가져오는 데 필요한 권한이 없습니다.
INVALID_ARGUMENT (3) Request contains an invalid argument 제공된 매개변수를 파싱할 수 없습니다. liveChatId 및 기타 매개변수가 올바른 형식인지 확인합니다.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED 지정된 실시간 채팅이 사용 중지되었습니다.
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_ENDED. 종료된 라이브 채팅의 메시지는 검색할 수 없습니다.
NOT_FOUND (5) Requested entity was not found 가져오려는 실시간 채팅을 찾을 수 없습니다. 요청의 liveChatId 매개변수 값이 올바른지 확인합니다.
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) 이전 요청 후 너무 빨리 요청이 전송되었습니다. 이 오류는 메시지를 가져오는 API 요청이 YouTube의 새로고침 빈도보다 더 자주 전송되어 불필요하게 대역폭이 낭비되는 경우에 발생합니다.

* gRPC 제한으로 인해 오류 코드를 기반으로 LIVE_CHAT_DISABLED 사례와 LIVE_CHAT_ENDED 사례를 구분할 수 없습니다. YouTube는 이 문제를 해결하기 위해 적극적으로 노력하고 있습니다.

웹 트래픽을 사용하여 연결하는 경우 다음 사항을 참고하세요.

오류 유형 오류 세부정보 설명
HttpStatus.FORBIDDEN (403) forbidden 지정된 라이브 채팅의 메시지를 가져오는 데 필요한 권한이 없습니다.
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid 제공된 매개변수를 파싱할 수 없습니다. liveChatId 및 기타 매개변수가 올바른 형식인지 확인합니다.
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED 지정된 실시간 채팅이 사용 중지되었습니다.
HttpStatus.FORBIDDEN (403) liveChatEnded LIVE_CHAT_ENDED. 종료된 라이브 채팅의 메시지는 검색할 수 없습니다.
HttpStatus.NOT_FOUND (404) liveChatNotFound 가져오려는 실시간 채팅을 찾을 수 없습니다. 요청의 liveChatId 매개변수 값이 올바른지 확인합니다.
HttpStatus.FORBIDDEN (403) rateLimitExceeded 이전 요청 후 너무 빨리 요청이 전송되었습니다. 이 오류는 메시지를 가져오는 API 요청이 YouTube의 새로고침 빈도보다 더 자주 전송되어 불필요하게 대역폭이 낭비되는 경우에 발생합니다.