기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제. (node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
AI Video Brief — 다운로드 기록 목록 + 다시 받기 기능
소요 시간: 12분 Context 사용량: input 960k / output 72k tokens (추정값)
요청 내용
음악이든 영화든 다운로드 받았던 것을 히스토리 목록으로 저장해 다시 받을 수 있게.
구현 내용 (ai_video_brief)
백엔드
db.py:downloads테이블 신규 (id, video_id, url, title, kind, quality, format_id, video_only, size_mb, created_at)save_download()— 같은 (video_id/url, kind, quality)면 옛 기록 지우고 갱신(중복 방지)list_downloads()/get_download()/delete_download()
main.py:- 다운로드 완료 시
_save_download_record()로 기록 저장 (음성/영상 파이프라인 둘 다) GET /api/downloads— 기록 목록 + 각 항목file_exists(파일이 아직 디스크에 있는지) 계산DELETE /api/downloads/{id}— 기록 + 저장 파일 함께 삭제download_file()개선 — 메모리 작업이 없으면(서버 재시작 등) DB 기록에서 제목/품질 가져와 파일명 생성
- 다운로드 완료 시
웹 화면
- 좌측에 "⬇️ 다운로드 기록" 카드 추가 (요약 보관함 아래)
- 항목: 🎬/🎵 + 제목 + 품질 + 날짜 + 크기, 파일 없으면 "파일없음" 표시
- 파일 있으면 ⬇️(즉시 저장, 직접 링크), 없으면 🔄(저장했던 품질 그대로 다시 받기)
- ✕ 버튼: 기록+파일 삭제
- 다운로드 작업 완료 시 기록 목록 자동 새로고침
테스트 결과
- ✅ 영상 다운로드 → 기록에 저장 (제목/품질/크기/파일있음=True)
- ✅ 파일 강제 삭제 → file_exists=False 로 전환, format_id/video_only 보존(다시받기 가능)
- ✅ DELETE → 기록·파일 삭제 확인
- ✅ 화면에 다운로드 기록 UI 정상 렌더
다음 에이전트 참고
- "다시 받기"는 파일이 있으면 즉시 저장, 없으면 저장된 format_id로 유튜브에서 재다운로드 (새 job id로 새 파일 생성 → 기록은 dedupe로 갱신)
- 다운로드 기록과 요약 보관함은 별도 테이블 (downloads vs summaries)