SubtitleEdit/subtitleedit · error · PlatformNotSupportedException
MacOS not supported.
Error message
MacOS not supported.
What it means
Thrown by DownloadWhisperPurfviewFasterWhisperXxl when the process runs on macOS. The Purfview Faster-Whisper-XXL standalone tool has no macOS build at all (the project is named whisper-standalone-win), so the download is rejected up front. The check runs after the Linux branch, so only an unsupplied macOS path reaches it.
Source
Thrown at src/ui/Logic/Download/WhisperDownloadService.cs:89
}
public async Task DownloadWhisperPurfviewFasterWhisperXxl(string destinationFileName, IProgress<float>? progress, CancellationToken cancellationToken)
{
var url = DownloadUrlPurfviewFasterWhisperXxl;
if (OperatingSystem.IsLinux())
{
if (RuntimeInformation.ProcessArchitecture == Architecture.Arm64)
{
throw new PlatformNotSupportedException("Faster-Whisper-XXL is not available for Linux ARM64.");
}
url = DownloadUrlPurfviewFasterWhisperXxlLinux;
}
if (OperatingSystem.IsMacOS())
{
throw new PlatformNotSupportedException("MacOS not supported.");
}
await DownloadHelper.DownloadFileAsync(_httpClient, url, destinationFileName, progress, cancellationToken);
}
public async Task DownloadWhisperCppVulkan(Stream stream, Progress<float> progress, CancellationToken cancellationToken)
{
await DownloadHelper.DownloadFileAsync(_httpClient, GetUrlCppVulkan(), stream, progress, cancellationToken);
}
public async Task DownloadWhisperCTranslate2(Stream stream, Progress<float> progress, CancellationToken cancellationToken)
{
await DownloadHelper.DownloadFileAsync(_httpClient, GetUrlTranslate2(), stream, progress, cancellationToken);
}
public async Task DownloadSileroVad(Stream stream, IProgress<float>? progress, CancellationToken cancellationToken)
{
await DownloadHelper.DownloadFileAsync(_httpClient, SileroVadUrl, stream, progress, cancellationToken);View on GitHub (pinned to 17a9f07487)
Solutions
- On macOS use whisper.cpp (GetUrl returns MacArmUrl/MacX64Url) or CTranslate2 (MacArmCTranslate2 is available for Apple Silicon).
- Hide the Faster-Whisper-XXL engine option in the UI when OperatingSystem.IsMacOS() is true.
- If the binary is required, run Subtitle Edit inside a Windows/Linux VM on the Mac.
Example fix
// before
await _whisperDownload.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct);
// after
if (OperatingSystem.IsMacOS())
{
showUser("Faster-Whisper-XXL has no macOS build; use whisper.cpp or CTranslate2.");
}
else
{
await _whisperDownload.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct);
} Defensive patterns
Strategy: validation
Validate before calling
if (OperatingSystem.IsMacOS()) { /* do not call DownloadWhisperPurfviewFasterWhisperXxl */ } Type guard
static bool FasterWhisperXxlSupportsCurrentOs() =>
OperatingSystem.IsWindows() || OperatingSystem.IsLinux(); Try / catch
try { await svc.DownloadWhisperPurfviewFasterWhisperXxl(dest, progress, ct); }
catch (PlatformNotSupportedException ex) when (ex.Message == "MacOS not supported.")
{ /* offer whisper.cpp or CTranslate2 on macOS */ } Prevention
- Hide the Faster-Whisper-XXL option on macOS in the engine picker.
- Document which engines are macOS-capable (whisper.cpp, CTranslate2-ARM) vs Windows/Linux-only.
When it happens
Trigger: Calling DownloadWhisperPurfviewFasterWhisperXxl on any macOS host (Intel or Apple Silicon), because the only supported branches are Linux x64 and Windows.
Common situations: A macOS user (M1/M2/M3/M4 or Intel Mac) opens Audio-to-Text and picks Faster-Whisper-XXL. The error surfaces immediately because no macOS binary is published.
Related errors
- Unsupported macOS architecture.
- Unsupported macOS architecture.
- Unsupported macOS architecture.
- Faster-Whisper-XXL is not available for Linux ARM64.
- Operation is not supported on this platform.
AI-assisted analysis of SubtitleEdit/subtitleedit@17a9f07487 (2026-08-13).
Data as JSON: /api/errors/9e1f67417a39ffcb.
Report an issue: GitHub.