On This Page

how to8 min read~8 min left

Convert YouTube Transcript to SRT: Step-by-Step Guide

Learn how to convert YouTube transcripts to SRT subtitle format for video editing, translation, and accessibility. Includes online tools, manual methods, and automation scripts.

By NoteLM TeamPublished 2026-01-04
Share:

Key Takeaways

  • SRT is the most widely supported subtitle format for video editing
  • NoteLM.ai and yt-dlp can export YouTube transcripts directly as SRT
  • SRT format: sequence number, timestamps (HH:MM:SS,mmm), text, blank line
  • Keep subtitles under 42 characters per line, max 2 lines
  • Use UTF-8 encoding to ensure special characters display correctly
  • FFmpeg can burn subtitles directly into video files

To convert a YouTube transcript to SRT format, use a tool like NoteLM.ai that offers direct SRT export, or download the transcript and convert it using online converters or scripts. SRT (SubRip Text) is the most widely used subtitle format, compatible with virtually all video editors and players.

What Is SRT Format?

SRT (SubRip Text) is a simple, widely-supported subtitle file format.

SRT File Structure

1
00:00:00,000 --> 00:00:04,500
Welcome to this tutorial on YouTube transcripts

2
00:00:04,500 --> 00:00:08,200
Today we'll cover how to convert them to SRT

3
00:00:08,200 --> 00:00:12,800
This format works with most video editors

SRT Components Explained

ComponentExamplePurpose
Sequence number1, 2, 3...Order of subtitles
Timestamp start00:00:00,000When subtitle appears
Timestamp end00:00:04,500When subtitle disappears
Arrow-->Separates start/end times
TextAny textThe subtitle content
Blank line(empty)Separates entries

Timestamp Format

HH:MM:SS,mmm
│  │  │  │
│  │  │  └── Milliseconds (000-999)
│  │  └───── Seconds (00-59)
│  └──────── Minutes (00-59)
└─────────── Hours (00+)

Why Convert to SRT?

Video Editing Compatibility

Video EditorSRT Support
Adobe Premiere Pro✅ Native import
Final Cut Pro✅ Native import
DaVinci Resolve✅ Native import
iMovie⚠️ Via conversion
CapCut✅ Native import
Filmora✅ Native import

Other Uses

  • Accessibility: Add captions to any video platform
  • Translation: Base file for subtitle translation
  • Archiving: Standard format for subtitle libraries
  • Burning in: Hardcode subtitles into video

Method 1: Direct SRT Export (Easiest)

Tools like NoteLM.ai export YouTube transcripts directly as SRT files.

Step-by-Step Instructions

Step 1
Copy the YouTube video URL.
Step 2
Step 3
Paste the URL and click "Get Transcript."
Step 4
Click "Download SRT" button.
Step 5
Save the .srt file to your computer.

Result

You'll get a properly formatted SRT file:

1
00:00:00,000 --> 00:00:03,500
Welcome to this video

2
00:00:03,500 --> 00:00:07,200
Today I'll show you something amazing

3
00:00:07,200 --> 00:00:11,000
Let's get started with the first step

Method 2: yt-dlp (Command Line)

Download subtitles directly in SRT format using yt-dlp.

Installation

# pip
pip install yt-dlp

# Mac
brew install yt-dlp

# Windows
choco install yt-dlp

Download as SRT

# Download auto-generated subtitles as SRT
yt-dlp --write-auto-sub --sub-lang en --convert-subs srt --skip-download "VIDEO_URL"

# Download manual subtitles as SRT
yt-dlp --write-sub --sub-lang en --convert-subs srt --skip-download "VIDEO_URL"

# Download both if available
yt-dlp --write-auto-sub --write-sub --sub-lang en --convert-subs srt --skip-download "VIDEO_URL"

Output

Creates file: Video Title [VIDEO_ID].en.srt

Batch Processing

# Download SRT for all videos in a playlist
yt-dlp --write-auto-sub --sub-lang en --convert-subs srt --skip-download "PLAYLIST_URL"

Method 3: Manual Conversion

Convert a plain text transcript to SRT format manually or with scripts.

Plain Text to SRT (Python Script)

import re

def text_to_srt(input_file, output_file):
    """Convert timestamped text to SRT format."""
    with open(input_file, 'r') as f:
        lines = f.readlines()
    
    srt_content = []
    counter = 1
    
    for line in lines:
        # Match pattern: [0:00] or (0:00) or 0:00 - followed by text
        match = re.match(r'[\[\(]?(\d+):(\d+)[\]\)]?\s*[-–]?\s*(.+)', line.strip())
        
        if match:
            minutes, seconds, text = match.groups()
            minutes, seconds = int(minutes), int(seconds)
            
            # Calculate timestamps
            start_total = minutes * 60 + seconds
            end_total = start_total + 4  # Default 4 second duration
            
            start_time = f"{start_total//3600:02d}:{(start_total%3600)//60:02d}:{start_total%60:02d},000"
            end_time = f"{end_total//3600:02d}:{(end_total%3600)//60:02d}:{end_total%60:02d},000"
            
            srt_content.append(f"{counter}")
            srt_content.append(f"{start_time} --> {end_time}")
            srt_content.append(text.strip())
            srt_content.append("")  # Blank line
            counter += 1
    
    with open(output_file, 'w') as f:
        f.write('\n'.join(srt_content))

# Usage
text_to_srt('transcript.txt', 'output.srt')

Manual Conversion Steps

Step 1
Open transcript in text editor.
Step 2
For each line, format as:
[sequence number]
[start time] --> [end time]
[text]
[blank line]
Step 3
Convert timestamps from MM:SS to HH:MM:SS,mmm format.
Step 4
Save with .srt extension.

Timestamp Conversion Examples

OriginalSRT Format
0:0000:00:00,000
1:3000:01:30,000
10:4500:10:45,000
1:05:3001:05:30,000

Method 4: Online Converters

Web-based tools that convert between subtitle formats.

ToolInput FormatsOutput FormatsFree
Subtitle Edit OnlineTXT, VTT, ASSSRT, VTT, ASS
GoTranscriptTXTSRT
Rev.com ConverterVTT, SCCSRT
HappyscribeTXT, VTTSRT

Using Online Converters

Step 1
Download transcript in any format (TXT, VTT).
Step 2
Go to online converter (e.g., subtitletools.com).
Step 3
Upload your file.
Step 4
Select SRT as output format.
Step 5
Download converted file.

SRT Formatting Best Practices

Optimal Subtitle Length

GuidelineRecommendation
Characters per line42 max
Lines per subtitle2 max
Duration1-7 seconds
Reading speed15-20 char/sec

Splitting Long Text

Before (too long):

1
00:00:00,000 --> 00:00:05,000
This is a very long subtitle that contains too much text and will be difficult for viewers to read in time

After (properly split):

1
00:00:00,000 --> 00:00:02,500
This is a very long subtitle
that contains too much text

2
00:00:02,500 --> 00:00:05,000
and will be difficult for viewers
to read in time

Adding Formatting

SRT supports basic HTML-style formatting:

1
00:00:00,000 --> 00:00:04,000
<b>Bold text</b>

2
00:00:04,000 --> 00:00:08,000
<i>Italic text</i>

3
00:00:08,000 --> 00:00:12,000
<u>Underlined text</u>

4
00:00:12,000 --> 00:00:16,000
<font color="#FF0000">Red text</font>
Note
Not all players support SRT formatting tags.

Using SRT Files

Import into Video Editors

Adobe Premiere Pro:

  1. 1.File → Import → Select .srt file
  2. 2.Drag to timeline
  3. 3.Edit in Captions panel

DaVinci Resolve:

  1. 1.File → Import → Subtitle
  2. 2.Select .srt file
  3. 3.Edit in Subtitles track

Final Cut Pro:

  1. 1.File → Import → Captions
  2. 2.Select .srt file
  3. 3.Attach to video in timeline

Burn Subtitles into Video (FFmpeg)

# Soft subtitles (can be toggled)
ffmpeg -i video.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4

# Hard subtitles (burned in)
ffmpeg -i video.mp4 -vf "subtitles=subtitles.srt" output_burned.mp4

# Styled hard subtitles
ffmpeg -i video.mp4 -vf "subtitles=subtitles.srt:force_style='FontSize=24,FontName=Arial'" output_styled.mp4

Troubleshooting

Common SRT Errors

Error: Subtitles not showing

  • Check timestamp format (must use comma: 00:00:00,000)
  • Ensure blank line between entries
  • Verify file encoding is UTF-8

Error: Timing is off

  • Timestamps may need offset adjustment
  • Check if video was trimmed

Error: Special characters display wrong

  • Save file as UTF-8 with BOM
  • Avoid special characters not in target font

Fixing Timestamp Format

# Fix common timestamp issues
import re

def fix_srt_timestamps(content):
    # Replace periods with commas in timestamps
    content = re.sub(r'(\d{2}:\d{2}:\d{2})\.(\d{3})', r'\1,\2', content)
    # Add missing hours
    content = re.sub(r'^(\d{2}:\d{2}),(\d{3})', r'00:\1,\2', content, flags=re.MULTILINE)
    return content

Frequently Asked Questions

Q1What is the difference between SRT and VTT?
SRT (SubRip) uses comma in timestamps (00:00:00,000) and simpler syntax. VTT (WebVTT) uses period (00:00:00.000), supports more styling, and includes a header. Most video editors prefer SRT for its universal compatibility.
Q2Can I convert SRT to other formats?
Yes. Online tools and software like Subtitle Edit can convert SRT to VTT, ASS, SCC, and other subtitle formats. FFmpeg can also handle format conversion.
Q3Why isn't my SRT file working in Premiere Pro?
Common issues: incorrect timestamp format (use HH:MM:SS,mmm), missing blank lines between entries, wrong file encoding (should be UTF-8), or sequence numbers out of order.
Q4How do I sync SRT subtitles with video?
Use video editing software or subtitle editors like Subtitle Edit. Adjust all timestamps by a fixed offset, or manually adjust individual subtitle timings to match the audio.
Q5Can I add styling to SRT files?
SRT supports basic HTML tags (bold, italic, underline, color) but not all players render them. For advanced styling, convert to ASS/SSA format or use VTT.
Q6What's the maximum subtitle duration?
There's no technical limit, but usability guidelines suggest 1-7 seconds per subtitle. Longer subtitles should be split. Reading speed should not exceed 20 characters per second.
Q7How do I handle multiple speakers in SRT?
Add speaker labels at the start of text lines: `srt 1 00:00:00,000 --> 00:00:03,000 JOHN: Hello everyone 2 00:00:03,000 --> 00:00:06,000 MARY: Hi John, thanks for having me `

Conclusion

Converting YouTube transcripts to SRT format is straightforward with the right tools. NoteLM.ai provides one-click SRT export, yt-dlp offers command-line automation, and online converters handle format conversion for existing files.

Quick reference:

  • Easiest: NoteLM.ai → Download SRT
  • Automation: yt-dlp with --convert-subs srt
  • Manual: Python script or online converter

SRT files work with virtually all video editors and players, making them the best choice for subtitle projects.

Get SRT Files from YouTube →

Written By

NoteLM Team

The NoteLM team specializes in AI-powered video summarization and learning tools. We are passionate about making video content more accessible and efficient for learners worldwide.

AI/ML DevelopmentVideo ProcessingEducational Technology
Last verified: January 4, 2026
Video editor compatibility may vary by version. Always test SRT files before final production.

Was this article helpful?