File size: 3,633 Bytes
b10e9c4 a7bb3b2 b10e9c4 a7bb3b2 b10e9c4 a7bb3b2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | # 🚀 Hướng dẫn Deploy lên Hugging Face Spaces
## Bước 1: Chuẩn bị Repository
Đã có sẵn: https://github.com/pedguedes090/ytdlp_web
## Bước 2: Tạo Hugging Face Space
1. Đi tới https://huggingface.co/new-space
2. Điền thông tin:
- **Space name**: `ytdlp-web` (hoặc tên bạn muốn)
- **License**: MIT
- **SDK**: Docker
- **Hardware**: CPU basic (miễn phí)
## Bước 3: Clone và Setup
```bash
git clone https://huggingface.co/spaces/[YOUR_USERNAME]/ytdlp-web
cd ytdlp-web
```
## Bước 4: Copy files từ GitHub repo
Copy tất cả files từ repository GitHub vào thư mục Hugging Face Space:
```
ytdlp-web/
├── Dockerfile # ✅ Đã tạo
├── README.md # Thay bằng README_HF.md
├── .spacesignore # ✅ Đã tạo
├── app.js # ✅ Đã cập nhật port 7860
├── demo.html # ✅ Đã cập nhật API_BASE
├── package.json
├── config.json
└── downloads/ # Sẽ tự tạo
```
## Bước 5: Cập nhật README.md
Đổi tên `README_HF.md` thành `README.md` để Hugging Face hiển thị metadata đúng.
## Bước 6: Push lên Hugging Face
```bash
git add .
git commit -m "Initial deploy to Hugging Face Spaces"
git push
```
## Bước 7: Kiểm tra Deploy
- Hugging Face sẽ tự động build Docker image
- Có thể mất 5-10 phút để build xong
- Truy cập URL của Space để kiểm tra
## 🔧 Cấu hình quan trọng
### Dockerfile highlights:
- Base image: `python:3.11-slim`
- Cài ffmpeg, nodejs, npm
- Install yt-dlp qua pip
- Port 7860 (mặc định của HF)
- Bind `0.0.0.0` để accessible
- **Fix permission**: Tạo user và set chmod 777 cho downloads/
- **Fallback storage**: Dùng temp directory nếu app dir không writable
### App.js changes:
- Port: `process.env.PORT || 7860`
- Listen: `app.listen(PORT, '0.0.0.0')`
- **Permission handling**: Auto fallback to temp directory
- **Format selection**: Tối ưu để tránh yt-dlp warnings
### Demo.html changes:
- API_BASE: `window.location.origin` (tự động)
## 🚨 Lưu ý
1. **Miễn phí**: HF Spaces có giới hạn CPU và memory
2. **Timeout**: Apps có thể sleep sau một thời gian không dùng
3. **Storage**: File sẽ mất khi app restart (đã có auto-cleanup)
4. **Public**: Space sẽ public trừ khi upgrade Pro
## 🎯 URL sau khi deploy
```
https://huggingface.co/spaces/[YOUR_USERNAME]/ytdlp-web
```
## 🛠️ Troubleshooting
- **Build failed**: Kiểm tra Dockerfile syntax
- **App không start**: Kiểm tra port 7860
- **API không hoạt động**: Kiểm tra CORS và API_BASE
- **No space left**: Bật auto-cleanup trong config.json
- **Permission denied**: App tự động fallback sang temp directory
- **yt-dlp warnings**: Đã tối ưu format selection
- **Facebook/Instagram links**: Một số platform có thể block download
## 🔄 Common Issues & Solutions
### "Permission denied" error:
```
ERROR: unable to open for writing: [Errno 13] Permission denied
```
**Solution**: App đã được cập nhật để tự động sử dụng temp directory
### "Command failed" với yt-dlp:
- Kiểm tra URL có hợp lệ không
- Một số platform có thể thay đổi API
- Thử quality khác (worst thay vì best)
### App sleep trên HF Spaces:
- Apps miễn phí sẽ sleep sau 1 giờ không dùng
- Truy cập lại để wake up
- Upgrade Pro để avoid sleeping
|