Skip to content

PhuVinhAI/ZiaSub

Repository files navigation

ZiaSub Logo

ZiaSub

Xem video YouTube với phụ đề dịch tự động bằng Gemini AI

Tính năngCài đặtSử dụngCấu trúcĐóng góp

Platform Expo React Native TypeScript License


📖 Giới thiệu

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

✨ Tính năng

🎬 Xem video với phụ đề

  • 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ụ đề

🤖 Dịch tự động bằng AI

  • 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ể

🔑 Quản lý API Keys

  • 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

📋 Hàng đợi dịch

  • 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

💬 Chat với AI

  • 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

🔊 Text-to-Speech

  • Đọc phụ đề thành tiếng
  • Tự động điều chỉnh tốc độ đọc
  • Giảm âm lượng video khi đọc (ducking)

🔔 Thông báo

  • 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)

💾 Backup & Restore

  • 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)

🚀 Cài đặt

Yêu cầu

  • Node.js 18+ hoặc Bun
  • Android Studio (cho Android) hoặc Xcode (cho iOS)

Clone repository

git clone https://github.com/TomiWixoss/ZiaSub.git
cd ZiaSub

Cài đặt dependencies

# Sử dụng Bun (khuyến nghị)
bun install

# Hoặc npm
npm install

Chạy Mobile App

# Development với Expo
bun mobile:start

# Chạy trên Android
bun mobile:android

# Chạy trên iOS
bun mobile ios

Build Extension

# Development mode (watch)
bun extension:dev

# Production build
bun extension:build

Build Shared Package

bun shared:build

📖 Sử dụng

Lấy Gemini API Key

  1. Truy cập Google AI Studio
  2. Tạo API key mới
  3. Thêm vào ứng dụng trong Cài đặt > API Keys

Dịch phụ đề

  1. Mở video YouTube trong ứng dụng
  2. Nhấn nút Phụ đề (floating button)
  3. Chọn tab Dịch tự động
  4. Chọn preset hoặc custom prompt
  5. Nhấn Dịch mới và đợi hoàn tất

Thêm video vào hàng đợi

  1. Trên trang chủ YouTube, nhấn nút + trên thumbnail
  2. Video được thêm vào hàng đợi
  3. Mở Hàng đợi để quản lý và dịch hàng loạt

🏗️ Cấu trúc dự án

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

🛠️ Tech Stack

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)

🤝 Đóng góp

  1. Fork repository
  2. Tạo branch mới (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Mở Pull Request

Báo lỗi

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

📄 Giấy phép

MIT License - Xem file LICENSE

👨‍💻 Tác giả

TomiWixoss - @TomiWixoss


Made with ❤️ by TomiWixoss

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages