Commit Graph

8 Commits

Author SHA1 Message Date
김보곤
ed1967405c feat:트렌드 키워드를 건강 채널용으로 필터링
건강 채널 전용 트렌딩 시스템:
- Gemini로 실시간 트렌드에서 건강 관련 키워드만 필터링
- 간접적 키워드도 건강 앵글로 리프레이밍 (예: 김치 → 장건강)
- 필터 결과 30분 캐싱 (Gemini 호출 최소화)
- 필터 실패 시 원본 키워드 폴백

제목 생성 건강 앵글 반영:
- generateTrendingHookTitles 프롬프트에 건강 채널 명시
- trending_context에 health_angle, suggested_topic 추가
- 모든 제목이 건강/웰빙 관점으로 생성되도록 가이드

UI 건강 테마 적용:
- 버튼/칩 색상: orange/indigo → green 테마
- 칩에 건강 앵글 태그 배지 표시
- 칩 클릭 시 건강 주제(suggested_topic)가 인풋에 채워짐

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 13:08:57 +09:00
김보곤
e093c7b7e7 fix:TTS 속도 1.5x + Neural2 음성 변경 + 자막 문장 단위 싱크
TTS 개선:
- 음성: ko-KR-Wavenet-A → ko-KR-Neural2-C (남성, 자연스럽고 개성있는 음성)
- 속도: 1.0x → 1.5x (기존 대비 50% 빠르게)
- 피치: 0.0 → 2.0 (더 에너지 있는 톤)

자막 싱크 버그 수정:
- 장면 전체 나레이션을 한 블록으로 표시 → 문장 단위로 분리 표시
- 각 문장 타이밍을 글자 수 비례로 자동 계산
- 문장 분리 로직: 마침표/느낌표/물음표 기준, 폴백으로 쉼표 분리
- 장면 끝 0.3초 여백으로 자연스러운 전환

시나리오 프롬프트:
- 나레이션 문장 길이 규칙 추가 (한 문장 15~25자)
- 반드시 마침표/느낌표/물음표로 문장 구분하도록 명시
- 장면당 글자 수 60~100자로 밀도 향상

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:59:36 +09:00
김보곤
1d512e8acc fix:시나리오 프롬프트 개선 (후킹 강화, CTA 제거, 나레이션 밀도 향상)
- 초반 3초 후킹 규칙 강화 (충격/의문/공감 필수, 평범한 인사 금지)
- 나레이션 속도감 향상 (장면당 50~80자, 빠른 말투)
- 매 장면마다 놀라운 팩트 또는 감정 변화 필수
- 마지막 장면 CTA(좋아요/구독/알림설정) 완전 제거 → 여운 남기는 마무리로 대체
- 장면 구성 6→5장면으로 변경 (CTA 장면 삭제, 시간 재분배)
- 나레이션 좋은/나쁜 예시 추가로 AI 출력 품질 가이드

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:47:37 +09:00
김보곤
0be763b05a feat:트렌딩 키워드 수집 + Veo 3.1 프롬프트 강화 파이프라인
- Google Trends RSS 기반 실시간 급상승 키워드 수집 서비스 추가
- 트렌딩 컨텍스트 활용 후킹 제목 생성 (5패턴: 충격/비교/숫자/질문/반전)
- Veo 3.1 공식 가이드 기반 visual_prompt 5요소 프레임워크 적용
- GET /video/veo3/trending 엔드포인트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 12:36:36 +09:00
김보곤
60edc28a17 fix:한국인 여성 캐릭터 고정 + 나레이션-영상 싱크 버그 수정
- Gemini 프롬프트: visual_prompt에 한국인 여성(20대) 등장인물 규칙 추가
- Veo 프롬프트: 모든 클립에 "Korean woman in her 20s" 프리픽스 자동 추가
- 싱크 버그: activeNarrationPaths 인덱스 off-by-one ($num-1→$num) 수정
  - 나레이션이 영상보다 1장면 앞서 재생되던 근본 원인
- concatNarrations: atrim+apad로 나레이션을 장면 길이에 정확히 매칭

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 10:50:51 +09:00
김보곤
8a6f3f20c9 fix:Gemini 3.0 Flash 모델 적용 + 제목 선택 UI/UX 개선
- 기본 모델을 gemini-3.0-flash로 변경
- @apply를 순수 CSS로 전환 (Tailwind CDN 호환)
- 제목 카드에 라디오 도트, 체크 뱃지, hover/selected 효과 추가
- 선택 시 border glow + 체크마크 표시

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:56:02 +09:00
김보곤
2fbbaad713 fix:GeminiScriptService를 AiConfig(DB) 기반으로 연결
- .env API 키 대신 시스템 > AI 설정의 활성 Gemini 설정 사용
- API Key / Vertex AI(서비스 계정) 방식 자동 분기 지원

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:50:26 +09:00
김보곤
6ab93aedd2 feat:YouTube Shorts AI 자동 생성 시스템 구현 (Veo 3.1 + Gemini)
- GeminiScriptService: 트렌딩 제목/시나리오 생성
- VeoVideoService: Veo 3.1 영상 클립 생성
- TtsService: Google TTS 나레이션 생성
- BgmService: 분위기별 BGM 선택
- VideoAssemblyService: FFmpeg 영상 합성
- VideoGenerationJob: 백그라운드 처리
- Veo3Controller: API 엔드포인트
- React 프론트엔드 (5단계 위저드)
- GoogleCloudService.getAccessToken() public 변경

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 08:46:28 +09:00