Chzzk Downloader Suite: JSON-RPC 통신 기능 추가

Chzzk Downloader Suite 버전 0.84부터 JSON-RPC 통신 기능이 추가되어 외부에서 애플리케이션을 제어할 수 있게 되었습니다.

Chzzk Live Downloader를 비롯한 Chzzk Video Downloader, Chzzk Clip Downloader는 모두 단독 실행형 문자 기반 사용자 인터페이스 (Character User Interface, CUI) 기반의 유틸리티입니다. 따라서 여러 개의 라이브 스트리밍을 관리하려면 Terminal에서 여러 개의 탭을 실행하는 등의 작업을 통해 여러 개의 인스턴스(Instance)를 실행해야만 했습니다.

하지만 Chzzk Downloader Suite를 좀 더 편리하게 사용하고 싶으신 분들이 그래픽 사용자 인터페이스 (Graphical User Interface, GUI) 기반의 프론트엔드(Frontend) 애플리케이션을 요청하셨지만, 이를 직접 개발할 시간적 여유가 주어지지 않았습니다. 그래서 제가 직접 개발하는 대신 여러분이 이러한 애플리케이션을 쉽게 직접 개발하실 수 있도록 JSON-RPC 2.0 통신 기능 규격(JSON Remote Procedure Call)을 통해 외부에서 Chzzk Downloader Suite를 제어할 수 있는 기능을 추가하였습니다.

JSON-RPC
JSON-RPC

JSON-RPC 통신 기능 지원 목록

이 기능은 Chzzk Downloader Suite 버전 0.84 이상부터 사용 가능하며, 버전에 따라 지원하는 기능이 다소 상이하기 때문에 제공되는 문서(how_to_control_chzzk....pdf)를 참고하시기 바랍니다. 최신 버전인 1.3.0 기준으로 각각의 앱이 지원하고 있는 기능은 다음과 같습니다.

Chzzk Live Downloader

기능설명
get_info제공 가능한 모든 정보를 하나로 묶어 반환합니다.
get_version실행 중인 Chzzk Live Downloader의 버전 정보를 반환합니다.
get_settingsChzzk Live Downloader의 설정을 반환합니다.
get_channel현재 다운로드 중이거나 대기 중인 채널 정보를 반환합니다.
get_status다운로드 진행률과 같은 현재 실행 상태를 반환합니다.
get_live현재 다운로드 중인 라이브 스트리밍 정보를 반환합니다.
set_settingsChzzk Live Downloader의 설정을 변경합니다.
skip_current현재 다운로드 중인 라이브 스트리밍을 건너뛰고 다음 스트리밍을 기다립니다.
reload_settings현재 시점의 설정 파일을 기준으로 재설정합니다.
quit_app(다운로드 중인 스트리밍이 있을 경우, 작업을 중지하고) 앱을 종료합니다.
Chzzk Live Downloader가 지원하는 기능 목록

Chzzk Video Downloader

기능설명
get_info제공 가능한 모든 정보를 하나로 묶어 반환합니다.
get_version실행 중인 Chzzk Video Downloader의 버전 정보를 반환합니다.
get_settingsChzzk Video Downloader의 설정을 반환합니다.
get_channel현재 다운로드 중인 비디오의 채널 정보를 반환합니다.
get_status다운로드 진행률과 같은 현재 실행 상태를 반환합니다.
get_video현재 다운로드 중인 비디오 정보를 반환합니다.
set_settingsChzzk Video Downloader의 설정을 변경합니다.
reload_settings현재 시점의 설정 파일을 기준으로 재설정합니다.
quit_app(다운로드 중인 비디오가 있을 경우, 작업을 중지하고) 앱을 종료합니다.
Chzzk Video Downloader가 지원하는 기능 목록

Chzzk Clip Downloader

기능설명
get_info제공 가능한 모든 정보를 하나로 묶어 반환합니다.
get_version실행 중인 Chzzk Clip Downloader의 버전 정보를 반환합니다.
get_settingsChzzk Clip Downloader의 설정을 반환합니다.
get_channel현재 다운로드 중인 클립의 채널 정보를 반환합니다.
get_status다운로드 진행률과 같은 현재 실행 상태를 반환합니다.
get_clip현재 다운로드 중인 클립 정보를 반환합니다.
set_settingsChzzk Clip Downloader의 설정을 변경합니다.
reload_settings현재 시점의 설정 파일을 기준으로 재설정합니다.
quit_app(다운로드 중인 클립이 있을 경우, 작업을 중지하고) 앱을 종료합니다.
Chzzk Clip Downloader가 지원하는 기능 목록

기능 실행 예시

JSON-RPC 클라이언트 예시 코드

GitHubsamples 디렉터리에서 JSON-RPC 테스트 코드와 Chzzk Live Downloader 실행기 예제 코드를 다운로드할 수 있습니다.

호출 예시

{
    "jsonrpc": "2.0",
    "method": "get_status",
    "id": 1
}

실행 결과

/* get_version */
{
    "jsonrpc": "2.0",
    "result": {
        "name": "Chzzk Live Downloader",
        "version": "0.84",
        "description": "Downloader for Chzzk live streams",
        "developer": "Choonholic",
        "build_date": "September 18, 2024 00:00:00"
    },
    "id": 5
}

/* get_channel */
{
    "jsonrpc": "2.0",
    "result": {
        "name": "\ub9b4\uce74",
        "verified": true,
        "image": "https://nng-phinf.pstatic.net/...",
        "description": "",
        "followers": 133855
    },
    "id": 5
}

/* get_status */
{
    "jsonrpc": "2.0",
    "result": {
        "status": "Downloading",
        "info": "610.19 MiB, 0:00:24, 17.04 MiB/s"
    },
    "id": 5
}

/* get_live */
{
    "jsonrpc": "2.0",
    "result": {
        "title": "\ucd94\uc11d\ud2b9\uc9d1...",
        "category_type": "ETC",
        "category": "talk",
        "category_value": "talk",
        "open_date": "2024-09-17 12:59:36",
        "image_url": "https://livecloud-thumb.akamaized.net/...",
        "adult": false,
        "video_profile": "high",
        "audio_profile": "LC",
        "video_codec": "H264",
        "video_bitrate": 8192000,
        "audio_bitrate": 192000,
        "video_framerate": "60.0",
        "width": 1920,
        "height": 1080,
        "audio_sampling_rate": 48000,
        "audio_channel": 2,
        "video_dynamic_range": "SDR"
    },
    "id": 5
}

/* quit_app */
{
    "jsonrpc": "2.0",
    "result": "Success",
    "id": 5
}

문의하기

치지직 다운로드 도구에 대해 궁금한 사항, 제보할 오류, 개선 요청 사항 등이 있을 때는 GitHub의 Issues 기능을 통해 제보해 주세요. 모든 언어에 대응 가능하나, 직접 대응 가능한 언어는 한국어, 영어, 일본어, 중국어이며, 다른 언어는 기계 번역을 통하기 때문에 100% 대응이 불가능할 수 있습니다.

If you have any questions, bug reports, or improvement requests regarding the Chzzk Downloader Suite, please submit them through GitHub‘s Issues feature. We can respond to all languages; however, the languages we directly support are Korean, English, Japanese, and Chinese. For other languages, responses may not be fully accurate due to the use of machine translation.

Chzzk Downloader Suiteに関するご質問、バグ報告、または改善要望がございましたら、GitHubIssues機能を通じてお知らせください。全ての言語に対応可能ですが、直接対応可能な言語は韓国語、英語、日本語、中国語です。他の言語については、機械翻訳を通じて対応するため、100%正確に対応できない場合があります。

Related Posts

6 thoughts on “Chzzk Downloader Suite: JSON-RPC 통신 기능 추가

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.