Importing .srt subtitles into Remotion
If you have an existing .srt subtitle file, you can import it into Remotion using parseSrt() from @remotion/captions.
Reading an .srt file
Use staticFile() to reference an .srt file in your public folder, then fetch and parse it:
import {useState , useEffect , useCallback } from 'react';
import {AbsoluteFill , staticFile , useDelayRender } from 'remotion';
import {parseSrt } from '@remotion/captions';
import type {Caption } from '@remotion/captions';
export const MyComponent : React .FC = () => {
const [captions , setCaptions ] = useState <Caption [] | null>(null);
const {delayRender , continueRender , cancelRender } = useDelayRender ();
const [handle ] = useState (() => delayRender ());
const fetchCaptions = useCallback (async () => {
try {
const response = await fetch (staticFile ('subtitles.srt'));
const text = await response .text ();
const {captions : parsed } = parseSrt ({input : text });
setCaptions (parsed );
continueRender (handle );
} catch (e ) {
cancelRender (e );
}
}, [continueRender , cancelRender , handle ]);
useEffect (() => {
fetchCaptions ();
}, [fetchCaptions ]);
if (!captions ) {
return null;
}
return <AbsoluteFill >{/* Use captions here */}</AbsoluteFill >;
};Alternatively, you can also fetch() a remote file via URL.
Using imported captions
Once parsed, the captions are in the recommended Caption format and can be used with all @remotion/captions utilities.
Possible next steps:
- Displaying captions - Render captions in your video
- Exporting captions - Export captions to a file
See also
parseSrt()- API reference- Displaying captions - Render captions in your video
Caption- The caption data structure