80 lines
1.4 KiB
Markdown
80 lines
1.4 KiB
Markdown
|
|
# 🖥️ FFmpeg GUI - Backend
|
||
|
|
|
||
|
|
FFmpeg를 활용한 영상 다운로드/변환 API 서버입니다.
|
||
|
|
|
||
|
|

|
||
|
|

|
||
|
|

|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🛠️ 기술 스택
|
||
|
|
|
||
|
|
| 기술 | 설명 |
|
||
|
|
| ----------- | ------------- |
|
||
|
|
| **Node.js** | 런타임 환경 |
|
||
|
|
| **Express** | 웹 프레임워크 |
|
||
|
|
| **FFmpeg** | 영상 처리 |
|
||
|
|
| **UUID** | 고유 ID 생성 |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 📡 API 엔드포인트
|
||
|
|
|
||
|
|
### `POST /api/download-request`
|
||
|
|
|
||
|
|
다운로드 요청을 생성합니다.
|
||
|
|
|
||
|
|
**Request Body:**
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"url": "영상 URL",
|
||
|
|
"title": "파일명 (선택)",
|
||
|
|
"options": {
|
||
|
|
"startTime": "00:00:00",
|
||
|
|
"endTime": "00:01:00",
|
||
|
|
"userAgent": "브라우저 UA",
|
||
|
|
"referer": "리퍼러 URL"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"id": "uuid-v4-format"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
### `GET /api/download/:id`
|
||
|
|
|
||
|
|
생성된 요청 ID로 영상을 다운로드합니다.
|
||
|
|
|
||
|
|
- 요청은 **5분 후 자동 만료**됩니다.
|
||
|
|
- `Content-Type: video/mp4`로 스트리밍됩니다.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 🚀 실행 방법
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# 의존성 설치
|
||
|
|
npm install
|
||
|
|
|
||
|
|
# 서버 실행
|
||
|
|
npm start
|
||
|
|
```
|
||
|
|
|
||
|
|
서버는 **포트 3000**에서 실행됩니다.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## ⚠️ 요구사항
|
||
|
|
|
||
|
|
- Node.js 18+
|
||
|
|
- FFmpeg 설치 필요 (`ffmpeg`, `ffprobe`)
|