FireDrago
치지직 api 본문
치지직 관련 웹서비스를 만드려고 하다보니
api 정보들을 수집하고 알게되었다.
정보를 정리해보았다. (노션 복붙이라 가독성이 떨어진다.)
1. 기본 정보 (Base URL)
- API 서버:
https://api.chzzk.naver.com - 채팅 웹소켓:
wss://kr-ss{n}.chat.naver.com/chat
- n은 1~5 등의 번호
- 웹소켓 분산서버를 사용하는듯, 접속시마다 바뀜 5이상은 본적 없음
2. 방송 탐색 및 수집 (Discovery)
2.1 전체 라이브 목록 탐색
- Endpoint:
GET /service/v1/lives - Query Params:
size: 가져올 개수 (기본 20, 최대 50 내외)sortType: 정렬 방식 (POPULAR시청자순,LATEST최신순)next: 다음 페이지 호출을 위한 데이터
- 특징: 현재 방송 중인 모든 채널을 추출할 때 핵심적으로 사용.
2.2 채널 검색
- Endpoint:
GET /service/v1/search/channels?keyword={keyword} - 특징: 특정 스트리머의 채널 ID를 직접 찾을 때 유용하다.
3. 채널 및 방송 상세 정보 (Channel & Live)
수집 중인 채널의 상태 변화를 감시하거나 상세 메타데이터를 얻을 때 사용
3.1 채널 기본 정보
- Endpoint:
GET /service/v1/channels/{channelId} - 주요 데이터: 채널명, 팔로워 수, 프로필 이미지, 방송 여부 등.
3.2 라이브 상태 요약 (Polling용)
- Endpoint:
GET /polling/v1/channels/{channelId}/live-status - 특징: 데이터가 가볍고 응답 속도가 빨라 '뱅온(방송 시작) 체크' 봇을 만들 때 쓸수 있을듯
3.3 라이브 상세 정보 (Worker용 필수 API)
- Endpoint:
GET /service/v1/channels/{channelId}/live-detail - 주요 데이터:
chatChannelId: 웹소켓 접속에 필요한 실제 IDliveSpec: 해상도 및 영상 전송 규격liveTitle: 방송 제목category: 게임 등 방송 카테고리livePath: m3u8 재생 주소
4. 다시보기 및 녹화 데이터 (VOD)
방송 종료 후 하이라이트 분석이나 데이터 아카이빙 시 사용
4.1 비디오 정보 조회
- Endpoint:
GET /service/v1/videos/{videoNo} - 주요 데이터:
videoId,inKey, 시작/종료 시간, 다시보기 길이.
5. 실시간 채팅 (WebSocket)
5.1 웹소켓 연결
- URL:
wss://kr-ss{n}.chat.naver.com/chat - 접속 방식: JSON 기반 통신
- 필수 절차 (Handshake):
- 웹소켓 연결 성공.
CONNECT메시지 전송 (Token 전달).SEND명령어로 특정chatChannelId입장.
- 특징: IRC(트위치 규격) 대비 파싱이 매우 쉬우며, 다수 연결을 하려면, 가상 스레드 혹은 SpringWebflux환경이 필요
6. 기타 유용한 API
- 카테고리별 라이브:
GET /service/v1/lives?category={categoryType} - 추천 방송:
GET /service/v1/home/recommendation
'자바 플레이그라운드' 카테고리의 다른 글
| [좌표계산기] 사용자 입력에 관한 생각정리 (0) | 2023.10.12 |
|---|---|
| [java] null 유효성 검사는 제일 먼저 (0) | 2023.08.27 |
| [좌표 계산기] 정규표현식의 강력함 (0) | 2023.08.16 |
| 숫자야구게임 후기 (0) | 2023.07.29 |
