Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
2f733c7
first commit
Nov 10, 2025
8fc349e
Update README and add setup script with environment configuration
Nov 10, 2025
cdc76aa
Update .gitignore
Nov 10, 2025
aa657d6
Add LICENSE file and implement force option
Nov 10, 2025
5efb4ca
Update README and batch_generate.py with processing details; add down…
Nov 10, 2025
388a63b
Implement Whisper subtitles plugin for Jellyfin
Jan 6, 2026
71161e6
Restore plugin source code and add Directory.Build.props configuration
Jan 6, 2026
9d35294
Add complete plugin source structure
Jan 6, 2026
d96a739
Fix compilation errors and build successfully
Jan 6, 2026
d20e577
Release v0.0.0.47
Jan 6, 2026
0890d25
Add whisper.cpp build script for automatic installation
Jan 23, 2026
e7c726e
Release v0.0.0.48
Jan 23, 2026
bd3b344
Release v0.0.0.49: Bug fixes and improvements
Apr 29, 2026
9266373
v0.0.0.49
Apr 29, 2026
5fe5880
Release v0.0.0.50: Chnaged Library call to virtFolders instead of Lib…
Apr 29, 2026
117c7ba
Release v0.0.0.51: Copy binary as whisper-cli instead of main
Apr 29, 2026
d8c78bb
Release v0.0.0.53: Bug fixes and improvements
Apr 29, 2026
4eb1651
Release v0.0.0.54: Fixed FindBundledBinary logic
Apr 29, 2026
c1aa966
Release v0.0.0.55: logic to check if the response is an array. not my…
Apr 29, 2026
893c713
Release v0.0.0.56: https://tenor.com/ujsi9n6f2u6.gif
Apr 29, 2026
f8e5b47
feat: Update Whisper Subtitles plugin to version 0.0.0.56
Apr 29, 2026
bb88460
Release v0.0.0.57: what even is a library
Apr 29, 2026
9ffc18a
feat: Update Jellyfin Plugin to version 0.0.0.57 with enhanced librar…
Apr 29, 2026
a052ffc
Release v0.0.0.58: fuck
Apr 30, 2026
62aa496
Release v0.0.0.58: FUCK
Apr 30, 2026
0646827
Release v0.0.0.59: FUCK
Apr 30, 2026
32d1e04
Remove dupe version 0.0.0.58 from manifest.json
zakattack02 Apr 30, 2026
c52e9ca
Release v0.0.0.60: Bug fixes and improvements
Apr 30, 2026
1e50558
Release v0.0.0.60: Bug fixes and improvements
Apr 30, 2026
4722f2b
Add .NET 9.0 support and update assembly information for Whisper Subt…
Apr 30, 2026
e74e780
Merge branch 'feature/jellyfin-plugin' of https://github.com/zakattac…
Apr 30, 2026
f9a83e8
removed clones
Apr 30, 2026
cba95e1
Release v0.0.0.61: Bug fixes and improvements
Apr 30, 2026
43256e5
Release v0.0.0.62: Bug fixes and improvements
May 3, 2026
f4bc099
Release v0.0.0.63: Bug fixes and improvements
May 3, 2026
e21a06d
Release v0.0.0.64: Bug fixes and improvements
May 4, 2026
0638b72
Release v0.0.0.65: Bug fixes and improvements
May 4, 2026
c8682e5
Release v0.0.0.66: static linker flags
May 4, 2026
deedf5c
Release v0.0.0.67: Bug fixes and improvements
May 5, 2026
a5150ad
Release v0.0.0.68: Moved to using VM for building binary
May 7, 2026
7dcd47f
Release v0.0.0.69: Added new binary
May 7, 2026
2de7de1
Release v0.0.0.71: Bug fixes and improvements
May 7, 2026
bb6eb87
feat: Update Whisper Subtitles Plugin to version 0.0.0.71
May 7, 2026
6c1bd55
Release v0.0.0.71: Bug fixes and improvements
May 7, 2026
0c1b3c1
Release v0.0.0.72: Bug fixes and improvements
May 7, 2026
738c2de
Release v0.0.0.73: Bug fixes and improvements
May 7, 2026
d2f882a
Release v0.0.0.73: Argument fixes
May 7, 2026
a52e1ff
Release v0.0.0.74: Argument fixes - use correct binary arguments
May 7, 2026
1681799
Release v0.0.0.75: Docker binary with GLIBC 2.34
May 7, 2026
1855a49
Release v0.0.0.76: Docker binary with GLIBC 2.34
May 7, 2026
68f8134
Release v0.0.0.77: Docker binary with GLIBC 2.34
May 7, 2026
e9dabba
Release v0.0.0.78: Docker binary with GLIBC 2.34
May 7, 2026
1285547
Release v0.0.0.79: Bug fixes and improvements
May 7, 2026
bd50d99
Release v0.0.0.80: Bug fixes and improvements
May 27, 2026
e901d02
Release v0.0.0.83: y
May 27, 2026
fc0047c
Release v0.0.0.84: Bug fixes and improvements
May 27, 2026
6f14e6c
Release v0.0.0.85: Bug fixes and improvements
May 27, 2026
b799b24
Release v0.0.0.86: Fixes to Build Args and side panel
May 27, 2026
15b1c76
Release v0.0.0.87: Fixed 132 error
May 27, 2026
fe7dcc8
Release v0.0.0.88: AVX2 removed
May 27, 2026
2d1392d
Release v0.0.0.89: Bug fixes and improvements
May 27, 2026
c2b65e3
Release v0.0.0.90: Fixed SIGILL (exit 132) by disabling AVX2/FMA in w…
May 27, 2026
72da1b2
Add sidebar registration and card-based config page layout
May 27, 2026
511b916
Release v0.0.0.91: Add FFmpeg audio extraction, card-based config pag…
May 27, 2026
70ae87f
Release v0.0.0.91: Add FFmpeg audio extraction for MP4/MKV support, p…
May 27, 2026
4ead305
Release v0.0.0.92: Fixed whisper-cli arguments: removed unsupported -…
May 27, 2026
26e46a7
Release v0.0.0.93: Fixed AVX-512 SIGILL: added GGML_NATIVE=OFF to cma…
May 27, 2026
e00fdd9
Release v0.0.0.94: Fixed -ngl 999 -> -dev 0 for GPU path (whisper-cli…
May 27, 2026
66700c3
Release v0.0.0.95: Bug fixes and improvements
May 27, 2026
89f4499
Release v0.0.0.95: Split long audio into 30-minute chunks to prevent …
May 27, 2026
ba49108
Refactor WhisperService for improved subtitle generation and error ha…
May 27, 2026
e5031e4
Release v0.0.0.96: Fixed ffprobe path detection. Added FfprobePath co…
May 27, 2026
e0603fb
Release v0.0.0.97: Per-video sub-progress reporting. The scheduled ta…
May 27, 2026
aadd29f
Release v0.0.0.98: Dual CPU+GPU binaries with CUDA support. Dockerfil…
May 28, 2026
aa6017f
chore: restructure to semantic versioning
May 28, 2026
bb3ae52
fix: security & bug fixes from audit review
May 28, 2026
a1f0d07
docs: rewrite README for Jellyfin plugin
May 28, 2026
ed2716a
chore: add releases/ and wiki/ to .gitignore
May 28, 2026
7b9f441
chore: remove obsolete Python setup.sh
May 28, 2026
c54e473
chore: remove obsolete Python scripts
May 28, 2026
d0ff5c9
chore: add .editorconfig and .vscode/settings.json, update .gitignore…
May 28, 2026
40b14a0
feat: Update Whisper Subtitles Plugin to version 3.0.0
May 28, 2026
59ea88c
chore: clean up .gitignore (remove duplicates, add whisper.cpp/)
May 28, 2026
24dcc07
chore: merge master into feature/jellyfin-plugin
May 28, 2026
cf812c6
fix: move CI workflows to correct path, remove nested duplicate
May 28, 2026
a1d9843
chore: keep only test.yaml CI, remove redundant build workflows
May 28, 2026
4dcd3c8
fix: update actions to v6/v5, use -warnaserror for .NET 10 compat
May 28, 2026
0621e0c
fix: deploy CUDA binary even when CPU is already cached
May 28, 2026
2d5b766
docs: add wiki documentation, clean up old releases and template files
May 28, 2026
f1c5430
Merge branch 'master' into feature/jellyfin-plugin
zakattack02 May 28, 2026
a57a151
Release v3.0.0.1: Bug fixes and improvements
May 28, 2026
cac4abd
Release v3.0.0.1: Bug fixes and improvements
May 28, 2026
0f1a50f
Release v3.0.0.1: libnccl.so.2 added
May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
bin/
obj/
releases/
wiki/

whisper.cpp/

BenchmarkDotNet.Artifacts/
Expand Down
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project>
<PropertyGroup>
<Version>3.0.0.0</Version>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<FileVersion>3.0.0.0</FileVersion>
<Version>3.0.0.1</Version>
<AssemblyVersion>3.0.0.1</AssemblyVersion>
<FileVersion>3.0.0.1</FileVersion>
<PluginName>Jellyfin.Plugin.WhisperSubtitles</PluginName>
<Authors>Whisper Plugin Contributors</Authors>
<Description>Automatic subtitle generation for Jellyfin using OpenAI's Whisper</Description>
Expand Down
28 changes: 0 additions & 28 deletions Jellyfin.Plugin.Template.sln

This file was deleted.

57 changes: 0 additions & 57 deletions Jellyfin.Plugin.Template/Configuration/PluginConfiguration.cs

This file was deleted.

79 changes: 0 additions & 79 deletions Jellyfin.Plugin.Template/Configuration/configPage.html

This file was deleted.

29 changes: 0 additions & 29 deletions Jellyfin.Plugin.Template/Jellyfin.Plugin.Template.csproj

This file was deleted.

51 changes: 0 additions & 51 deletions Jellyfin.Plugin.Template/Plugin.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -162,30 +162,43 @@ public async Task<bool> DownloadBinaryAsync(CancellationToken cancellationToken
{
try
{
// Skip deployment if any binary already exists
if (IsBinaryAvailable())
var cpuExists = File.Exists(_binaryPath);
var cudaExists = File.Exists(_cudaBinaryPath);

// If CPU binary exists and CUDA is either present or not bundled, skip
if (cpuExists && cudaExists)
{
_logger.LogInformation("Binary already available in cache, skipping deployment");
_logger.LogInformation("Both CPU and CUDA binaries already in cache, skipping deployment");
return true;
}

_logger.LogInformation("Deploying bundled whisper binary from plugin directory...");

var source = FindBundledBinary();
if (source is null)
if (cpuExists && FindBundledCudaBinary() is null)
{
_logger.LogError(
"Bundled binary not found inside plugin folder. " +
"Expected '{Name}' inside whisper/{Platform}/ sub-directory.",
BundledBinaryName, GetPlatformString());
return false;
_logger.LogInformation("CPU binary cached, no CUDA binary bundled — skipping deployment");
return true;
}

_logger.LogInformation("Copying {Source} → {Dest}", source, _binaryPath);
File.Copy(source, _binaryPath, overwrite: true);
EnsureExecutable(_binaryPath);
if (!cpuExists)
{
_logger.LogInformation("Deploying bundled whisper binary from plugin directory...");

var source = FindBundledBinary();
if (source is null)
{
_logger.LogError(
"Bundled binary not found inside plugin folder. " +
"Expected '{Name}' inside whisper/{Platform}/ sub-directory.",
BundledBinaryName, GetPlatformString());
return false;
}

_logger.LogInformation("Copying {Source} → {Dest}", source, _binaryPath);
File.Copy(source, _binaryPath, overwrite: true);
EnsureExecutable(_binaryPath);
}

// Deploy CUDA binary and .so files if present in the bundle
// (runs even when CPU is cached, so upgrades from CPU-only deploy CUDA)
var cudaSource = FindBundledCudaBinary();
if (cudaSource is not null)
{
Expand All @@ -204,12 +217,12 @@ public async Task<bool> DownloadBinaryAsync(CancellationToken cancellationToken
}
}
}
else
{
_logger.LogInformation("No CUDA binary bundled — GPU acceleration will not be available");
}

return await TestBinaryAsync(cancellationToken);
// Test only if we freshly deployed the CPU binary
if (!cpuExists)
return await TestBinaryAsync(cancellationToken);

return true;
}
catch (Exception ex)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v9.0": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.0": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.1": {
"dependencies": {
"Whisper.net": "1.8.1"
},
Expand All @@ -25,7 +25,7 @@
}
},
"libraries": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.0": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.1": {
"type": "project",
"serviceable": false,
"sha512": ""
Expand Down
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v9.0": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.0": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.1": {
"dependencies": {
"Whisper.net": "1.8.1"
},
Expand All @@ -25,7 +25,7 @@
}
},
"libraries": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.0": {
"Jellyfin.Plugin.WhisperSubtitles/3.0.0.1": {
"type": "project",
"serviceable": false,
"sha512": ""
Expand Down
Binary file not shown.
Binary file not shown.

This file was deleted.

Loading