Có gì mới
Bản mới nhất là 0.2.5. Đang dùng bản cài tay thì xem cách cập nhật.
0.2.5 12/10/2026
- Bản cài tay giờ báo khi có bản mới: bảng tiện ích hiện một dòng kèm đường tới hướng dẫn cập nhật. Không chen gì vào video đang xem.
- Từ bản này, cập nhật bản cài tay giữ nguyên số phút, gói đã mua và cài đặt. Riêng lần lên từ bản cũ hơn, bạn cần mang số phút sang bằng mã khôi phục (Tùy chỉnh, mục Chuyển sang máy khác).
- Phụ đề không còn hiện lệch với lời: câu về sau khi đã nói xong thì không hiện bù nữa (trước đây hiện thêm 1,5–3,5 giây ở các trang video ngắn). Xem lại đoạn đó thì câu hiện đúng chỗ.
0.2.4 12/10/2026
- Trang nhúng trình phát của một tên miền khác (video nằm trong khung nhúng) giờ bật được: bấm "Bật trên trang này" xin quyền cho cả trang lẫn trình phát của nó; trang đã bật từ trước thì bảng tiện ích hiện nút "Bật cho trình phát".
0.2.3 12/10/2026
- Lướt nhanh qua nhiều video không còn bị báo "Máy chủ đang đông": tiện ích chờ video được xem gần một giây rồi mới mở phiên, và máy chủ không còn giữ chỗ cho các phiên đã bỏ.
- Tải lại hoặc cập nhật tiện ích thì bản script cũ trong các tab đang mở tự dọn phụ đề của nó, không còn nằm lại trên video.
- Hết lỗi `min_extension` khi service worker đang khởi động lại.
0.2.2 12/10/2026
- Dòng phụ đề đã hiện thì không đổi chữ giữa chừng: bản dịch kỹ về sau chỉ dùng cho các câu chưa tới lượt và cho lần xem lại. Hết cảnh chữ nhấp nháy khi bản dịch nhanh bị thay ngay trên màn hình; bản dịch nhanh cũng không còn in nghiêng.
0.2.1 12/10/2026
- Trang phát video thẳng từ một file (phần lớn video trên Douyin) giờ có phụ đề: tiện ích đọc tiếng từ chính thẻ video đang phát, không tải thêm gì và không đụng vào việc phát của trang. Trước đây các video này báo "chưa đọc được".
- Lướt sang video khác trong một feed thì phiên cũ được thay ngay: không còn phụ đề của video trước hiện trên video sau, kể cả khi địa chỉ trang không đổi.
- Luồng ghép hình và tiếng (Douyin, nhiều trang nhỏ) chỉ gửi phần tiếng, gom thành lô; hết cảnh video khựng vì tiện ích gửi hàng chục mảnh mỗi giây.
- Trang nạp sẵn video kế tiếp không còn làm tiện ích đọc nhầm tiếng của video bên cạnh.
- Ở Douyin và các trang tự bật, tiện ích không còn tạm dừng video để chờ phụ đề; câu vừa lỡ được hiện bù một lúc ngắn.
- Thẻ video nhỏ xíu của trang (hiệu ứng trang trí) không còn bị chọn làm video chính.
0.2.0 12/10/2026
- Nhịp giữ kết nối do service worker gửi, không còn phụ thuộc bộ hẹn giờ của tab (tab ẩn bị bóp). Quay lại tab mà phiên đã hỏng thì tự nối lại; trang thay thẻ video thì mở phiên mới.
- Viên điều khiển trên video ẩn hẳn khi không rê chuột; vẫn hiện khi video dừng hoặc khi đang báo điều cần biết. Trang mở hộp thoại đè lên video thì phụ đề lùi đi.
- Mã khôi phục ở trang tùy chỉnh: lấy lại số phút sau khi cài lại hoặc đổi máy.
- Bản ghi audio trong trang chỉ giữ khi còn cần: trang đang tắt thì bỏ, đã nối xong thì chỉ giữ vài phút cuối.
- Giao diện làm lại theo trang thiết kế: bảng tiện ích có bốn trạng thái, mỗi trạng thái một nút chính; kiểu phụ đề, mã tặng và danh sách trang chuyển sang trang tùy chỉnh; trình đơn trên video gọn lại; bảng bên có nút "Tìm". Câu chữ gom về `src/ui/copy.ts`.
- Biểu tượng trên thanh công cụ xám khi chưa chạy, có màu khi đang chạy, kèm huy hiệu đỏ khi cần bạn xử lý.
- Chữ Be Vietnam Pro đi kèm trong gói; thông báo giấy phép bên thứ ba ở `THIRD-PARTY-NOTICES.txt`.
- Máy chủ bận thì tự thử lại; chỉ coi là đã hồi phục sau 30 giây chạy yên.
- Phụ đề có sẵn chỉ được dùng khi đã nạp gần hết video; chưa đủ thì nghe audio như thường.
- Không gọi máy chủ trước khi bạn đồng ý ở trang chào.
- Build được cho Edge và Firefox (140 trở lên) từ cùng mã nguồn. Bản Firefox dùng thanh bên của trình duyệt cho bản chép lời và khai loại dữ liệu gửi đi trong manifest. Chưa chạy thử trên hai trình duyệt này.
- Trang nào thẻ video có sẵn phụ đề (kể cả phụ đề do trình phát của trang nạp vào) thì dịch thẳng từ đó, không cần nghe.
- Nhận cấu hình từ máy chủ: tắt nóng một trang đang lỗi, tiếng nguồn mặc định của trang, thông báo ngắn, phiên bản tối thiểu.
- Trang người dùng tự bật: chạy được cả khi trình phát nằm trong iframe.
- Máy chủ đủ người thì xếp hàng: phụ đề báo còn bao nhiêu người phía trước, tiện ích tự hỏi lại và tới lượt là chạy.
- Lần đầu cài, Tolkora mở một trang nói rõ nó gửi gì lên máy chủ; chưa bấm đồng ý thì không chạy trên trang nào.
- Bật theo từng trang: ngoài Bilibili, YouTube, Douyin có sẵn, trang khác bấm "Bật trên trang này" trong bảng tiện ích; trình duyệt chỉ hỏi quyền cho đúng trang đó. Trang nào cũng tắt được bằng công tắc.
- Viên điều khiển trên video: đổi Vietsub hoặc Song ngữ, cỡ chữ, giữ video chờ phụ đề, xem lại câu vừa rồi, mở bản chép lời, tắt trên trang này. Nó mờ đi sau 2 giây không rê chuột.
- Song ngữ: lời gốc hiện nhỏ hơn phía trên bản dịch.
- Bản chép lời ở bảng bên: câu đang phát được tô nổi, bấm một câu để tua tới, tìm không cần gõ dấu.
- Bảng tiện ích mới: trạng thái của trang đang mở, công tắc bật tắt, chế độ, số phút còn lại, ô nhập mã.
- Phụ đề rộng tối đa 70% khung hình trên video ngang; thông báo ngắn (hết phút, mất kết nối) hiện ở chỗ phụ đề rồi tự tắt.
- Kết nối tới máy chủ chuyển vào service worker; bỏ offscreen document và quyền `offscreen`. Mất kết nối thì tự mở lại phiên.
- Bản phát hành chỉ xin quyền `storage` và gọi `api.tolkora.com`; bỏ quyền mạng nội bộ và hai tên miền CDN. Bỏ đường tải cả file video.
- Tin chẩn đoán chỉ gửi ở bản phát triển.
- Xin vé ở mặt điều phối trước khi mở phiên: tiện ích tự nhận một định danh ẩn danh cho máy, rồi mỗi video xin một vé và địa chỉ máy chủ. Hết giờ video mới thì báo ngay thay vì nối rồi bị từ chối. Không phải nhập địa chỉ nào: tiện ích luôn hỏi `api.tolkora.com`.
- Popup mới: bỏ hai ô nhập địa chỉ máy chủ, thay bằng số phút còn lại hôm nay và giờ đã được tặng.
- Phút tính theo thời gian xem có phụ đề, video nào cũng như nhau; mỗi ngày 60 phút miễn phí, tuần đầu không giới hạn. Hết phút giữa chừng thì phiên dừng và báo. Địa chỉ cho người phát triển đặt bằng khóa `devControlUrl` và `devServerUrl` trong storage.
- Đổi tên thành Tolkora, có biểu tượng mới (hai dòng phụ đề trên nền hổ phách). Cần server bản Tolkora; cài đặt đã lưu (địa chỉ server, giữ video) vẫn giữ nguyên.
- Phụ đề không còn chồng lên nhau: cue mới chồng quá nửa lên cue cũ thì thay hẳn cue cũ (bản dịch kỹ chia ở mốc khác bản nháp từng để cue nháp nằm đè lên). Server cũng lấy mốc cue từ chỗ lời nói ngắt thay vì chia theo độ dài bản dịch.
- Bilibili: phụ đề tự động (`ai-zh`) không còn được đem dịch; nó chỉ góp từ vựng cho bộ nhận dạng, còn lời lấy từ audio. Phụ đề người làm vẫn dùng trực tiếp và được ưu tiên.
- Phát trực tiếp (Bilibili live): đoạn nhận dạng tối đa 4 giây, một lượt dịch nhanh, không cache; câu về muộn hiện ngay khi về thay vì bị bỏ. Không giữ video khi phát trực tiếp.
- Giữ video chờ phụ đề: khi đầu phát đi vào đoạn server chưa xử lý xong (lúc mở video, sau khi tua xa) thì video tạm dừng, có phụ đề thì phát tiếp; tối đa 6 giây. Tắt được trong popup.
- Phiên đã đóng không còn chạy tiếp phần khởi động dở (trang đổi URL ngay lúc mở từng tạo ra hai phiên cùng điều khiển một video).
- Bilibili: audio đọc từ buffer của player như YouTube; bỏ việc tự tải theo playurl. Bỏ quyền truy cập `bilivideo.com` và `akamaized.net`.
- Phụ đề xếp chữ theo bề rộng thật của khung video (tới 94%), tối đa 2 dòng; khung hẹp thì thu chữ thay vì xuống dòng thứ ba.
- Phần chặn MSE luôn gọi hàm gốc của player trước và nuốt lỗi của riêng nó, để không bao giờ làm đứng video; khúc player nạp hỏng (buffer đầy) không còn bị ghi lặp.
- YouTube: video lồng tiếng tự động (track tự động cho mọi thứ tiếng) đi thẳng đường audio.
- Tua trên YouTube và các trang chặn MSE không còn làm mất phụ đề của đoạn player đã nạp.
- YouTube: không còn mất phần đầu video. Tap ghi lại mọi khúc audio player đã nạp trước khi extension nối vào và phát lại đúng thứ tự.
- YouTube: phụ đề có sẵn lấy từ thân trả lời của chính request của player; chờ quảng cáo xong và chờ danh sách track; chọn track theo tiếng nói trong video.
- Video đứng hình để đệm không còn bị coi là tua.
- Adapter chung cho mọi loại trang Bilibili (bangumi, danh sách phát, live) và Douyin: chặn MSE, hoặc tải cả file khi thẻ video trỏ thẳng tới mp4.
- Overlay và popup hiện giờ build và nguồn audio đang dùng; `hello.client` kèm giờ build.
- YouTube: phụ đề lấy bằng cách bắt request `/api/timedtext` của chính player (tải thẳng bị rỗng vì thiếu token).
- YouTube: dùng phụ đề có sẵn (kể cả phụ đề tự động) đem dịch; video không có phụ đề thì chặn MSE của player để lấy audio cho ASR (ADR-0013), ngôn ngữ nguồn tự nhận diện.
- Chặn MSE: giữ và phát lại phần đầu luồng để lấy init khi nối vào muộn; ghép các khúc byte tùy ý thành Cluster WebM hoặc segment fMP4 trọn vẹn; bỏ audio quảng cáo.
- Content script tự khởi động khi URL chuyển sang trang video (SPA), không chỉ lúc nạp trang.
0.1.0 10/10/2026
- Phụ đề tiếng Việt cho VOD Bilibili: adapter `bvid`/`cid`, WBI, tải audio theo `sidx`, phụ đề có sẵn khi đã đăng nhập.
- Overlay popover ở top layer, giữ cue qua khoảng lặng ngắn, bỏ cue chồng sau khi tua.
- Offscreen document giữ WebSocket; popup đặt địa chỉ server và hiện tương thích giao thức.
- Gửi nền video (thể loại, UP chủ, mô tả) và phiên bản extension trong `hello`.