Greasy Fork

Greasy Fork is available in English.

Chzzk_Clips: Unblock clips

clips 목록 & 상세(detail?optionalProperties) API에서 privateUserBlock 해제

目前为 2025-04-29 提交的版本,查看 最新版本

// ==UserScript==
// @name         Chzzk_Clips: Unblock clips
// @namespace    Chzzk_Clips: Unblock clips
// @version      1.0.0
// @description  clips 목록 & 상세(detail?optionalProperties) API에서 privateUserBlock 해제
// @author       DOGJIP
// @match        https://chzzk.naver.com/*
// @match        https://*.chzzk.naver.com/*
// @grant        none
// @require      https://unpkg.com/xhook@latest/dist/xhook.min.js
// @icon         https://www.google.com/s2/favicons?sz=64&domain=chzzk.naver.com
// ==/UserScript==

(function() {
  'use strict';

  xhook.after((request, response) => {
    const url = request.url;
    let patched = false;

    // 1) 목록 API: /clips?filterType=ALL
    if (url.includes('/clips?') && url.includes('filterType=ALL')) {
      try {
        const json = JSON.parse(response.text);
        if (json.content && Array.isArray(json.content.data)) {
          json.content.data.forEach(clip => {
            clip.privateUserBlock = false;
            if (clip.blindType) clip.blindType = null;
          });
          response.text = JSON.stringify(json);
          patched = true;
        }
      } catch (e) {
        //console.error('[Chzzk_Clips] 목록 패치 실패:', e);
      }
    }

    // 2) 상세 API: detail?optionalProperties=...
    if (url.includes('/clips/') && url.includes('detail?optionalProperties=')) {
      try {
        const json = JSON.parse(response.text);
        if (json.content && json.content.optionalProperty) {
          json.content.optionalProperty.privateUserBlock = false;
          // 필요하면 blindType 도 해제
          if (json.content.optionalProperty.blindType) {
            json.content.optionalProperty.blindType = null;
          }
          response.text = JSON.stringify(json);
          patched = true;
        }
      } catch (e) {
        //console.error('[Chzzk_Clips] 상세 패치 실패:', e);
      }
    }
  });

  //console.log('Chzzk_Clips :: 완전 차단 해제 스크립트 로드됨');
})();