AniSync là Chrome Extension đơn giản giúp tự động đồng bộ tiến độ xem anime từ AnimeVietsub lên tài khoản AniList của bạn với giao diện và tính năng đơn giản.
- Tự động phát hiện: Nhận diện anime và episode đang xem
- Đồng bộ tức thời: Cập nhật tiến độ ngay khi hoàn thành episode
- Hoàn thành tự động: Tự động đánh dấu "Completed" khi xem hết anime
- Đồng bộ thủ công: Nút sync thủ công khi cần thiết
- OAuth2 Authentication: Đăng nhập an toàn với AniList
- Tự cấu hình: Người dùng tự nhập Client ID/Secret
- Không lưu trữ: Không thu thập dữ liệu cá nhân
- Mã nguồn mở: Transparent và có thể kiểm tra
- Cài đặt chi tiết: Bật/tắt từng tính năng
- Thông báo: Tùy chỉnh hiển thị notification
- Hoạt động công khai: Chọn chia sẻ hoạt động với cộng đồng
Note
Extension này không phát hành ở ChromeStore. Lưu ý.
-
Tải source code:
git clone https://github.com/Anichan-Projects/AniSync.git cd AniSyncHoặc Download zip và giải nén
-
Mở Chrome Extensions:
- Vào
chrome://extensions/ - Bật "Developer mode"
- Chọn "Load unpacked" → chọn thư mục AniSync
- Vào
-
Tạo AniList Application:
- Truy cập AniList Developer Settings
- Nhấn "Create New Client"
- Điền tên ứng dụng (ví dụ: "My AniSync Extension")
-
Cấu hình Redirect URL:
- Copy URL từ setup page của extension
- Format:
https://[extension-id].chromiumapp.org/ - Paste vào "Redirect URL" trên AniList
-
Lưu thông tin:
- Copy Client ID và Client Secret
- Paste vào form trong extension setup page
- Nhấn "Save Configuration"
-
Authentication:
- Nhấn icon AniSync trên toolbar
- Chọn "Connect to AniList"
- Đăng nhập và cấp quyền
-
Bắt đầu xem anime:
- Extension tự động phát hiện và đồng bộ
AniSync/
├── manifest.json # Extension manifest
├── background.js # Service worker & API logic
├── content.js # Content script
├── popup.html # Main popup interface
├── popup.js # Popup functionality
├── setup.html # Initial setup page
├── setup.js # Setup page logic
├── icons/ # Extension icons
│ └── iconX.png
└── README.md # This file
- Title Detection: Ưu tiên tên tiếng Anh, fallback tên tiếng Việt
- Episode Parsing: Tự động lấy số episode từ URL và page content
- Smart Matching: So sánh với database AniList để tìm anime chính xác
- Video Monitoring: Theo dõi video player events
- Progress Calculation: Tính toán % xem và thời gian
- API Integration: Gọi AniList GraphQL API để cập nhật
- Status Management: Tự động chuyển WATCHING → COMPLETED
query SearchAnime($search: String) {
Media(search: $search, type: ANIME) {
id
title {
romaji
english
native
}
episodes
status
coverImage {
large
}
}
}mutation UpdateProgress($mediaId: Int, $progress: Int, $status: MediaListStatus, $private: Boolean) {
SaveMediaListEntry(mediaId: $mediaId, progress: $progress, status: $status, private: $private) {
id
progress
status
media {
title {
romaji
}
}
}
}query GetCurrentUser {
Viewer {
id
name
avatar {
large
}
}
}-
"Could not establish connection"
- Kiểm tra extension đã load đúng chưa
- Restart browser nếu cần
-
"Authentication failed"
- Xác minh Client ID/Secret đúng
- Kiểm tra Redirect URL khớp chính xác
-
"Anime not found"
- Thử sync thủ công
- Kiểm tra tên anime trên AniList
Mở DevTools Console để xem logs chi tiết:
// Logs từ content script
console.log('Starting anime detection...')
console.log('Found anime:', animeTitle)
// Logs từ background script
console.log('API Response:', response)Team hoan nghênh mọi đóng góp, cứ pull đi.
- JavaScript ES6+
- JSDoc comments cho functions
- Consistent naming conventions
MIT License - xem LICENSE để biết thêm chi tiết.
- AniList: API và database anime
Note
Vì đa số là vibe code nên comment code chưa chuẩn, mọi người thông cảm.
Warning
Extension này được tạo ra để phục vụ cộng đồng miễn phí, nếu thấy ai đó bán extension này, liên hệ với chúng tôi tại Discord.