Skip to content

bbobbogi/stream4j

Repository files navigation

stream4j

📘 공식 문서 사이트 →

치지직, 씨미(CiMe), 숲(SOOP, 구 아프리카TV/아프리카티비), 유튜브(YouTube), 투네이션 — 5개 스트리밍 플랫폼의 채팅과 후원을 하나의 API로 다루는 Java 라이브러리입니다.

이 프로젝트는 chzzk4j에서 출발하여, 치지직 외 4개 플랫폼(씨미·숲·유튜브·투네이션)을 추가 지원하도록 확장한 라이브러리입니다.

왜 필요한가요?

스트리밍 플랫폼마다 채팅 연결 방식, 후원 이벤트 구조, 인증 방법이 모두 다릅니다. 여러 플랫폼을 동시에 운영하려면 각각의 API를 따로 연동해야 하는데, stream4j는 이 과정을 하나의 통합 API로 해결합니다.

  • 플랫폼별 URL을 넣으면 자동으로 플랫폼을 감지합니다
  • 채팅 메시지와 후원 이벤트를 공통 형식으로 받을 수 있습니다
  • 연결이 끊어지면 자동으로 재연결합니다

이런 분께 적합합니다

  • 멀티플랫폼 통합 채팅 뷰어를 만들고 싶은 개발자
  • 여러 플랫폼의 후원 알림 봇을 구축하려는 팀
  • 스트리밍 관련 자동화 도구를 기획하는 PM
  • 다중 플랫폼 방송 운영에 필요한 기술을 검토하는 분

지원 플랫폼

플랫폼 채팅 후원 방송 종료 감지 인증 필요
치지직 (Chzzk) 선택
씨미 (CiMe) 불필요
(SOOP, 구 아프리카TV / 아프리카티비) 선택
유튜브 (YouTube) 불필요
투네이션 (Toonation) 불필요

빠른 시작

URL만 넣으면 바로 동작합니다.

StreamChat chat = new StreamChatBuilder()
        .add("https://chzzk.naver.com/live/924a636224c9203259af46ad7d8b70ca")
        .add("https://ci.me/@lyn")
        .add("https://play.sooplive.co.kr/tjrdbs999/292536969")
        .add("https://www.youtube.com/watch?v=Qv6o6WACJ60")
        .add("https://toon.at/widget/alertbox/abc123")
        .withListener(new StreamChatEventListener() {
            @Override
            public void onDonation(Donation donation) {
                System.out.println("[" + donation.platform() + "] "
                        + donation.nickname() + ": "
                        + donation.formattedAmount() + " - "
                        + donation.message());
            }

            @Override
            public void onChat(DonationPlatform platform, String channelId, String nickname, String message) {
                System.out.println("[" + platform + "] " + nickname + ": " + message);
            }
        })
        .build();

chat.connectAll();

설치

repositories {
    mavenCentral()
}

dependencies {
    implementation("io.github.bbobbogi:stream4j:1.0.1-SNAPSHOT")
}

핵심 기능

  • 플랫폼 자동 감지 — URL을 넣으면 어떤 플랫폼인지 자동으로 판별합니다
  • 통합 후원 모델 — 치즈, 별풍선, 슈퍼챗 등 플랫폼별 후원을 하나의 형식으로 통합합니다
  • 안정적인 연결 유지 — 장시간 연결을 안정적으로 유지하고, 끊어지면 자동으로 재연결합니다
  • 방송 종료 감지 — 각 플랫폼에 맞는 방식으로 방송 종료를 자동 감지합니다
  • 원화 환산 — 각 플랫폼의 후원 단위(치즈, 빔, 별풍선 등)를 원화로 환산할 수 있습니다

대표 사용 사례

  • 🖥️ 여러 플랫폼의 채팅을 한 화면에 모아보는 통합 채팅 뷰어
  • 🔔 후원이 들어오면 알려주는 멀티플랫폼 후원 알림 봇
  • 📊 채팅/후원 데이터를 수집·분석하는 방송 관리 대시보드
  • 🎮 마인크래프트 서버 연동 — 후원 시 보스 소환·아이템 지급·이펙트 발동 등 게임 내 이벤트를 자동으로 트리거 (치즈·별풍선·슈퍼챗·빔 등 후원 단위 통합 처리)
  • 🤖 디스코드 봇 연동 — 치지직·숲·유튜브의 채팅과 후원을 디스코드 채널로 실시간 중계
  • 🎬 OBS 오버레이 연동 — 후원·구독·미션 알림을 방송 화면에 커스텀 오버레이로 표시
  • 🔊 TTS(음성 알림) 연동 — 후원 메시지를 자동으로 음성 변환해 방송 중 재생

제한사항

  • Java 11 이상이 필요합니다
  • 일부 플랫폼(치지직, SOOP)은 로그인 정보가 있어야 모든 기능을 사용할 수 있습니다
  • 각 플랫폼의 정책 변경에 따라 일부 기능이 영향을 받을 수 있습니다
  • 투네이션은 후원 알림 전용으로, 채팅 기능은 지원하지 않습니다

상세 문서

더 자세한 사용법은 아래 문서를 참고하세요.

라이선스

이 프로젝트는 MIT License로 배포됩니다.

About

치지직, 씨미(CiMe), 숲(SOOP, 구 아프리카TV/아프리카티비), 유튜브, 투네이션 5개 스트리밍 플랫폼의 채팅·후원을 하나의 Java/Kotlin API로 통합한 SDK. 자동 재연결, 통합 Donation 모델 내장. 마인크래프트·디스코드·OBS 연동에 활용

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors