Tu dong tao video Sora theo batch voi nhieu Chrome profiles
Project description
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+ — kiểm tra bằng
python3 --version - Google Chrome đã được cài đặt trên máy
- Tài khoản Sora đã đăng ký và được cấp quyền
Cài đặt
Khuyến khích — dùng pipx (macOS)
pipx cài CLI tool vào môi trường riêng biệt, tránh xung đột với các package Python khác trên hệ thống. Đây là cách được khuyến khích nhất trên macOS.
# Cài pipx nếu chưa có
brew install pipx
pipx ensurepath
# Cài dsora-gen
pipx install dsora-gen
Sau đó dùng lệnh dsg bình thường ở bất kỳ đâu trong terminal.
Cài bằng pip (thay thế)
macOS / Linux:
pip3 install dsora-gen
Windows:
pip install dsora-gen
Nếu lệnh
dsgkhông nhận sau khi cài bằngpip3, thêm dòng sau vào~/.zshrc:export PATH="$HOME/Library/Python/3.x/bin:$PATH"Thay
3.xbằng phiên bản Python bạn đang dùng (ví dụ3.11), sau đó chạysource ~/.zshrc.
Lần đầu chạy lệnh
dsgbất kỳ, tool sẽ tự động cài Playwright Chromium — bạn không cần thêm bước nào.
Hướng dẫn sử dụng
| Lệnh | Mô tả |
|---|---|
dsg setup |
Thiết lập profiles, thông tin API, Telegram; mở Chrome để đăng nhập |
dsg setup --retry |
Đăng nhập lại profile (khi bị đăng xuất) |
dsg check |
Kiểm tra setup hiện tại (config, profiles, sẵn sàng chạy) |
dsg run |
Chạy tự động tạo video (đồng bộ API, phân bổ theo profiles) |
dsg open <alias> |
Mở Chrome cho một profile |
dsg update |
Cập nhật dsora-gen lên phiên bản mới nhất |
dsg help |
Xem danh sách lệnh |
Bước 1 — Thiết lập ban đầu
dsg setup
Tool sẽ hỏi lần lượt các thông tin sau:
| Thông tin | Bắt buộc | Mô tả |
|---|---|---|
| Số lượng profile | ✅ | Mỗi profile = 1 tài khoản Sora, xử lý tối đa 5 sản phẩm |
| Tên alias cho từng profile | ❌ | Tên gợi nhớ, ví dụ: tai_khoan_1 |
| Username dsora | ✅ | 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 tự động qua Telegram |
| Telegram Channel ID | ❌ | ID kênh hoặc nhóm nhận thông báo |
| Số phút chờ giữa mỗi sản phẩm | ❌ | Mặc định 10 phút; có retry nếu đang có 3 jobs chạy |
Sau khi nhập xong, Chrome sẽ tự mở từng cửa sổ. Bạn cần thao tác thủ công trong mỗi cửa sổ:
- Đăng nhập tài khoản Google
- Truy cập sora.com và đăng nhập
- Đóng Chrome khi hoàn tất — session đăng nhập sẽ được lưu lại tự động
Bước 2 — Kiểm tra setup (tùy chọn)
Trước khi chạy, có thể kiểm tra cấu hình và trạng thái profiles:
dsg check
Lệnh này hiển thị: file cấu hình, username, Telegram, chế độ chạy, danh sách profile (và thư mục đã tạo hay chưa), và có sẵn sàng chạy dsg run hay không.
Bước 3 — Chạy tự động
dsg run
Mỗi lần chạy, tool sẽ:
- Đồng bộ với API — gọi
GET /products/pendingđể lấy danh sách sản phẩm chưa xử lý (luôn dùng API làm nguồn đúng, không dùng session cũ) - Phân bổ sản phẩm — chia đều cho tất cả profile (round-robin), mỗi profile tối đa 5 sản phẩm
- Với mỗi profile (chạy song song tùy cấu hình):
- Mở Chrome với session đã đăng nhập
- Lần lượt xử lý từng sản phẩm: điền prompt → upload ảnh → chọn cài đặt → tạo video
- Sau mỗi sản phẩm: gọi API cập nhật trạng thái, gửi thông báo Telegram, chờ N phút (cấu hình lúc setup, mặc định 10 phút)
- Nếu profile đạt giới hạn tạo video trong ngày (tooltip "You're out of video gens"): gửi thông báo, đóng Chrome profile đó, các profile khác vẫn tiếp tục chạy
- Sau khi xử lý xong batch: đóng Chrome, gửi thông báo tổng kết profile
- Hiển thị tổng kết toàn bộ khi hoàn tất
Đăng nhập lại một profile
Dùng khi một profile bị đăng xuất khỏi Google hoặc Sora:
dsg setup --retry
Tool sẽ hiển thị danh sách profile hiện có, nhập số thứ tự để mở Chrome đăng nhập lại.
Mở Chrome cho một profile cụ thể
dsg open <alias>
# Ví dụ:
dsg open tai_khoan_1
Cập nhật lên phiên bản mới nhất
dsg update
Tool tự động nhận biết bạn cài qua pipx hay pip và chạy lệnh nâng cấp phù hợp.
Xem danh sách lệnh
dsg help
dsg --help
Dữ liệu lưu trữ
Toàn bộ dữ liệu lưu tại ~/.sora-tool/ — không nằm trong thư mục cài đặt Python:
| Đường dẫn | Nội dung |
|---|---|
~/.sora-tool/settings.json |
Cấu hình: username, backend key, telegram, danh sách profiles |
~/.sora-tool/session.json |
Session hiện tại (batch đang chạy; mỗi lần dsg run được tạo lại từ API) |
~/.sora-tool/run_log.json |
Lịch sử chạy từng profile theo ngày |
~/.sora-tool/profiles/profile_1/ |
Chrome session & cookies của profile 1 |
~/.sora-tool/profiles/profile_N/ |
Chrome session & cookies của profile N |
⚠️ Không xóa thư mục
profiles/— đây là nơi lưu session đăng nhập. Nếu xóa, bạn phải đăng nhập lại toàn bộ.
Gỡ lỗi thường gặp
dsg: command not found
Thêm pip bin vào PATH. Trên macOS: thêm dòng sau vào
~/.zshrcrồi chạysource ~/.zshrc:export PATH="$HOME/Library/Python/3.x/bin:$PATH"
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/Contents/MacOS/Google Chrome- Linux:
/usr/bin/google-chrome- Windows:
C:\Program Files\Google\Chrome\Application\chrome.exe
Không tìm thấy nút tạo video / bị timeout
Profile có thể đã bị đăng xuất. Chạy
dsg setup --retryđể đăng nhập lại profile đó.
API trả về lỗi 401
Backend key không hợp lệ hoặc đã hết hạn. Chạy
dsg setupvà nhập lại backend key mới.
Lỗi Only 3 jobs can run at a time
Tool sẽ tự động chờ 5 phút rồi thử lại — không cần làm gì thêm.
Thông báo "You're out of video gens" (đạt tối đa video trong ngày)
Tool sẽ gửi thông báo (Telegram + console), đóng Chrome profile đó và tiếp tục chạy các profile khác. Sản phẩm chưa xử lý của profile bị limit có thể được phân bổ lại ở lần chạy sau (khi gọi API đồng bộ).
Phát hành phiên bản mới (dành cho developer)
# Bump version trong pyproject.toml và __init__.py, sau đó:
rm -rf dist/
python3 -m build
twine upload dist/*
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dsora_gen-0.2.1.tar.gz.
File metadata
- Download URL: dsora_gen-0.2.1.tar.gz
- Upload date:
- Size: 46.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
274810dcdd1c791b1c34d4a111a28c74026ceead14290a3f8374ccda769f470a
|
|
| MD5 |
2fb0921d220bdca5f931bac524992fb8
|
|
| BLAKE2b-256 |
d4f7a00fcaa56fd652db8a0fd33dfa16e9444dd487a8d92ad19966f0e01174c3
|
File details
Details for the file dsora_gen-0.2.1-py3-none-any.whl.
File metadata
- Download URL: dsora_gen-0.2.1-py3-none-any.whl
- Upload date:
- Size: 44.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea3f953c5dfdc420f2a6b9c1eef53d47230f0b94800aaa431a72f81f5ee781fc
|
|
| MD5 |
130562d5a1cc64dd5ce3b61068101b18
|
|
| BLAKE2b-256 |
90dd1c31d3e5031d4a6b2188ff9a7ac3fd23e7df165ee0376e64ba98cd775280
|