868906b8c6
test(music-lab): 풀 파이프라인 통합 테스트 (mock)
2026-05-07 17:37:15 +09:00
fe60c8d330
feat(music-lab): pipeline 오케스트레이터 + 14 엔드포인트
2026-05-07 17:11:29 +09:00
4755e34c14
feat(music-lab): YouTube OAuth + resumable 업로드
2026-05-07 17:05:12 +09:00
ad1c721ba8
feat(music-lab): pipeline 4축 AI 검토 + 휴리스틱 폴백
2026-05-07 17:01:17 +09:00
1c705b0ef3
feat(music-lab): pipeline 메타데이터 LLM 생성 + 폴백
2026-05-07 16:58:03 +09:00
68dec2e53d
feat(music-lab): pipeline 영상·썸네일 생성
2026-05-07 16:53:57 +09:00
e33a2310af
feat(music-lab): AI 커버 생성 + 그라데이션 폴백
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-07 16:50:28 +09:00
fceca88db4
feat(music-lab): pipeline 상태 머신
2026-05-07 16:40:31 +09:00
d66a321982
feat(music-lab): pipeline 5개 DB 테이블 + 헬퍼
...
YouTube 음악 파이프라인 Task 1 — 신규 5개 테이블과 헬퍼 함수 추가.
테이블:
- video_pipelines: 파이프라인 단위 상태 머신 + 메타/리뷰 JSON
- pipeline_jobs: 단계별 비동기 작업 상태/시간
- pipeline_feedback: 텔레그램 피드백 이력
- youtube_oauth_tokens: 채널 OAuth refresh/access 토큰
- youtube_setup: 단일 행 설정 (메타 템플릿/커버 프롬프트/리뷰 가중치/임계값/비주얼/공개정책)
헬퍼:
- create_pipeline / get_pipeline / update_pipeline_state / list_pipelines
- increment_feedback_count / record_feedback / get_feedback_history
- create_pipeline_job / update_pipeline_job / list_pipeline_jobs
- get_youtube_setup / update_youtube_setup
- upsert_oauth_token / get_oauth_token / delete_oauth_token
테스트:
- tests/test_pipeline_db.py: 7개 테스트 (생성/상태/피드백/잡/셋업/OAuth)
- tests/conftest.py: freezegun 기반 freezer fixture 추가
- requirements.txt: freezegun>=1.4 추가
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-07 16:37:11 +09:00
355667cf9c
fix(music-lab): market API 타입 강화·ANTHROPIC_API_KEY call-time·HTTP 레이어 테스트 추가
2026-05-01 12:32:24 +09:00
26b9eea0dc
feat(music-lab): market_trends·trend_reports DB + market.py + /api/music/market 5개 API
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 12:26:37 +09:00
abf475433b
fix(music-lab): xfade offset 누적 오차 수정 + 테스트 보강
...
- _build_slideshow_cmd: offset 공식을 `duration_per_image * i - xd * i`로 수정 (누적 전환 오차 제거)
- _generate_metadata: genre 빈 문자열일 때 yt_tags에 빈 문자열 삽입 방지
- test: VIDEO_DATA_DIR 패치를 monkeypatch로 교체 (자동 복원 보장)
- test: xfade offset 값 검증 테스트 추가 (29.00, 58.00)
- test: 미사용 import 제거 (pytest, sqlite3)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 11:56:41 +09:00
7336fd090e
feat(music-lab): video_producer — FFmpeg 비주얼라이저·슬라이드쇼 + Claude 메타데이터
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 11:49:42 +09:00
62d79b2669
fix(music-lab): revenue avg_rpm 공식 수정 + UNIQUE 제약 + 테스트 보강
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 11:46:00 +09:00
a5495aeaa4
feat(music-lab): video_projects·revenue_records DB 마이그레이션 + CRUD
...
- init_db()에 video_projects, revenue_records 테이블 추가 (CREATE IF NOT EXISTS)
- video_projects CRUD: create/get/get_all/update_status/delete + get_track_by_id
- revenue_records CRUD: create/get_all/update/delete/get_revenue_dashboard (RPM 자동 계산)
- TDD: tests/test_db_video.py 5개 테스트 모두 PASSED
- pytest.ini 추가 (pythonpath=. 설정)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 11:41:07 +09:00