Files
watch_sceen_ai/PLAN.md
claude-owner 07e773a5ac docs(plan): switch decision #1 to selfbot protocol-level stream receive
User rejected browser/screenshot capture: they want to actually receive the
real-time screen-share stream like a real client. Research confirms this needs a
selfbot (user token) via discord.js-selfbot-v13 (werift-rtp) exposing incoming
video RTP (receiverData/hasVideo, VoiceReceiver, StreamConnection); decode via
libsodium decrypt + depayload + ffmpeg. Records ToS/ban risk and that no
turnkey receive->frames library exists. Xvfb browser PoC demoted to fallback.
2026-08-09 20:57:48 +09:00

3.6 KiB

watch_sceen_ai — 착수 계획 (확정본)

디스코드 화면공유를 실시간으로 함께 보며 음성으로 대화하는 AI.

확정된 결정 (2026-08-09)

  1. 캡처 방식 (눈) — 사용자 요구: 스크린샷/브라우저 캡처 , 실제 실시간 화면공유 스트림 자체를 진짜 클라이언트처럼 수신해야 함. → 셀프봇(유저 토큰)으로 프로토콜 레벨에서 비디오 RTP 스트림을 수신·디코딩한다.
    • 근거(원문 확인): Discord 공식 봇은 비디오를 완전 차단 → 봇으로는 불가. 반드시 유저 토큰(셀프봇) 필요.
    • discord.js-selfbot-v13(werift-rtp 사용)이 수신 노출: VoiceReceiver(수신 스트림 레코딩), StreamConnection(스크린셰어), receiverData 이벤트(ssrcData: userId, hasVideo, RtpPacket). → 남의 화면공유 수신 기술적으로 가능.
    • 수신 파이프: 셀프봇 join + Go Live "watch stream" 시그널링으로 비디오 SSRC 구독 → 암호화 RTP 비디오 수신 → 복호화(xsalsa20_poly1305/libsodium) → depayload(VP8/H264) → ffmpeg 디코드 → 프레임.
    • 위험/제약: (a) 유저 토큰 = Discord ToS 위반, 계정 밴 위험 → 반드시 버리는 계정 사용. (b) 완성형 "수신→프레임" 라이브러리는 없음, 조립 필요. (c) 주력 셀프봇 라이브러리는 2025-10 아카이브(read-only) → 프로토콜 변경 시 깨질 수 있음.
    • 폐기: Xvfb + 브라우저 캡처(스크린샷) 방식 — 사용자가 명시적으로 거부. poc/는 참고용 폴백으로만 남김.
  2. 대화 방식 — 음성 실시간. STT→LLM→TTS 스트리밍으로 지연 최소화, 사용자 인터럽트 지원.
  3. 두뇌 — Claude OAuth로 가장 싸고 빠른 모델(Haiku 계열).
    • .9의 RTX 5050으로 소형 로컬 VLM을 돌려 매 프레임 1차 이해·화면 변화 감지를 값싸게 처리, 어려운 화면만 Haiku로 에스컬레이션 (하이브리드).
  4. 실행 위치 — 이 리눅스 호스트(.9).

단계별 착수 목록

1단계 · 눈: 화면공유 스트림 수신 ← 지금

  • 호스트 도구 확인 (Node 22/ffmpeg/libsodium 가능)
  • 수신 방법 조사 확정: 셀프봇 프로토콜 레벨 비디오 RTP 수신
  • [블로킹] 버리는 디스코드 유저 계정 + 토큰 확보, ToS/밴 위험 수용 확인
  • 셀프봇으로 음성채널 join → 상대 Go Live 스트림 watch/구독 (비디오 SSRC 획득)
  • 들어오는 비디오 RTP 수신 → 복호화 → depayload(VP8/H264)
  • ffmpeg로 디코드 → 프레임(JPEG/PNG) 추출 PoC (진짜 공유화면 수신 검증)
  • 프레임 변화 감지(동일 화면 반복 전송 방지) + 소스 인터페이스

3단계 · 두뇌 (하이브리드 비전)

  • 로컬 VLM(예: moondream2 / Qwen2-VL-2B) 프레임 1차 이해 + 변화 감지
  • Claude OAuth(Haiku)로 어려운 프레임 에스컬레이션
  • 최신 화면 맥락 저장소

4단계 · 음성 대화

  • STT (faster-whisper, 스트리밍/부분전사)
  • 대화 브레인 (화면맥락 + 대화이력)
  • TTS (MeloTTS 등, 이 호스트에 자산 있음)
  • 말 끊기 인터럽트 + 지연 최적화

5단계 · 통합·운영

  • 인지 루프 + 대화 루프 동시 실행
  • proactive(화면 크게 바뀌면 먼저 말 걸기)
  • 끊김 복구, 비용 모니터링, 서비스화

주의

  • 캡처용 디스코드 계정은 메인 말고 별도 계정 권장(자동화 회색지대, 밴 위험 최소화).
  • 로컬 GPU 8GB VRAM 제약 → 소형 VLM만. 큰 이해는 클라우드.