Skip to content

LRC to VTT Subtitle Converter

Convert your LRC lyrics to WebVTT subtitle format.

Drag & drop your LRC file here

or click to browse

Supports .lrc files up to 50 MB

Core Engine Architecture

About LRC to VTT

Turn synced lyrics into web-compatible subtitles. This tool reads each LRC [MM:SS.xx] timestamp tag and generates a WebVTT cue with a start time and an estimated end time, so lyrics created for music players can be used with HTML5 video, YouTube, Vimeo, and JavaScript players like Video.js and JW Player.

Payload & Syntax Inspector

LRC to VTT Code Syntax & Structure Inspection

Side-by-side code inspection illustrating header definitions, timestamp syntax, and cue payload formatting

Millisecond Sync
input.lrc
LRC SOURCE
[00:01.00]Hello, world!
[00:04.50]This is a subtitle file.
[00:08.50]Converted locally!
output.vtt
VTT RESULT
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
Specification Sheet

LRC vs VTT Technical Specifications

Standard Compliant
Input Format

LRC

LRC

LRC (.lrc) is a synchronized lyrics format for music players. Each line begins with a [MM:SS.xx] timestamp tag followed by the lyric text. It may include optional metadata tags like [ar:], [ti:], [al:], and [by:] for artist, title, album, and creator information.

Output Format

VTT

VTT

WebVTT (.vtt) is the W3C standard format for web video subtitles, used by HTML5 <track>, YouTube, Vimeo, and most streaming platforms. Cues use HH:MM:SS.mmm --> HH:MM:SS.mmm timestamps and begin with a WEBVTT header line.

Format Differences

LRC uses inline timestamps per line: [01:30.50]Lyric text. VTT uses a timestamp line with arrow separator: 00:01:30.500 --> 00:01:35.000 followed by text.
LRC timestamps are in [mm:ss.xx] format. VTT timestamps are in HH:MM:SS.mmm format with dot separators, including hours.
LRC has no end timestamps. VTT requires both start and end times with an arrow separator. The converter calculates end times automatically.
LRC has no mandatory header. VTT requires a WEBVTT header as the first line of the file.
LRC supports metadata tags ([ti:], [ar:], [al:]). VTT uses NOTE blocks for comments but has no song metadata system.
LRC has no positioning support. VTT supports cue settings like align:center, position:50%, line:center for on-screen text placement.

Conversion Troubleshooting & Gotchas

Practical solutions for player compatibility, character encoding, and timing synchronization

4 Common Gotchas
GOTCHA #1

How to display synchronized lyrics on an HTML5 `<audio>` player?

HTML5 `<audio>` supports child `<track kind='subtitles' srclang='en' src='lyrics.vtt'>` tags identically to `<video>`. You can use JavaScript (`audio.textTracks[0].oncuechange`) or modern web players like Plyr/Video.js to display synchronized karaoke text under your music player.

GOTCHA #2

Why does the browser console give a CORS error when loading the converted .vtt?

Web browsers enforce the Same-Origin Policy strictly on subtitle tracks. If your VTT file is stored on a CDN, S3, or third-party storage, the server must provide an `Access-Control-Allow-Origin: *` HTTP header, or the browser will block the lyrics.

GOTCHA #3

Long audio tracks (> 60 minutes) causing incorrect timestamps in WebVTT

LRC files express time above an hour as cumulative minutes (e.g. `[75:20.00]`), whereas WebVTT strictly requires hours and minutes (`01:15:20.000`). AllSubConverter correctly decomposes cumulative minutes into standard two-digit hours.

GOTCHA #4

Styling the converted lyrics in the browser using CSS

Unlike LRC which has no visual styling, WebVTT tracks can be customized via CSS pseudo-elements. For example: `video::cue, audio::cue { font-family: sans-serif; font-size: 1.2rem; color: #fff; background: rgba(0,0,0,0.7); }`.

Features

Automatically calculates end timestamps for each cue based on next line start time
Converts LRC [mm:ss.xx] timestamps to VTT dot-separated format (00:01:30.500 --> 00:01:35.000)
Generates valid VTT output with mandatory WEBVTT header
Writes plain cues that use your web player's default subtitle placement
Strips LRC metadata tags ([ti:], [ar:], [al:]) during conversion
Preserves all lyric text exactly as written in the source LRC
Reads repeated line-level timestamp tags and creates a cue for each tagged lyric
Browser-based processing, no file uploads, files stay on your device

Why Convert?

HTML5 web video players require VTT format (not LRC) for subtitle display via the <track> element in browsers.
YouTube and modern web platforms accept VTT subtitle uploads but do not accept LRC lyrics files.
VTT can carry more positioning and styling options than SRT when you customize the converted file for web video.
Web-based karaoke and lyric video platforms use VTT for subtitle rendering, requiring LRC-to-VTT conversion for audio lyric sources.
LRC files lack end timestamps, and converting to VTT allows setting cue duration based on next-line timing for proper web video display.
VTT supports cue settings (align, position, line) for later customization, while LRC has no positioning capabilities.
Streaming services that embed subtitles in web players use VTT, never LRC, for synchronized text display.
Scenarios

Common Use Cases

Web-Based Lyric Videos

Convert LRC synced lyrics to VTT for HTML5 web video players, enabling subtitle display in browser-based lyric and karaoke videos.

YouTube Lyric Videos

YouTube accepts VTT subtitle uploads. Convert LRC lyrics to VTT for lyric video uploads to YouTube with proper subtitle tracks.

Web Karaoke Platforms

Web-based karaoke platforms render subtitles using VTT. Convert LRC lyric timing to VTT for integration with online karaoke services.

Educational Web Video

Convert LRC files from language learning audio to VTT for web-based educational video versions with subtitle tracks.

Web Player Compatibility

Convert LRC lyrics to the browser-native VTT format for reliable display in HTML5 and JavaScript video players.

Format Ecosystem

Related Formats

How It Works

  1. 1

    Upload or drag your .lrc file into the converter.

  2. 2

    The parser reads each [mm:ss.xx] timestamp and lyric text line.

  3. 3

    LRC timestamps are converted to VTT format with dot separators (00:01:30.500).

  4. 4

    For each cue, end time is calculated from the next line start (or default duration for last cue).

  5. 5

    The WEBVTT header is prepended and each cue is written as plain VTT text.

  6. 6

    Download the .vtt file ready for HTML5 video, YouTube, or web player integration.

Frequently Asked Questions

LRC files only have start timestamps. The converter sets each VTT cue's end time to the start time of the next line. For the final cue, a default 3-second duration is applied. This produces valid VTT with both begin and end times.

Yes. YouTube accepts VTT files through Creator Studio > Subtitles. After converting LRC to VTT, upload the .vtt file to YouTube's subtitle management interface and it will sync with your video.

LRC metadata tags ([ti:title], [ar:artist], [al:album]) are stripped during conversion since VTT has no song metadata system. Only timestamped lyric lines become VTT cues. The WEBVTT header is added at the top of the file.

After converting LRC to VTT, embed it in HTML5 video using: <video><track kind='subtitles' src='lyrics.vtt' srclang='en' label='English'></video>. The browser renders the subtitles natively via the track element.

LRC timestamps like [01:30.50] are converted to VTT format as 00:01:30.500 --> 00:01:35.000 (with dot separators and arrow notation). Centiseconds from LRC are multiplied by 10 to get VTT milliseconds.

Yes, completely free with no sign-up, no watermarks, and files up to 50 MB each. All processing happens locally in your browser.

Ready to convert your subtitles?

Drop your LRC file here and convert to VTT instantly.