16 Commits

Author SHA1 Message Date
kihong.kim
5c57f33903 feat: 타임라인 에디터 및 비디오 스튜디오 컴포넌트 추가
- TimelineEditor, VideoStudio 컴포넌트 신규 추가
- 백엔드 transcriber, video_processor 서비스 개선
- 프론트엔드 HomePage 리팩토링 및 스타일 업데이트

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:21:58 +09:00
kihong.kim
ad14c4ea8c fix: 인트로 텍스트 20자 제한 및 비디오 캐싱 문제 해결
- 인트로(썸네일) 텍스트 제한을 10자에서 20자로 증가
- 비디오 URL에 updated_at 타임스탬프 추가하여 캐싱 문제 해결
- 재편집 후 영상이 이전 버전으로 보이는 문제 수정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 22:10:23 +09:00
kihong.kim
be3ed688a1 feat(bgm): 카테고리당 3개 다운로드 및 카테고리별 그룹화
- 카테고리당 BGM 3개씩 다운로드 기능 추가
- 파일명에 카테고리 prefix 추가 (예: upbeat_trackname.mp3)
- 중복 BGM 자동 스킵 기능
- 프론트엔드에서 BGM을 카테고리별로 그룹화하여 표시
- 분류되지 않은 BGM은 '기타' 섹션에 표시

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 21:36:30 +09:00
kihong.kim
56bf3b1d34 Add FREESOUND_API_KEY to Docker environment
BGM auto-download was failing because the API key was not passed to container.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 21:23:06 +09:00
kihong.kim
40fcbd7c48 Remove deploy.sh script
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 20:59:26 +09:00
kihong.kim
ae7a452f08 Remove Gitea Actions workflow
Manual deployment preferred for this project.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 20:59:01 +09:00
kihong.kim
4aa282c11a Remove --no-cache from docker build to cache Whisper model
Some checks failed
Deploy to Server / deploy (push) Failing after 16m58s
Docker layer caching will now preserve the Whisper model download step,
avoiding 1.5GB download on every deployment.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 20:38:19 +09:00
kihong.kim
d393b911f7 Fix runner label: linux -> ubuntu-latest
Some checks failed
Deploy to Server / deploy (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 19:53:20 +09:00
kihong.kim
c570c2add7 Fix runner label: ubuntu-latest -> linux
Some checks failed
Deploy to Server / deploy (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 19:51:57 +09:00
kihong.kim
e442eb0168 Fix server path to /home/bini/project/bini-shorts-maker
Some checks failed
Deploy to Server / deploy (push) Has been cancelled
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 19:08:41 +09:00
kihong.kim
40d7512e44 Add Gitea Actions workflow for auto-deployment
Some checks failed
Deploy to Server / deploy (push) Has been cancelled
Replace webhook-based deployment with Gitea Actions workflow.
On push to main, the workflow will:
- SSH into the server
- Pull latest code
- Rebuild and restart Docker containers

Required secrets in Gitea:
- SERVER_HOST
- SERVER_USER
- SERVER_SSH_KEY
- SERVER_PORT

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 19:06:52 +09:00
kihong.kim
3488d5118f Add auto-deployment scripts for Gitea webhook
- deploy.sh: Script to pull code and restart Docker containers
- webhook-server.py: HTTP server to receive Gitea push events
- shorts-maker-webhook.service: Systemd service for webhook server
- setup-autodeploy.sh: Setup script for the server

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 19:05:24 +09:00
kihong.kim
b15628cf15 Add BGM data directories to .gitignore
BGM files are user data and should not be tracked in git.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 19:03:11 +09:00
kihong.kim
49ca7d8913 Add intro text improvements and BGM download management
- Intro text: Add 0.7s freeze frame effect before video plays
- Intro text: Auto-scale font size to prevent overflow
- Intro text: Split long text into 2 lines automatically
- BGM Page: Add free BGM download section with 6 categories
- BGM Page: Support individual and bulk download from Freesound.org

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 19:01:58 +09:00
kihong.kim
3f9fc90e61 Add Pillow dependency for thumbnail generation 2026-01-03 22:24:18 +09:00
kihong.kim
c3795138da Initial commit: YouTube Shorts maker application
Features:
- Video download from TikTok/Douyin using yt-dlp
- Audio transcription with OpenAI Whisper
- GPT-4 translation (direct/summarize/rewrite modes)
- Subtitle generation with ASS format
- Video trimming with frame-accurate preview
- BGM integration with volume control
- Intro text overlay support
- Thumbnail generation with text overlay

Tech stack:
- Backend: FastAPI, Python 3.11+
- Frontend: React, Vite, TailwindCSS
- Video processing: FFmpeg
- AI: OpenAI Whisper, GPT-4

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 21:38:34 +09:00