Fansub Subtitle Workflow Hub: Danmaku, ASS, SRT, WebVTT
A practical workflow guide for fansub and anime subtitle pipelines: convert Bilibili danmaku to ASS, swap between ASS/SRT/WebVTT, and re-sync timing for different frame rates.
Fansub workflows touch every subtitle format that exists. The source might be Bilibili danmaku XML, the working file is usually Aegisub ASS, the deliverable to streaming sites is SRT or WebVTT, and the video itself can shift between 23.976, 24, 25, and 29.97 fps along the way. Tools in this hub cover each of those handoffs without forcing you to install Aegisub or a desktop subtitle suite.
This guide is the workflow map. It walks through which tool handles which step, where format conversions lose information, and how to combine offset and FPS conversion when subs drift against a re-encoded video.
Start: turn danmaku into a styled subtitle file
If the source is a Bilibili XML danmaku export, the first job is converting it into a real subtitle format with collision avoidance. The danmaku XML format is bespoke and not rendered by any standard player. ASS is the right intermediate target because it supports the precise positioning and motion commands needed for scrolling comments. Run the conversion before any other editing.
Tools for this section
Swap ASS and SRT for different delivery targets
ASS holds full styling, but most upload targets — YouTube, podcast platforms, generic players — only accept SRT. Convert ASS to SRT for delivery while keeping the original .ass as the editable master. The reverse direction is also useful when a translator hands you an SRT and you need to add styling in Aegisub: convert SRT → ASS to get a real V4+ style block and Dialogue events to work with.
Tools for this section
Convert to WebVTT when embedding in HTML5 video
Browsers only read WebVTT inside <track> elements. If you are publishing the same fansub release as both a downloadable SRT and a streamable web preview, you need both files. Going from SRT to VTT mostly means swapping the comma decimals for periods and adding a WEBVTT header. Going the other way strips speaker tags and cue settings that SRT does not understand.
Tools for this section
Re-sync timing when the video frame rate changes
Subtitles authored against a 23.976 fps Blu-ray will drift later and later when played against a 25 fps PAL re-encode. A constant offset only fixes the first cue; you need to rescale every timecode by the FPS ratio. The timing shifter applies both a millisecond offset and an FPS conversion in one pass to avoid double-rounding error. Common presets like 23.976 ↔ 25 and 29.97 ↔ 23.976 cover the most frequent fansub re-sync jobs.
Tools for this section
Recommended order: danmaku → ASS → timing → final format
Work in the most expressive format possible, then narrow down at the end. The recommended order is: convert danmaku to ASS first, do all styling and editing in ASS, fix any timing drift while still in ASS (no precision loss), and only convert to SRT or VTT at the very end when you know the final target. Reverse the order and you lose styling information you cannot recover.
Danmaku(XML) to ASS Converter
High-performance XML to ASS subtitle converter. Transform Bilibili/AcFun danmaku into high-quality, collision-free subtitles for Potplayer, IINA, VLC, and Movist.
ASS to SRT Subtitle Converter
Convert between Advanced SubStation Alpha (.ass) and SubRip (.srt) subtitle files entirely in your browser. Strips styling tags, preserves timing, handles multi-line cues.
Subtitle Timing Shifter & FPS Converter
Offset and re-scale SRT, ASS, or WebVTT subtitle timing. Combine a millisecond shift with an FPS conversion (23.976 ↔ 25 etc.) to re-sync subs to a different video source.
WebVTT to SRT Converter
Bidirectional WebVTT (.vtt) and SubRip (.srt) subtitle converter. Strips VTT cue settings, speaker tags, and inline styling. Runs entirely in your browser.