기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제. (node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
AI Video Brief — 온라인 영상 음성다운로드·AI요약 서비스 신규 구축
소요 시간: 35분 Context 사용량: input 500k / output 20k tokens (추정값)
요청 내용
유튜브 등 온라인 영상 URL을 입력하면 ① 음성(mp3) 다운로드 ② 내용 AI 요약을 해주는 서비스 구축.
사용자 결정 사항
- 위치: 별도 새 프로젝트
/home/hanmac/projects/gitea/b23042/ai_video_brief - 텍스트 확보: 자막 우선, 없으면 Whisper 음성인식 대체
- 요약 AI: 로컬 무료 모델 (Ollama) — 유료 API 대신
- 형태: 웹 화면
구축 내용
스택
- Python 3.10 venv (
/usr/bin/python3.10— anaconda 3.8은 구버전이라 회피) - FastAPI + uvicorn (포트 55100, GhiVideo 55000과 충돌 없음)
- yt-dlp 2026.7.4 (다운로드·자막), faster-whisper 1.2.1 (small/CPU/int8)
- Ollama v0.31.1 + exaone3.5:7.8b (LG 한국어 특화 모델, 4.8GB)
파이프라인
download: yt-dlp → bestaudio → ffmpeg mp3 변환 → 다운로드 링크summarize: 자막(수동→자동, ko→en) 탐색 → 없으면 mp3 다운로드 후 Whisper 받아쓰기 → 6,000자 초과 시 부분요약→최종요약(map-reduce) → EXAONE 한국어 요약- 작업은 백그라운드 스레드 + 웹에서 1.5초 폴링으로 진행률 표시
특이사항 (다음 에이전트 참고)
- sudo 사용 불가 (비밀번호 필요) → python3.10-venv apt 설치 실패 →
pip install --user virtualenv로 우회 - Ollama 최신 릴리스는
.tgz가 아닌.tar.zst형식 → anaconda의 zstd로 해제,~/ollama/bin/ollama에 수동 설치 (systemd 서비스 없음, run.sh가 자동 기동) - GPU 없음 → Whisper·Ollama 모두 CPU 동작 (RAM 31GB로 충분)
테스트 결과
- ✅ mp3 다운로드: 19초 영상 → 0.4MB mp3 정상 생성
- ✅ Whisper 받아쓰기: 19초 영상 정확히 전사
- ✅ 요약 전 과정: 자막 발견 → EXAONE 한국어 요약 생성 (약 10초 소요)
- ✅ 웹 화면 http://localhost:55100 정상 서빙
실행 방법
cd /home/hanmac/projects/gitea/b23042/ai_video_brief && ./run.sh
# 브라우저: http://localhost:55100