Plex Subtitle Service: Tự tìm sub, sync lệch và dịch bằng AI
Plex Subtitle Service nay hỗ trợ nhiều nguồn subtitle như Subsource, OpenSubtitles, SubDL và dịch AI có ngữ cảnh phim/nhân vật để xưng hô tự nhiên hơn.
Nếu bạn dùng Plex thường xuyên, chắc hẳn đã từng gặp cảnh phim mới có nhưng chưa có subtitle phù hợp, hoặc subtitle bị lệch vài giây làm trải nghiệm xem tụt hẳn. plex-sub-downloader được sinh ra để xử lý đúng bài toán đó theo cách tự động hóa gần như toàn bộ.

Cập nhật mới: nhiều nguồn sub hơn, dịch AI có ngữ cảnh hơn
Phiên bản mới không còn phụ thuộc vào một nguồn subtitle duy nhất. Service có thể tìm qua nhiều provider đã cấu hình, so sánh candidate theo metadata và chất lượng bản phát hành, rồi mới chọn bản phù hợp để upload vào Plex.
- Hỗ trợ thêm các nguồn subtitle miễn phí/chất lượng như OpenSubtitles và SubDL bên cạnh Subsource.
- Có endpoint kiểm tra provider để biết nguồn nào đang bật, nguồn nào bị bỏ qua vì thiếu credential.
- Khi nhiều nguồn cùng trả kết quả, service ưu tiên bản khớp phim/tập, season/episode, release name và filename video thay vì lấy đại kết quả đầu tiên.
Phần dịch AI cũng được nâng cấp theo hướng hiểu nội dung hơn. Trước khi dịch hàng loạt, service có thể đọc metadata phim/tập, trích xuất hồ sơ nhân vật và glossary, rồi gửi thêm ngữ cảnh hội thoại lân cận vào từng batch dịch. Nhờ vậy bản dịch giữ cách xưng hô, đại từ nhân xưng và tên riêng nhất quán hơn, tránh cảm giác dịch thô kiểu máy dịch từng câu rời rạc.
Những tính năng chính đáng giá
1) Tự tìm và tải subtitle
- Ứng dụng nhận webhook từ Plex hoặc Tautulli khi có media mới hoặc khi bắt đầu phát.
- Tự động tìm subtitle qua nhiều provider đã cấu hình như Subsource, OpenSubtitles và SubDL, thay vì bó hẹp trong một nguồn duy nhất.
- Ưu tiên IMDb ID từ Plex, sau đó mới fallback theo title/year/season để giảm nhầm phim hoặc nhầm tập.
- Xếp hạng candidate theo season/episode, bản phát hành và filename video trước khi upload trực tiếp vào Plex.
2) Đồng bộ subtitle bị lệch (sync timing)
- Khi subtitle lệch so với bản encode hiện tại, ứng dụng có thể tự căn lại timing.
- Giảm việc phải chỉnh delay thủ công trên TV/điện thoại/máy tính bảng.
- Rất hữu ích với các bản sub cộng đồng có độ lệch khác nhau giữa các release.

3) Dịch subtitle bằng AI
- Dịch subtitle từ bất kỳ ngôn ngữ nguồn nào sang ngôn ngữ đích bạn mong muốn, không chỉ giới hạn EN → VI.
- Trước khi dịch, AI có thể đọc metadata phim/tập, đoán danh sách nhân vật, glossary và bối cảnh hội thoại.
- Mỗi batch dịch được gửi kèm cửa sổ ngữ cảnh trước/sau để giữ mạch nói chuyện, cách xưng hô và đại từ nhân xưng tự nhiên hơn.
- Có bước rà soát nhất quán sau dịch để hạn chế lỗi tên riêng, quan hệ nhân vật hoặc cách gọi thay đổi giữa các đoạn.
- Vẫn có chế độ yêu cầu duyệt trước khi dịch để kiểm soát chi phí API.

Ngoài ra, ứng dụng còn có Web UI để cấu hình nhanh, theo dõi log real-time và quản lý quy trình xử lý subtitle tập trung.
Hướng dẫn cài đặt
Yêu cầu
- Docker và Docker Compose
- Plex Media Server (đã bật Webhooks)
- Ít nhất một subtitle provider API key: Subsource, OpenSubtitles hoặc SubDL
Docker Compose mẫu
services:
plex-subtitle-service:
image: ghcr.io/leolionart/plex-sub-downloader:latest
ports:
- "8000:8000"
volumes:
- ./data:/app/data
environment:
- PLEX_URL=http://192.168.1.x:32400
- PLEX_TOKEN=your_plex_token
- SUBSOURCE_API_KEY=your_subsource_key
- OPENSUBTITLES_API_KEY=your_opensubtitles_key
- SUBDL_API_KEY=your_subdl_key
restart: unless-stopped
docker compose up -d
Thiết lập ban đầu
- Mở
http://your-server:8000/setup - Nhập Plex URL, Plex Token và ít nhất một subtitle provider API key
- (Tuỳ chọn) Nhập OpenAI API Key để bật AI sync/translate có ngữ cảnh
- Lưu cấu hình và kiểm tra kết nối
Webhook
- Plex: Settings → Webhooks →
http://your-server:8000/webhook - Tautulli: Notification Agents → Webhook cùng endpoint
Hướng dẫn sử dụng
Luồng tự động hằng ngày
- Thêm media mới vào Plex.
- Plex/Tautulli gửi webhook đến service.
- Service tìm qua các provider đã bật, lọc chất lượng/candidate rồi upload bản phù hợp vào Plex.
- Nếu bật AI sync/translate, subtitle sẽ được đồng bộ timing và dịch theo metadata/ngữ cảnh phim.
Luồng thủ công khi cần can thiệp
- Vào
/syncđể chạy sync/translate cho media cụ thể. - Vào
/translationđể duyệt yêu cầu dịch trước khi thực thi. - Vào
/logsđể theo dõi log real-time khi cần debug.
Kết luận
plex-sub-downloader là một giải pháp rất thực dụng cho home media stack: giảm thao tác thủ công, tăng chất lượng trải nghiệm xem và mở rộng tốt khi thư viện phim lớn dần.
Nếu bạn muốn Plex “tự lo phần subtitle” một cách thông minh hơn, đây là dự án rất đáng thử.