dkitle - Subtitle Sync

无名氏（雲水）
2026-03-08T07:21:34Z

Sync video subtitles from YouTube/Bilibili to the dkitle desktop overlay app

dkitle

Sync video subtitles from your browser to an always-on-top desktop overlay window.

Supported Sites: YouTube, Bilibili

Supported Platforms: Windows, Linux (X11/Wayland), macOS

Screenshots

Main Window | Chrome Extension
|

YouTube Subtitles | Bilibili Video | Bilibili Subtitles
| |

Usage

1. Start the Desktop App

Download the latest release from GitHub Releases, or build from source (see below).

Once started, the app will:

Open a WebSocket server at ws://localhost:9877/ws

Show a manager window listing all subtitle sources

2. Install the Userscript

1. Install Tampermonkey or Violentmonkey in your browser

2. Click here to install dkitle.user.js

3. Confirm the installation in your userscript manager

Works across all browsers (Chrome, Firefox, Edge, Safari) with no store review required.

3. Use

1. Make sure dkitle-app is running

2. Open a YouTube or Bilibili video with subtitles enabled

3. Subtitles will automatically sync to the desktop overlay window

4. The subtitle window is freely resizable — font size adapts automatically to the window dimensions

Window Manager Configuration (Linux)

Window Identifiers

Window | app_id (Wayland) | Description
Manager window | org.eu.ywxt.dkitle | Main window, lists subtitle sources
Subtitle window | org.eu.ywxt.dkitle.subtitle | Always-on-top subtitle overlay

Wayland Tiling Window Managers

On Wayland tiling window managers (e.g., Sway, Hyprland), the subtitle window will by default only appear on the current workspace and may be tiled. Use the app_id org.eu.ywxt.dkitle.subtitle to add window rules for floating + sticky.

Sway (~/.config/sway/config):

for_window [app_id="org.eu.ywxt.dkitle.subtitle"] floating enable, sticky enable

Hyprland (~/.config/hypr/hyprland.conf):

windowrulev2 = float, class:^(org\.eu\.ywxt\.dkitle\.subtitle)$
windowrulev2 = pin, class:^(org\.eu\.ywxt\.dkitle\.subtitle)$

i3 (X11) (~/.config/i3/config):

for_window [class="org.eu.ywxt.dkitle.subtitle"] floating enable, sticky enable

For other window managers, refer to your WM's documentation and use app_id (Wayland) or WM_CLASS (X11) to match the subtitle window org.eu.ywxt.dkitle.subtitle, then set it to floating + sticky/pin.