Xem video YouTube với phụ đề dịch tự động bằng Gemini AI
Tính năng • Cài đặt • Sử dụng • Cấu trúc • Đóng góp
ZiaSub là bộ công cụ mã nguồn mở giúp xem video YouTube với phụ đề được dịch tự động bằng Google Gemini AI. Dự án bao gồm:
- Mobile App (React Native/Expo) - Ứng dụng di động cho Android/iOS
- Browser Extension (Chrome) - Extension dịch phụ đề trực tiếp trên YouTube
- Shared Package - Thư viện dùng chung giữa các platform
- Trình duyệt YouTube tích hợp với giao diện tối ưu
- Hiển thị phụ đề overlay trực tiếp trên video
- Hỗ trợ fullscreen, xoay màn hình, YouTube Shorts
- Tùy chỉnh font size, style, vị trí phụ đề
- Google Gemini AI với nhiều model (Pro, Flash, Flash Lite)
- 5 preset prompt chuyên biệt: Music Video, Visual Novel, Anime, Gaming, Vlog/Tutorial
- Chia video dài thành nhiều batch để dịch song song
- Chế độ streaming - xem ngay khi đang dịch
- Tiếp tục dịch dở dang (resume translation)
- Dịch lại theo batch cụ thể
- Hỗ trợ nhiều Gemini API keys
- Tự động xoay vòng key khi gặp rate limit
- Retry thông minh khi có lỗi
- Thêm video vào hàng đợi từ thumbnail
- Dịch hàng loạt tự động với background service
- Theo dõi tiến độ realtime
- Dừng/tiếp tục dịch bất kỳ lúc nào
- Trò chuyện với AI về nội dung video
- Chọn time range cụ thể để hỏi
- Lưu lịch sử chat
- Đọc phụ đề thành tiếng
- Tự động điều chỉnh tốc độ đọc
- Giảm âm lượng video khi đọc (ducking)
- Push notification khi dịch xong
- Tùy chỉnh loại thông báo (completion, batch, errors)
- Lọc theo nguồn (queue vs direct)
- Sao lưu dữ liệu tự động khi app vào background
- Khôi phục từ file backup
- Hỗ trợ SAF (Storage Access Framework)
- Node.js 18+ hoặc Bun
- Android Studio (cho Android) hoặc Xcode (cho iOS)
git clone https://github.com/TomiWixoss/ZiaSub.git
cd ZiaSub# Sử dụng Bun (khuyến nghị)
bun install
# Hoặc npm
npm install# Development với Expo
bun mobile:start
# Chạy trên Android
bun mobile:android
# Chạy trên iOS
bun mobile ios# Development mode (watch)
bun extension:dev
# Production build
bun extension:buildbun shared:build- Truy cập Google AI Studio
- Tạo API key mới
- Thêm vào ứng dụng trong Cài đặt > API Keys
- Mở video YouTube trong ứng dụng
- Nhấn nút Phụ đề (floating button)
- Chọn tab Dịch tự động
- Chọn preset hoặc custom prompt
- Nhấn Dịch mới và đợi hoàn tất
- Trên trang chủ YouTube, nhấn nút + trên thumbnail
- Video được thêm vào hàng đợi
- Mở Hàng đợi để quản lý và dịch hàng loạt
ziasub-monorepo/
├── packages/
│ ├── mobile/ # React Native app (Expo)
│ │ ├── src/
│ │ │ ├── components/ # UI components
│ │ │ ├── services/ # Business logic
│ │ │ ├── hooks/ # Custom React hooks
│ │ │ ├── contexts/ # React contexts
│ │ │ ├── screens/ # Screen components
│ │ │ ├── i18n/ # Internationalization
│ │ │ └── utils/ # Utilities
│ │ └── assets/ # Icons, splash screen
│ │
│ ├── extension/ # Chrome extension
│ │ ├── src/
│ │ │ ├── background/ # Service worker
│ │ │ ├── content/ # Content scripts
│ │ │ ├── popup/ # Popup UI
│ │ │ └── options/ # Options page
│ │ └── public/ # Manifest, icons
│ │
│ └── shared/ # Shared code
│ └── src/
│ ├── types/ # TypeScript definitions
│ ├── utils/ # SRT parser, video utils
│ ├── constants/ # Default settings
│ └── i18n/ # Shared translations
│
├── package.json # Workspace root
└── bun.lock
| Category | Technology |
|---|---|
| Mobile | React Native 0.81, Expo SDK 54 |
| Extension | Chrome Manifest V3 |
| Language | TypeScript 5.9 |
| AI | Google Gemini (@google/genai) |
| UI | React Native Paper |
| i18n | i18next + react-i18next |
| Storage | AsyncStorage (200MB limit) |
| Package Manager | Bun (workspaces) |
- Fork repository
- Tạo branch mới (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Mở Pull Request
Tạo issue với:
- Mô tả lỗi chi tiết
- Các bước tái tạo
- Screenshots (nếu có)
- Thông tin thiết bị/phiên bản
MIT License - Xem file LICENSE
TomiWixoss - @TomiWixoss
Made with ❤️ by TomiWixoss