Subtitle/Closed captions extraction failing on OTA recordings

Subtitle extraction is failing:

2026-03-31T06:05:26 MCEBuddy.AppWrapper.CCExtractor → Issues · CCExtractor/ccextractor · GitHub
→ Process exited with code 0
→ Checking SRT file S:\MCEBuddy-Temp\working1\Henry David Thoreau S01E01 Who Are We 2026-03-30-2000.srt
INFORMATION> → Validating and cleaning SRT file
ERROR> → Error validating SRT file System.Exception: Null character detected, not a text file
at MCEBuddy.Transcode.CCandSubtitles.SRTValidateAndClean(List`1 srtFiles, Log jobLog, Double offset, Single duration)
ERROR> 2026-03-31T06:05:28 MCEBuddy.Transcode.CCandSubtitles → Error validating Subtitle file
ERROR> 2026-03-31T06:05:28 MCEBuddy.Engine.ConversionJob → Extracting closed captions failed
WARNING> 2026-03-31T06:05:28 MCEBuddy.Engine.ConversionJob → Extracting closed captions failed from original file, trying to extract closed captions from the remuxed file
INFORMATION> 2026-03-31T06:05:28 MCEBuddy.Transcode.CCandSubtitles → Extracting Closed Captions as SRT file

2026-03-31T06:05:39 MCEBuddy.AppWrapper.CCExtractor → Issues · CCExtractor/ccextractor · GitHub
→ Process exited with code 0
→ Checking SRT file S:\MCEBuddy-Temp\working1\Henry David Thoreau S01E01 Who Are We 2026-03-30-2000.srt
INFORMATION> → Validating and cleaning SRT file
ERROR> → Error validating SRT file System.Exception: Null character detected, not a text file
at MCEBuddy.Transcode.CCandSubtitles.SRTValidateAndClean(List`1 srtFiles, Log jobLog, Double offset, Single duration)
ERROR> 2026-03-31T06:05:41 MCEBuddy.Transcode.CCandSubtitles → Error validating Subtitle file
ERROR> 2026-03-31T06:05:41 MCEBuddy.Engine.ConversionJob → Extracting closed captions failed
WARNING> 2026-03-31T06:05:41 MCEBuddy.Engine.ConversionJob → No Subtitle file found after extractionf

Henry David Thoreau S01E01 Who Are We 2026-03-30-2000.mpg-ChannelsDVR - TV - NO Comskip-2026-03-31T06-00-00.log (1.9 MB)

It looks like CCExtractor is successfully running (exit code 0), but the resulting SRT file is being rejected by MCEBuddy because it contains null characters (System.Exception: Null character detected, not a text file). This often happens when the stream contains binary noise or the encoding is corrupted.

To help troubleshoot this, could you try the following:

  1. Check CCExtractor Version: Are you using the “stock” CCExtractor that comes with MCEBuddy, or have you swapped it for a different version?
  2. Try a custom CCExtractor command: In your Conversion Task SettingsExpert Settings, try adding -utf8 to the Custom CCExtractor parameters box to see if forcing a specific encoding helps bypass the null character error.
  3. Manual Inspection: If you can, open the temporary SRT file (S:\MCEBuddy-Temp\working1\...srt) in a text editor like Notepad++ before the job finishes/fails to see if it looks like garbage or actual text.

I’ll search the forum to see if there are recent reports of “Null character detected” with the latest OTA recordings.

Henry David Thoreau S01E01 Who Are We 2026-03-30-2000.srt (79.9 KB)

I am reprocessing one of the files that failed. I attached the temporary SRT file. It is a normal SRT file. It does have a NULL character near the end of the file (there may be other NULLs - I did not do an exhaustive search).

I have the “Comskip Donators Version”. But, I am using the default closed captions extractor (unless that is done by the Comskip plugin).

I do not see a “Custom CCExtractor parameters box” in Expert Settings.

It appears the issue is specifically with MCEBuddy’s post-extraction validation. Even though CCExtractor successfully creates the SRT file, MCEBuddy’s engine scans it for “Null characters” (binary zeros) as a safety check to ensure it’s a valid text file. If it finds even one, it rejects the entire file.

Regarding your points:

  1. CCExtractor vs Comskip: You are correct; while Comskip handles the commercial detection, CCExtractor is a separate tool used by MCEBuddy specifically for subtitle extraction.
  2. Custom Parameters Box: My apologies—I should have been more specific. The “Custom CCExtractor parameters” box is actually located in the Profile configuration, not the Conversion Task.

Recommended Steps:

1. Add -utf8 to your Profile

Since you mentioned the SRT file looks “normal” but contains a null character, forcing UTF-8 might help CCExtractor produce a cleaner output that MCEBuddy’s validator accepts.

  1. Open profiles.conf (usually in C:\Program Files\MCEBuddy2x\config).
  2. Find the profile you are using (e.g., [MKV HEVC]).
  3. Add the following line to that profile:
    cc_params=-utf8
  4. Save the file and restart the MCEBuddy service.

2. Disable the Null Character Check (Advanced)

If forcing UTF-8 doesn’t work, there is an internal MCEBuddy setting to skip the validation that is failing.

  1. In the MCEBuddy GUI, click SettingsAdvanced Settings.
  2. Look for a checkbox labeled Skip subtitle validation (or similar, depending on your version).
  3. Alternatively, you can add SkipSubtitleValidation=true to the [Common] section of your mcebuddy.conf file.

3. Why is this happening now?

Since you mentioned this started recently, it’s likely that the OTA broadcaster for “Henry David Thoreau” (or the DVR software) is inserting some stream noise that CCExtractor is interpreting as a character.

If you’re comfortable sharing, could you let me know which version of MCEBuddy you are currently running? (e.g., 2.6.4). This will help me check if there’s a known bug with the validator in that specific build.

MCEBuddy 2.7 Release 1

I’m not sure how long this has been a problem - it has been a problem for at least the past 8 days. It is happening for all episodes of some PBS TV series, but not others.

CC extraction has failed for these new TV Series:
. The Forsytes on Masterpiece (Season 1)
. Henry David Thoreau (Ken Burns series)
. Call the Midwife (Season 15)

But CC extraction is working okay for these TV Series:
. The Count of Monte Cristo on Masterpiece (Season 1)
. Horizons from PBS News (Season 1)
. Compass Points from PBS News (Season 1)

I stopped the MCEBuddy daemon, made both of the suggested changes (assuming I did it correctly) and restarted the MCEBuddy daemon. But these changes did not fix the problem. (But, I was able to capture the temporary SRT files.)

profiles.conf:
[MKV HEVC]
Description=HEVC in MKV (H.265/AC3) conversion. Creates a smaller file (50% smaller than H.264) with comparable quality but very slow.
order=handbrake,ffmpeg
ffmpeg-general=-threads 0
ffmpeg-video=-ss 0 -tag:v hvc1 -vf yadif=0:-1:1,hqdn3d -vcodec libx265 -preset medium -crf 26 -map 0:v -sn
ffmpeg-audio=-acodec ac3 -ab 160k -map 0:a
ffmpeg-audioac3=-acodec ac3 -ab 256k -map 0:a
ffmpeg-ext=.mkv
ffmpeg-audiodelay=skip
handbrake-general=–decomb --loose-anamorphic --verbose=2
handbrake-video=–start-at duration:0 -e x265 --encoder-preset medium -q 26
handbrake-audio=-E ffac3 -R auto -B 160 -D 0 -a 1,2,3,4,5
handbrake-audioac3=-E ffac3 -R auto -B 256 -D 0 -a 1,2,3,4,5
handbrake-ext=.mkv
handbrake-audiodelay=skip
PreConversionCommercialRemover=true
cc_params=-utf8

mcebuddy.conf:
[Engine]
Tasks=Convert to MP4,ChannelsDVR - TV - NO Comskip,ChannelsDVR - TV - Comskip,PlayOnHome - NO Comskip,PlayOnCloud - NO Comskip,PBS - NO Comskip,Manual
SearchRecords=PlayOnHome,ChannelsDVR-TV,PlayOnCloud,PBS
UserName=Guest
DomainName=
ArchiveDomainName=
ArchiveUserName=Guest
FailedDomainName=
FailedUserName=Guest
WakeHour=-1
WakeMinute=-1
StartHour=6
StartMinute=0
StopHour=7
StopMinute=0
DaysOfWeek=Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday
MaxConcurrentJobs=3
LogJobs=True
LogLevel=3
LogKeepDays=15
DeleteOriginal=False
UseRecycleBin=False
ArchiveOriginal=False
DeleteConverted=False
AllowSleep=False
SuspendOnBattery=False
SendEmail=False
Locale=en-US
TempWorkingPath=S:\MCEBuddy-Temp
ArchivePath=
FailedPath=
SpaceCheck=True
CustomComskipPath=C:\Comskip_Donators_Version\comskip.exe
CustomProfilePath=
HangPeriod=300
PollPeriod=60
ProcessPriority=Normal
CPUAffinity=0
EngineRunning=True
LocalServerPort=23332
UPnPEnable=False
FirewallExceptionEnable=False
SubtitleSegmentOffset=0
SkipSubtitleValidation=True
MinimumSegmentSize=4
eMailServer=
eMailPort=25
eMailSSL=False
eMailFrom=
eMailTo=
eMailSuccess=True
eMailFailed=True
eMailCancelled=True
eMailStart=True
eMailDownloadFailed=True
eMailQueue=True
eMailSuccessSubject=
eMailFailedSubject=
eMailCancelledSubject=
eMailStartSubject=
eMailDownloadFailedSubject=
eMailQueueSubject=
eMailSkipBody=False
eMailUsername=

I’m using the latest version of McEBuddy which consistently created SRT for all basic cable channels. Now I’m recording OTA and I’m not getting SRT for any recording–even those I recorded years ago that I have a SRT file for (I processed the source file again to change the format).
It’s possible I don’t have the profile right for SRT, but I’ve never seen this issue in the years I’ve been using McEBuddy. I’ll check further and see what I can find.

Jon - my work-around when the SRT is missing is to redo the conversion while watching the temporary folder. If there are captions, SRT files are created but then deleted before the end of processing. When I see the SRT file size change to something other than zero, I pause the processing and copy the SRT file.

That isn’t normal. If you’re seeing and able to manually copy a non zero size SRT file, then it should be copied directly by MCEBuddy to the destination folder.

Can you attach your conversion log so I can see what’s going on ?

Good timing. I had a recording that I needed to redo to get the captions. Here’s the log:

The Kimberley Australia’s Wild West S01E01 River Of Life 2026-06-17-2100.mpg-ChannelsDVR - TV - NO Comskip-2026-06-18T16-42-37.log (1.7 MB)

That was very helpful. It looks like there some sort of invalid characters in the extracted SRT file which causing validation or fail and so MCEBuddy deletes the extracted subtitles.

Checking SRT file S:\MCEBuddy-Temp\working2\The Kimberley Australia’s Wild West S01E01 River Of Life 2026-06-17-2100.srt
INFORMATION> → Validating and cleaning SRT file
ERROR> → Error validating SRT file System.Exception: Null character detected, not a text file
at MCEBuddy.Transcode.CCandSubtitles.SRTValidateAndClean(List`1 srtFiles, Log jobLog, Double offset, Single duration)
ERROR> 2026-06-18T16:46:29 MCEBuddy.Transcode.CCandSubtitles → Error validating Subtitle file
ERROR> 2026-06-18T16:46:29 MCEBuddy.Engine.ConversionJob → Extracting closed captions failed

Can you upload the original video file and the extracted SRT file so we can analyze it to see what’s going on?

You would think that I would have anticipated that you would need the original video file. Unfortunately, I didn’t. I’ve attached the SRT file. And I have and will schedule additional recordings of a variety of shows to try to catch another example. PBS Over-The-Air recordings seem to be the most likely to exhibit this problem. I’m sure one will show up within a week (at most).

The Kimberley Australia’s Wild West (2026) - S01E01 - River Of Life (2026-04-05).srt (56.7 KB)

How large can the uploaded recording be? I guess I’ll find out.

Upload the whole file. No size limit.

Here’s an example from last night.

Ooops. There is a size limit:

Sorry, that file is too big (maximum size is 10 MB). Why not upload your large file to a cloud sharing service, then paste the link?

I’ve put the files on Google Drive: MCEBuddy - Google Drive

Here is another example: CBS News Sunday Morning (OTA recording). I’ve put the files on OneDrive: MCEBuddy

Thanks for reporting this, it has been fixed in today’s 2.7.2 beta build. You can try it out and let us know if you still have any issues.

Hi Goose.

Great. This is one of those situations where no news from me is good news. Based on past experience, I would definitely expect to see a problem within a week. If I see this problem reoccur, I’ll post here.

Steve