# 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` 왼쪽 숫자만 변경) ## 설치 & 실행 ```bash 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. 하단 파일 목록에서 이전에 자른 클립 다시 받기/삭제 가능 ## 업데이트 ```bash docker compose up -d --build # 코드/이미지 갱신 # yt-dlp만 최신화하고 싶을 때: docker compose build --no-cache && docker compose up -d ``` ※ 유튜브가 막아서 다운로드가 안 될 때는 yt-dlp 최신화가 보통 해결책. ## 종료 / 삭제 ```bash docker compose down # 중지 (downloads 폴더는 유지) ``` ## 참고 - 한 번 처리 제한시간 30분(`main.py`의 `TIMEOUT_SEC`). - 인증 없음 → 공개 인터넷에 직접 노출 말고, 리버스 프록시(Nginx 등)나 사설망에서 쓰는 걸 권장. - 도메인 붙이려면 리버스 프록시에서 `호스트:8906` 으로 프록시하면 됨.