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

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

Chzzk Live Downloader를 비롯한 Chzzk Video Downloader, Chzzk Clip Downloader는 모두 단독 실행형 콘솔 사용자 인터페이스 (Console 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

지원 기능 목록

이 기능은 Chzzk Downloader Suite 버전 0.84 이상부터 사용 가능하며, 현재 각각의 앱이 지원하고 있는 기능은 다음과 같습니다.

Chzzk Live Downloader

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

Chzzk Video Downloader

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

Chzzk Clip Downloader

기능설명
get_version실행 중인 Chzzk Clip Downloader의 버전 정보를 반환합니다.
get_settingsChzzk Clip Downloader의 설정을 반환합니다.
get_status다운로드 진행률과 같은 현재 실행 상태를 반환합니다.
get_channel현재 다운로드 중인 채널 정보를 반환합니다.
get_clip현재 다운로드 중인 클립 정보를 반환합니다.
set_settingsChzzk Clip Downloader의 설정을 변경합니다.
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
}

JSON-RPC 통신 기능 관련 문의

사용 시 궁금하신 점이나 문제가 있으실 경우에는 아래 메일로 문의주시기 바랍니다.

E-mail: choonholic at outlook dot com

Related Posts

2 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.