capcut-agent/참고/ytcut
hehihoho3@gmail.com bf1b387d6d chore: git 저장소 초기화 (기존 코드 스냅샷)
컷별 댓글 추천 작업을 태스크 단위로 되돌릴 수 있게 버전관리를 시작한다.
.gitignore 로 영상·캐시(.downloads 2.7G, .comments 72M, .media 28M)와
비밀키(.gemini_key)를 제외했다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 11:36:05 +09:00
..
app chore: git 저장소 초기화 (기존 코드 스냅샷) 2026-08-04 11:36:05 +09:00
downloads chore: git 저장소 초기화 (기존 코드 스냅샷) 2026-08-04 11:36:05 +09:00
docker-compose.yml chore: git 저장소 초기화 (기존 코드 스냅샷) 2026-08-04 11:36:05 +09:00
Dockerfile chore: git 저장소 초기화 (기존 코드 스냅샷) 2026-08-04 11:36:05 +09:00
README.md chore: git 저장소 초기화 (기존 코드 스냅샷) 2026-08-04 11:36:05 +09:00

YT Cut (ClipCut) — 유튜브 구간 잘라받기

유튜브 영상에서 원하는 시작~끝 구간만 잘라 mp4로 받는 웹앱. FastAPI + yt-dlp + ffmpeg. 컨테이너 하나로 끝, 외부 DB 불필요.

폴더 구성

ytcut/
├─ docker-compose.yml
├─ Dockerfile
├─ README.md
├─ downloads/        ← 자동 생성됨. 잘라낸 mp4 저장 위치
└─ app/
   ├─ main.py
   └─ requirements.txt

사전 준비

  • Docker + Docker Compose 설치된 리눅스 서버
  • 8906 포트가 비어 있어야 함 (쓰는 포트 있으면 compose의 8906:8000 왼쪽 숫자만 변경)

설치 & 실행

cd ytcut
mkdir -p downloads
chown -R 1000:1000 downloads   # 컨테이너가 1000:1000 으로 돌아서 쓰기 권한 필요
docker compose up -d --build
  • 첫 실행은 이미지 빌드(ffmpeg 설치) 때문에 1~3분 걸림
  • 로그: docker compose logs -f

사용법

  1. 브라우저에서 http://<서버IP>:8906 접속
  2. 유튜브 URL 붙여넣기
  3. 시작 / 끝 시간 입력 — 분:초(03:30) 또는 시:분:초(01:03:30) 형식
  4. 잘라서 받기 → 처리 끝나면 "파일 받기" 버튼으로 다운로드
  5. 하단 파일 목록에서 이전에 자른 클립 다시 받기/삭제 가능

업데이트

docker compose up -d --build        # 코드/이미지 갱신
# yt-dlp만 최신화하고 싶을 때:
docker compose build --no-cache && docker compose up -d

※ 유튜브가 막아서 다운로드가 안 될 때는 yt-dlp 최신화가 보통 해결책.

종료 / 삭제

docker compose down        # 중지 (downloads 폴더는 유지)

참고

  • 한 번 처리 제한시간 30분(main.pyTIMEOUT_SEC).
  • 인증 없음 → 공개 인터넷에 직접 노출 말고, 리버스 프록시(Nginx 등)나 사설망에서 쓰는 걸 권장.
  • 도메인 붙이려면 리버스 프록시에서 호스트:8906 으로 프록시하면 됨.