← /log
2026-04-21

Daily build log

517 words·raw from wai-vault/02-DevLog

2026-04-21

YouTube Faceless Studio — 108/108 완주

작업 개요

  • 레포: 1or4/youtube-faceless-studio (로컬: C:\Users\chyj1\youtube-faceless-studio)
  • 리서치 레포: 1or4/youtube-faceless-research (190+ 소스, 5 에이전트 딥리서치)
  • 세션 시작 시 스튜디오 완성도 ~40%, 리서치 스펙 대비 갭 108개 식별
  • 스프린트 18개 단위로 개별 커밋 + 검증 → 전부 완료

최종 규모

  • 커밋 19개 (초기 1 + S1~S18 18개)
  • 17 니치 × 8 언어 × 4 티어 × 7 포맷 = 조합 3,808개
  • 파이프라인 모듈 17종: script/tts/visual/music/assemble/thumbnail/seo/upload/repurpose/voice/captions/qc/live_stream/browser_upload/descript/opus_clip/remote_render
  • API 라우트 11종: generate/publish/tiers/thumbnail/analytics/safety/repurpose/voice/schedule/live + health
  • 트렌드 소스 6종 + 메트릭 4 + 경쟁/갭 분석
  • vitest 14/14 통과
  • Docker + GitHub Actions cron 준비

스프린트 히스토리

#주제항목
S1BGM 파이프라인 + UI 긴급 버그9
S2업로드 정합성 + 정책 준수6
S3썸네일 A/B + SEO CTR 부스트10
S4한국어 TTS + 토픽 승인 UX5
S5Analytics 대시보드8
S6T3 No-code 티어 + 올인원6
S7Shorts 포맷 + 훅 오버레이5
S8고CPM 니치 3개3
S93-스트라이크 + Whisper4
S10리퍼포징 4종5
S11트렌드 소스 8종8
S12TTS 3 + 비주얼 5 확장8
S13조립/썸네일 보강8
S14업로드 고도화6
S15자막 완성6
S16Suno/Artlist + Spotify 감지3
S17니치 10 + 언어 5 + 포맷 217
S18인프라 마감9

핵심 의사결정

  • Vrew 공식 API 없음 → 한국어는 Edge TTS ko-KR-SunHiNeural/InJoonNeural 로 대체 (Vrew 수준 자연도)
  • Pictory/InVideo 올인원 provider 는 실패 시 mixed(pexels+gemini) 자동 폴백
  • A/B 썸네일 YT v3 API 는 A/B 미지원 → 5변형 렌더 + Primary 교체 API + Studio 수동 등록 안내
  • Shotstack/Creatomate 원격 렌더러는 옵션 (env 없으면 로컬 FFmpeg 유지)
  • Playwright 업로더 는 API 쿼터 대체 백업 — storageState 1회 로그인 재사용
  • Selenium/MJ 는 비공식 API 브릿지 — skeleton 만, env 없으면 skip

YouTube 정책 준수

  • alteredOrSyntheticContent='synthetic' 자동 공시
  • 3-스트라이크 하드 게이트 (90일 만료)
  • 일 12+ 업로드 하드 블록 (env 무관)
  • 인간 리뷰 서명 로그 (.tokens/reviews.json)
  • 템플릿 다양화 감지 (Jaccard 0.55)
  • 스크립트 프롬프트 독창성 강제
  • Chromaprint + AcoustID 상업곡 감지 + BGM 자동 제거

배포

  • Dockerfile 준비 (Node 22 + ffmpeg + chromaprint + tini)
  • Nexus Web First 원칙 따라 Docker 웹 배포 권장
  • Electron/pkg 는 대안 (DEPLOY.md 참조)

다음 단계 제안

  1. 대표님 환경변수 .env 채우기 (.env.example 참고)
  2. YouTube OAuth 초기화 (node scripts/oauth-init.js) — scope 재발급 필요 (analytics 추가됨)
  3. YAL 풀에 니치별 무료 BGM 채우기 (assets/music/yal/{niche}/*.mp3)
  4. 첫 배치 테스트 (free 티어, manual topic)
  5. 결과 검증 → paid 티어 키 입력 순서

관련 링크