LyriSynclyrisync
How it worksAfter EffectsGuidesPricingContactSign in
01How it works02After Effects03Guides04Pricing05Contact06Sign in
All guides

How to import SRT and timed lyrics into After Effects

The thing to know first, because it catches almost everybody: After Effects cannot import a subtitle file. There is no File, Import that turns an SRT into text layers. Premiere reads captions, Resolve reads captions, After Effects does not. Every route below is a way around that.

What a subtitle file is, and why the import is missing

An SRT or a WebVTT is a list of cues: a start time, an end time, and some text. That is exactly what a stack of text layers with in and out points is, which is why the gap feels so strange. The reason it exists is that After Effects treats text as a design object with a typeface, animators and transforms, and there is no obvious answer to what any of those should be for an imported cue. Premiere can import a caption because a caption in Premiere is one track item, not two hundred styled layers.

So the work is not conversion. It is construction, and something has to build the layers.

Route one: a script that builds the layers

ExtendScript can create compositions, text layers, keyframes and markers directly. A script holding your cue list can therefore build the entire stack in one pass, and this is what most automated solutions do underneath, including ours.

You run it with File, Scripts, Run Script File, and pick the .jsx. Nothing is installed and nothing runs in the background. Two things are worth checking before you trust any script from anywhere: whether it adds to the composition you have open or creates its own, and whether the whole thing lands inside one undo group. If it does not, backing out of a result you dislike means pressing undo once per layer.

LyriSync exports one of these. It adds to the active composition when there is one, on the assumption you have already built the comp you want the lyrics in, and only creates a composition when nothing is open. Everything happens in a single undo group.

Route two: a panel

A CEP extension docks inside After Effects like any other panel and can push work into the project without you handling a file at all. The advantage over a script is not the first import, which is much the same either way. It is the second one.

Timings change. You spot a wrong line, fix it, and want the comp updated. A script run twice gives you two copies of everything. A panel can tag what it created and replace only that, leaving your own layers alone. LyriSync's After Effects panel works this way: it marks the composition and every layer it makes, then removes what matches before it writes the new version.

Route three: expressions on a single Source Text

You can also keep one text layer for the whole track and drive its Source Text property from data, either with keyframes at each cue or with an expression reading a JSON file through a footage item. One layer instead of hundreds, and the styling is defined once.

The tradeoff is that you get one text object, so you cannot animate two lines against each other, cross-fade between them or give an individual line its own transform. For a clean single-line caption it is the tidiest approach there is. For anything where lines overlap it is the wrong shape.

Which layout to ask for

If you are exporting from LyriSync, this is the choice at the bottom of the export panel, and it maps onto the three shapes above.

Layers gives one text layer per cue, each with its own in and out point. Pick it when lines animate independently. Source Text gives one layer for the whole track with the property keyframed, and at word level that alone reads as a word-by-word reveal. Karaoke gives one layer per line holding the whole line, with a Range Selector animator whose fill colour sweeps across the characters in step with each word. That last one is the classic bouncing highlight, built out of After Effects' own text animation model rather than burned in, so the colour is one property you can change afterwards.

The manual route, and when it is still right

Paste the lyrics into one text layer, split it, and drag each piece to where it belongs. Nobody should do this for a full track in 2026, but it is still the correct answer for a fifteen second social cut with four lines in it. Setting up any pipeline costs more than four lines are worth.

Things that go wrong

The timings are right and everything sits one beat early. Check that your comp starts at zero. A comp with a non-zero start time offsets every imported layer by that amount, and it is the most common single cause of a whole track being uniformly out.

Frame rate mismatch. Cue times are in seconds and After Effects works in frames, so they are rounded on the way in. That is invisible at 24 or 25, and it is still invisible at 60. It only bites if you change the comp frame rate afterwards, which moves every keyframe.

Long lines running off the frame. Anything building layers has to decide how wide the text box is. A script that hardcodes 1920 by 1080 will overflow a vertical comp. Ours reads the composition's real width and height at run time and sizes the box as a fraction of it, so a line wraps inside the frame whatever shape the comp is.

Non-Latin characters arriving as boxes. That is a font problem, not an import problem. The layer holds the right text; the typeface has no glyph for it.

Related: how to make a lyric video in After Effects puts this stage in order with the rest, and SRT vs LRC covers which formats can carry word timings at all.

LyriSync, LyrisyncAfter EffectsLRC generatorSRT generatorKaraoke lyricsGuidesTermsPrivacyCreditsBy TJCreateContact