Kick 클립과 VOD: 링크가 다운로더에게 알려 주는 것
Kick은 붙여넣은 링크에 따라 세 가지 다른 질문에 답합니다. 클립인지, 지난 방송인지, 아니면 지금 라이브 중인 채널인지. 다운로더는 URL을 먼저 읽고 알맞은 것을 고릅니다.
Kick의 주소 구조 자체가 여러분이 들고 있는 것이 무엇인지 가장 잘 보여 주는 지도입니다. 클립은 짧게 편집된 순간이고, VOD는 지난 방송 전체입니다. 채널 페이지는 둘 다 아니며, 그 순간 스트리머가 라이브 중이라면 다운로드할 것이 없습니다. 라이브 방송에는 끝이 없으니 파일도 없습니다.
세 가지 링크와 각각의 결과
| 링크 형태 | 리졸버가 하는 일 |
|---|---|
kick.com/<channel>/clips/clip_… | 클립 API를 읽고 클립의 원본 화질을 반환합니다. |
kick.com/<channel>/videos/<id> 및 /video/<id> | 동영상 API를 읽고 VOD의 마스터 플레이리스트가 담고 있는 모든 화질을 나열합니다. |
kick.com/<channel> | 채널의 최근 VOD를 나열합니다. 라이브 중인 채널은 대신 live로 답합니다. |
| 클립 ID 단독 | 먼저 채널을 요구합니다(need_channel). Kick의 클립 API는 둘 다 필요하기 때문입니다. |
클립 ID는 clip_ 뒤에 ULID 형식 코드가 붙는 고정된 형태이므로, 리졸버는 네트워크 호출 없이도 클립인지 알아볼 수 있습니다. ID만으로는 충분하지 않습니다. Kick API는 경로에 채널을 원하기 때문에, ID만 붙여넣으면 더 필요한 정보를 달라고 답합니다.
화질 목록은 어디서 오는가
VOD의 경우 Kick은 HLS 마스터 플레이리스트를 공개합니다. 각 화질의 해상도, 대역폭, 프레임 레이트를 나열한 작은 파일 하나입니다. 리졸버는 그 마스터만 읽고 그 외에는 아무것도 하지 않습니다. 조각을 내려받지도 않고, 병합된 파일을 Kick에 요청하지도 않습니다. Kick이 그런 파일을 제공하지 않기 때문입니다.
- 각 화질은 해당 해상도에서 쓸 수 있는 최선의 비트레이트를 유지하므로, 목록에 같은 크기의 항목이 두 번 나오지 않습니다.
- 화질은 대역폭이 높은 순으로 정렬되며, 맨 위 행이 원본입니다.
- 50fps 이상인 화질은
1080p60처럼 프레임 레이트를 붙여 표시하고, 그 아래는 높이만 표시합니다. - 마스터를 파싱할 수 없으면 리졸버는 플레이리스트 자체를 가리키는
source항목 하나로 대체합니다.
클립은 더 단순합니다. 보통 클립이 잘린 그 화질의 파일 하나만 갖고 있어서, 클립을 내려받을 때 선택을 요구하는 경우가 드뭅니다.
라이브 방송이 거부되는 이유
라이브 방송은 파일이 아니라 계속 밀려오는 창입니다. Kick은 라이브 중인 채널을 VOD 객체, 채널의 동영상 목록, 채널 페이지 자체 이렇게 세 곳에서 라이브로 보고하며, 리졸버는 셋 모두를 같은 답 live로 바꿉니다. 대신 클립이나 VOD를 사용하세요.
오류처럼 보이지만 아닌 상태가 둘 더 있습니다. processing은 방송이 몇 분 전에 끝났지만 Kick이 아직 VOD 자르기를 마치지 않았다는 뜻이고, no_source는 VOD가 삭제되었거나 만료되었다는 뜻입니다. 둘 다 Kick의 상태이지 다운로드의 실패가 아닙니다.
아무것도 저장되지 않습니다
Kick의 CDN은 access-control-allow-origin: *를 보내므로 브라우저가 파일을 직접 읽을 수 있습니다. 다운로드는 Kick의 엣지에서 여러분의 디스크로 곧장, 페이지 안에서 이루어지며, 리졸버는 메타데이터만 다룹니다. 재인코딩도, 워터마크도, 보관도 없습니다.
실용적인 참고 하나: 긴 VOD는 파일이 디스크로 바로 스트리밍되는 데스크톱 브라우저에서 저장하는 것이 가장 좋습니다. 휴대폰에서는 몇 시간짜리 방송이 다운로드되는 동안 메모리에 담기게 되어, 파일이 끝나기 전에 브라우저가 포기할 수 있습니다.
요약
- 클립 링크는 클립을, VOD 링크는 화질 목록을, 채널 링크는 최근 VOD 목록을 반환합니다.
- 라이브 방송은 거부됩니다 — 방송이 진행 중일 때는 저장할 파일이 없습니다.
- 화질 행은 Kick 자체 HLS 마스터 플레이리스트에서 나오며, 해상도마다 최선의 비트레이트를 씁니다.
- 바이트는 Kick CDN에서 여러분의 브라우저로 이동하고, 리졸버는 아무것도 보관하지 않습니다.
질문
Kick 라이브 방송을 진행 중에 다운로드할 수 있나요?
아니요. 라이브 방송에는 끝도 파일도 없습니다. Kick은 이를 라이브로 보고하고 리졸버는 거부합니다. 방송이 끝나고 Kick이 처리를 마치면 VOD 링크가 작동합니다.
VOD는 화질이 여러 개인데 클립은 왜 하나뿐인가요?
VOD는 Kick이 인코딩한 모든 화질이 담긴 HLS 마스터 플레이리스트를 제공하므로 리졸버가 각각을 나열할 수 있습니다. 클립은 파일 하나에서 잘려 나오므로 보통 그 화질 하나만 제공할 수 있습니다.
`source` 화질은 무슨 뜻인가요?
개별 화질을 파싱할 수 없을 때 제공되는 마스터 플레이리스트 자체입니다. 같은 동영상이지만 해상도별 구분이 없을 뿐입니다.