XConvert
Downloads
Pricing

Convert VTT to LRC Online

Turn WebVTT (.vtt) subtitle files into LRC (.lrc) lyrics format quickly with a simple online converter.

Input (VTT)
Output (LRC)

How to Convert VTT to LRC Online

  1. Upload Your VTT File: Drag and drop your .vtt file or click "Add Files" to browse. The file is parsed entirely in your browser — nothing is uploaded. Multiple WebVTT files can be queued and converted in one batch.
  2. Confirm LRC as the Output: LRC is preselected. The converter strips the WEBVTT header plus any NOTE, STYLE, and REGION blocks, drops cue identifiers and cue settings (line:, position:, align:), and rewrites each cue's start timestamp from hh:mm:ss.fff (millisecond precision) to [mm:ss.xx] (hundredth-of-a-second precision) — the only timestamp format the LRC spec supports.
  3. Review the Preview: Multi-line cues collapse to one line per lyric tag because LRC players display one line at a time. Inline VTT styling like <b>, <i>, <c.classname>, and <v Speaker> is stripped — LRC has no styling grammar, only timestamped plain text. Sound cues such as [Music] or (Applause) pass through unchanged so you can decide whether to keep them.
  4. Convert and Download: Click Convert. The .lrc file downloads as UTF-8 plain text, ready to drop next to your .mp3, .flac, or .m4a for foobar2000, MusicBee, AIMP, or Poweramp to pick up automatically.

Why Convert VTT to LRC?

WebVTT was standardised by the W3C for HTML5 video and audio captioning — it carries timing, positioning, CSS styling, and speaker metadata that browsers consume via the <track> element. LRC ("LyRiCs"), introduced in 1998 by Kuo Shiang-shiang as a Winamp plug-in companion format, is the universal sidecar format for desktop and mobile music players. The two formats overlap in concept (timestamped text aligned to media) but diverge in everything else: LRC has no header, no styling, no positioning, only [mm:ss.xx] tags and lyric lines. Converting flattens a video-captioning file into something a music player will actually display.

  • Karaoke and music players — foobar2000 (with the Lyric Show 3 component), MusicBee, AIMP, Poweramp, KMPlayer, and Plex all auto-detect track.lrc next to track.mp3 and scroll the lyrics in sync. Drop a .vtt in the same folder and these players ignore it.
  • Live-stream and podcast highlight reels — Streamers and podcasters who captured a Zoom or Riverside transcript as WebVTT can ship the audio-only cutdown to Spotify, Apple Podcasts, or Audible with synced lyrics for chapter markers and highlights.
  • Audiobook and language-learning files — Apps like LingQ, LingoDeer, and Anki-import workflows pair .lrc with audio for line-by-line follow-along reading. VTT support is rare; LRC is the default expectation.
  • Music-to-Apple-Music / Spotify workflows — Both Apple Music and Spotify use LRC-compatible synced lyrics internally and accept LRC submissions through partners like MusixMatch, LyricFind, and AMP for distribution. Self-published artists on TuneCore or DistroKid frequently submit .lrc alongside their masters.
  • Embedded lyrics in MP3 / FLAC tags — ID3v2 has a SYLT (Synchronized Lyrics) frame and Vorbis comments have a LYRICS field. The contents of an LRC paste cleanly into these tags via kid3 or the dedicated SYLT Editor, embedding the synced lyrics directly into the audio file.
  • Karaoke production for KaraFun, Sunfly, Walaoke — These karaoke tools ingest LRC (often with the Walaoke gender-marker extension M: / F: / D:) for cue authoring. Web captioners who recorded a session as VTT can hand off an LRC for the karaoke pipeline.

Need the opposite direction? Use LRC to VTT. For broader subtitle workflows see VTT to SRT or strip timings entirely with VTT to TXT.

VTT vs LRC — Format Comparison

Property VTT (WebVTT) LRC
Year introduced 2010 (W3C draft); Candidate Recommendation Draft (latest May 2026) 1998 (Kuo Shiang-shiang / Winamp)
Standardised by W3C webvtt1 Candidate Recommendation Draft De-facto, originally a Winamp plug-in format
Primary purpose Captions for HTML5 <video> / <audio> Synced lyrics for music players
File header Required: WEBVTT on line 1 None
Timestamp format hh:mm:ss.fff (millisecond) [mm:ss.xx] (hundredth-of-a-second)
Cue duration Start --> end timestamps per cue Only start time; line ends at next timestamp
Inline styling <b> <i> <u> <c.class> <ruby> <v Speaker> plus CSS None — plain text only
Positioning line: position: align: vertical: size: None
Metadata tags STYLE and REGION blocks (embedded CSS) ID tags [ar:] [ti:] [al:] [length:] [by:] [offset:]
Word-level karaoke timing Cue settings only (no per-word stamps) Enhanced LRC (A2 extension) supports <mm:ss.xx> per word
Multi-line cues Yes, joined with \n One line per timestamp — multi-line cues are split
MIME type text/vtt No registered MIME type; usually served as text/plain
Typical use Browser captions, accessibility tracks Music players (foobar2000, MusicBee, AIMP, Poweramp), Apple Music / Spotify pipelines

LRC Tag Reference — What Gets Added or Dropped

Element VTT input LRC output
WEBVTT header line Required first line Removed
NOTE comments Supported (ignored by players) Removed
STYLE blocks (embedded CSS) Supported in spec Removed
REGION blocks Supported in spec Removed
Cue identifiers (numeric or named) Optional Removed
End timestamps (hh:mm:ss.fff after -->) Required Removed — LRC only stores start times
Cue settings (line: position: etc.) Optional Stripped
Millisecond precision .fff (1 ms) .xx (10 ms) — rounded to nearest hundredth
<b>, <i>, <u> styling Supported Tag removed; inner text kept
<c.classname> class spans Supported Tag removed; inner text kept
<v Speaker> voice tags Supported Tag removed; speaker name may be kept as prefix
<ruby> annotations Supported Removed (LRC has no ruby)
Multi-line cue body Joined with \n inside one cue Split into separate [mm:ss.xx] lines, or joined to one — depends on author preference
ID tags ([ar:], [ti:], [al:]) Not applicable Optional — added blank by default; fill in your music metadata
UTF-8 encoding Required by spec Preserved

Frequently Asked Questions

Will my LRC file work in Apple Music or Spotify?

Both platforms display synced lyrics in their players, but neither accepts uploads from end users — synced lyrics arrive through partner deliveries from MusixMatch, LyricFind, AMP, and the labels. The LRC files you create here will play fine in any local music app (foobar2000, MusicBee, AIMP, Poweramp, KMPlayer, Plex) and can be submitted to MusixMatch or distributors like TuneCore/DistroKid for inclusion in streaming-platform lyrics. For your own listening, drop song.lrc next to song.mp3 and most players auto-detect it.

Why is the timestamp precision lower in LRC than VTT?

The LRC format was designed in 1998 for MP3 player lyric scrolling, when hundredth-of-a-second timing was already finer than a human eye could track. WebVTT, designed twenty years later for browser-rendered video captions, uses millisecond precision. During conversion, 00:01:23.456 rounds to [01:23.46] — a worst-case rounding error of 5 ms, which is inaudible and invisible in any music player.

Can the converter handle word-level karaoke timing?

Enhanced LRC (the "A2 extension") supports per-word timestamps in the form <mm:ss.xx>word, and VTT supports per-word stamps inside a cue with <00:00:01.500> syntax. If your source VTT has these inline timestamps (common in YouTube auto-captions from yt-dlp --write-auto-sub), the converter preserves them as enhanced LRC. If the VTT only has cue-level timing, the LRC output is standard simple LRC with one tag per line.

What happens to multi-line cues?

A WebVTT cue can carry multiple lines of text between its timestamp line and the next blank line — useful for two-line captions like a speaker name plus their words. LRC players display one line at a time, so the converter offers two modes: split each line onto its own [mm:ss.xx] tag using the cue start time (the same line will appear once with that timestamp), or join with a space into a single line. Most music workflows pick "join" because a chorus normally fits on one line.

How do music players find the LRC file?

The convention is the same filename as the audio, swapped extension: song.mp3 pairs with song.lrc in the same folder. Some players (foobar2000 with Lyric Show 3, MusicBee) also accept LRC inside a lyrics/ subfolder or embedded in an ID3v2 SYLT frame. Embedded mode is portable — the lyrics travel with the file — but sidecar .lrc is easier to edit. kid3 imports and exports LRC against the SYLT frame directly; the SYLT Editor is a dedicated tool for the same job. Mp3tag handles unsynced USLT lyrics natively but does not write SYLT without a custom action.

Can I add artist, title, and album metadata to the output?

Yes — LRC ID tags [ar:Artist Name], [ti:Song Title], [al:Album], [length:mm:ss], [by:LRC author], and [offset:±N] (a global ms shift) live at the top of the file before the first timestamp. The converter emits empty placeholder tags so you can paste your metadata before sharing. The [offset:] tag is especially useful — if a player consistently shows lyrics 200 ms late, add [offset:-200] instead of re-timing every line.

What about VTT files from YouTube — will they convert cleanly?

YouTube's auto-captions download as VTT with rolling word-by-word cues that repeat the same line many times (each new word produces a new cue containing the prior phrase plus the next word). LRC inherits this duplication, which looks terrible in a lyrics scroller. The converter deduplicates consecutive identical lines automatically; for fully manual cleanup, edit the file in any text editor before saving. If your video is from yt-dlp --write-auto-sub --sub-format vtt, expect inline <00:00:01.500> word timestamps too — those convert to enhanced LRC.

Does LRC support right-to-left text, CJK characters, or emoji?

Yes. LRC is UTF-8 plain text — Arabic, Hebrew, Chinese, Japanese, Korean, and emoji all pass through unchanged. Most modern players (foobar2000 ≥1.6, MusicBee ≥3.4, AIMP ≥5, Poweramp v3+) render UTF-8 correctly. A handful of legacy Windows MP3 players from the early 2010s expected ANSI / Windows-1252 LRC; if you need that for an older device, re-encode the downloaded file in a text editor — but in 2026 this is rare.

Is there a file-size or batch limit?

No. The conversion runs as JavaScript in your browser, so the only limit is your device's available memory. Typical 3-to-5-minute song VTTs are 5–20 KB and convert in milliseconds; full-album batches of 20+ files queue and process locally without uploading anything. No account, no watermark, no Pro tier.

Related Convert tools
VTT ConverterConvert Vtt To SrtConvert Vtt To AssConvert Vtt To SsaConvert Vtt To SbvConvert Srt To LrcConvert Ass To LrcConvert Ssa To Lrc

Image Tools

Image CompressorCompress JPEGCompress PNGCompress GIFCompress WebPImage ConverterJPG ConverterImage Resizer

Video Tools

Video CompressorCompress MP4MP4 to GIFVideo to GIFVideo ConverterMP4 ConverterVideo Cutter

Audio Tools

Audio CompressorCompress MP3Compress WAVAudio ConverterMP3 ConverterFLAC to MP3Audio Cutter

Document Tools

Compress PDFMerge Images to PDFSplit PDFPDF to JPGUnzip FilesRAR Extractor

Converters

Time Zone ConverterMeeting PlannerIST to ESTTime Zone AbbreviationsUnit ConverterLength ConverterFlow Rate Converter
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow