# dsora-gen

Công cụ tự động tạo video Sora theo batch với nhiều Chrome profile, hỗ trợ thông báo Telegram và theo dõi tiến trình.

---

## Yêu cầu

- Python **3.11+**
- Google Chrome đã cài trên máy
- Tài khoản [Sora](https://sora.com) đã đăng ký

---

## Cài đặt

```bash
pip install dsora-gen
```

> Lần đầu chạy bất kỳ lệnh `dsg` nào, tool sẽ tự động cài Playwright Chromium — bạn không cần làm thêm bước nào.

---

## Hướng dẫn sử dụng

### Bước 1 — Thiết lập

```bash
dsg setup
```

Tool sẽ hỏi lần lượt:

| Thông tin | Bắt buộc | Mô tả |
|---|---|---|
| Số lượng profile | ✅ | Mỗi profile tương ứng 1 tài khoản Sora |
| Tên alias cho từng profile | ❌ | Tên gợi nhớ, ví dụ: `datly030102` |
| Username dsora | ✅ | Username dùng để lấy danh sách sản phẩm từ API |
| Backend key | ✅ | Key xác thực để cập nhật trạng thái sản phẩm |
| Telegram Bot Token | ❌ | Nhận thông báo qua Telegram |
| Telegram Channel ID | ❌ | ID kênh/nhóm nhận thông báo |

Sau khi nhập xong, các cửa sổ Chrome sẽ tự mở. Bạn cần:

1. Đăng nhập Google trong mỗi cửa sổ
2. Truy cập [sora.com](https://sora.com) và đăng nhập
3. Vào **Settings** → đặt thời lượng **15 giây**, số lượng **3 videos**
4. Đóng Chrome khi hoàn tất — session sẽ được lưu lại tự động

---

### Bước 2 — Chạy tự động

```bash
dsg run
```

Tool sẽ:

- Lấy danh sách sản phẩm từ API (`GET /products/pending`)
- Phân chia sản phẩm theo profile (tối đa **5 sản phẩm / profile**)
- Lần lượt mở từng Chrome profile, điền prompt, upload ảnh và tạo video
- Gọi API cập nhật trạng thái sau mỗi sản phẩm hoàn thành (`PATCH /products/:id/done`)
- Gửi thông báo Telegram sau mỗi sản phẩm, mỗi profile và khi kết thúc
- Chờ **10 phút** giữa các sản phẩm để Sora hoàn tất sinh video
- Tự đóng Chrome khi profile xử lý xong, mở profile tiếp theo

---

### Đăng nhập lại một profile

Dùng khi profile bị đăng xuất:

```bash
dsg setup --retry
```

Chọn profile cần đăng nhập lại từ danh sách hiện ra.

---

### Mở Chrome cho một profile cụ thể

```bash
dsg open <alias>

# Ví dụ:
dsg open datly030102
```

---

### Xem danh sách lệnh

```bash
dsg help
dsg --help
```

---

## Dữ liệu lưu trữ

Toàn bộ dữ liệu người dùng lưu tại `~/.sora-tool/` — **không** nằm trong thư mục cài đặt:

| Đường dẫn | Nội dung |
|---|---|
| `~/.sora-tool/settings.json` | Cấu hình: username, backend key, telegram, profiles |
| `~/.sora-tool/run_log.json` | Lịch sử chạy từng profile theo ngày |
| `~/.sora-tool/profiles/profile_N/` | Chrome session & cookies (đừng xóa) |

---

## Gỡ lỗi thường gặp

**Chrome không khởi động được**
> Đảm bảo Google Chrome đã được cài tại đường dẫn mặc định. macOS: `/Applications/Google Chrome.app`

**Không tìm thấy nút tạo video**
> Profile có thể đã bị đăng xuất. Chạy `dsg setup --retry` để đăng nhập lại.

**API trả về lỗi 401**
> Backend key không hợp lệ. Chạy `dsg setup` và nhập lại backend key.
