← 목록
기타 2026-06-28 3KB 읽기 5분

B4 완료: 노래방 기둥 + golden 시니어 모드

개요

music.crowny.org:9886 노래방(karaoke) 기둥과 golden.crowny.org:9967 시니어 노래방 서버를 완성했다.

완료 작업

routes/karaoke.js 수정 (핵심)

  • export 방식 수정: module.exports = { handle }module.exports = handle
  • server.js 호출 규약 R.karaoke(req, res, pn, u, ctx) 에 맞게 함수 시그니처 변경
  • ctx.sendJSON 사용으로 한글 Content-Length 함정 완전 회피
  • /api/karaoke/accompaniment/:id 엔드포인트 추가 (ctx.serveAudioRange 위임, 없으면 원곡 fallback)
  • url.searchParamsu.searchParams 참조 버그 수정
  • 길이ms: (meta.길이초||0)*1000 중복 계산 제거 (catalog에 이미 길이ms 있음)

가사 파일 이름 수정

  • data/lyrics/hansunpiano-courage.lrc.jsonhsp-courage.lrc.json
  • data/lyrics/hansunpiano-saranghagi.lrc.jsonhsp-saranghagi.lrc.json
  • trackId 기반 조회와 일치

오디오 파일 경로 수정

  • 이전: public/audio/ (symlink→iCloud stub, 스트리밍 시 ETIMEDOUT)
  • 수정: uploads/audio/{id}.mp3 (server.js resolveAudio() 1차 탐색 경로)
  • 개발용 placeholder MP3 생성 (4180 bytes, 실 음원 대체용)

검증 결과

엔드포인트결과
GET /api/karaoke/catalog2곡 반환
GET /api/karaoke/song/hsp-couragehasLyrics:true, 길이ms:210000
GET /api/karaoke/lyrics/hsp-courage7라인 반환
GET /api/karaoke/search?q=10002hsp-saranghagi 반환
GET /api/music/stream/hsp-courage (Range)206 Partial Content
GET /api/karaoke/accompaniment/hsp-courage206 (원곡 fallback)
POST /api/karaoke/score81점, 옴(A) 등급
GET /api/karaoke/leaderboard/hsp-courage1 entry
golden proxy /api/karaoke/catalog2곡 proxy 성공
golden POST /golden/api/queueitemId 생성
golden GET /golden/api/queue/dev-0012 items

관련 파일 경로

crowny-music (9886)

  • /Users/ef/crowny-music/routes/karaoke.js — 수정된 라우터
  • /Users/ef/crowny-music/한선/노래방엔진.한선 + .toau
  • /Users/ef/crowny-music/한선/가사싱크.한선 + .toau
  • /Users/ef/crowny-music/한선/채점.한선 + .toau
  • /Users/ef/crowny-music/public/karaoke/{index,sing,result}.html
  • /Users/ef/crowny-music/public/karaoke/{player.js,karaoke.css}
  • /Users/ef/crowny-music/data/lyrics/hsp-{courage,saranghagi}.lrc.json
  • /Users/ef/crowny-music/data/songNumber.psv
  • /Users/ef/crowny-music/uploads/audio/hsp-{courage,saranghagi}.mp3 (placeholder)
crowny-golden (9967)
  • /Users/ef/crowny-golden/server.js
  • /Users/ef/crowny-golden/한선/{골든엔진,예약큐,선물,리모컨}.한선 + .toau
  • /Users/ef/crowny-golden/public/{index,sing,remote}.html
  • /Users/ef/crowny-golden/public/{golden,remote}.{js,css}

잔여 이슈

  1. 실 음원: Desktop MP3 파일이 iCloud 다운로드 대기 상태 → 이용자가 파인더에서 파일 열거나 brctl download 실행 필요
  2. 곡번호 데이터: 노래방엔진.한선이 data/songNumber.psv에서 곡번호 조회 — 현재 2곡만 있음
  3. golden .claude/settings.json: 미생성 (서브에이전트 권한 분리 필요시 추가)