Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
206 commits
Select commit Hold shift + click to select a range
7b97f30
Fix EBU STL import frame-rate race
Triathlon-rally Oct 6, 2026
3d05ce0
Drop EbuSnapshotRegression test project
niksedk Oct 6, 2026
58fad71
Merge pull request #15739 from Triathlon-rally/codex/fix-ebu-stl-fram…
niksedk Oct 6, 2026
9e0524a
Add "custom milliseconds back/forward and pause" video shortcuts (#15…
niksedk Oct 6, 2026
64f9e34
Batch convert: ask before adding video files from a folder (#15742)
niksedk Oct 6, 2026
388c556
Keep SetVideoPositionSeconds single-parameter
niksedk Oct 6, 2026
4e64fcd
Batch convert: parse added files with a few workers, batch UI updates
niksedk Oct 6, 2026
b898b1d
Merge pull request #15743 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 6, 2026
fec6508
Merge remote-tracking branch 'origin/main' into claude/batch-convert-…
niksedk Oct 6, 2026
cc42970
Merge pull request #15744 from SubtitleEdit/claude/batch-convert-mkv-…
niksedk Oct 6, 2026
e301cdd
Merge remote-tracking branch 'origin/main' into claude/batch-convert-…
niksedk Oct 6, 2026
ae60ebf
Merge pull request #15746 from SubtitleEdit/claude/batch-convert-fast…
niksedk Oct 6, 2026
2eb35d3
Update German Translation
FunkyKnilch Oct 6, 2026
6c6dcb6
Add string.CountLines() and use it instead of SplitToLines().Count
ivandrofly Oct 6, 2026
59bbc31
Option to remember waveform zoom across restarts (#15748)
niksedk Oct 7, 2026
5171c0e
Flatpak: move runtime from EOL freedesktop 24.08 to 26.08
niksedk Oct 7, 2026
f1dc376
Fix doubled BOM
niksedk Oct 7, 2026
387c7c4
SMPTE timing: frame numbers follow the NDF time code clock (#15753)
niksedk Oct 7, 2026
9931441
Fix ASSA override tags piling up when moving words (#15756)
niksedk Oct 7, 2026
3240f07
Merge pull request #15757 from SubtitleEdit/claude/zoom-values-persis…
niksedk Oct 7, 2026
1f2ea66
SMPTE timing: FCP 7 XML frame counts follow the time code clock (#15753)
niksedk Oct 7, 2026
8884594
Merge pull request #15760 from SubtitleEdit/claude/assa-move-word-tag…
niksedk Oct 7, 2026
f337463
Merge pull request #15759 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 7, 2026
bee52ff
Add "Play with speech": speak lines in sync while the video plays
niksedk Oct 7, 2026
54b83b5
SMPTE timing: Final Cut Pro X formats write real media time (#15753)
niksedk Oct 7, 2026
509193d
Merge pull request #15762 from SubtitleEdit/claude/fcpx-smpte-15753
niksedk Oct 7, 2026
2c3e050
Close translation on a mismatched original keeps the original's timin…
niksedk Oct 7, 2026
ae897d3
Merge pull request #15758 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 7, 2026
863faa8
Ask before Close translation drops a translation with no unsaved chan…
niksedk Oct 7, 2026
5074a56
Merge pull request #15761 from SubtitleEdit/claude/play-with-speech-1…
niksedk Oct 7, 2026
561b654
Merge pull request #15763 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 7, 2026
2830a5c
Merge pull request #15752 from ivandrofly/add-string-countlines
niksedk Oct 7, 2026
7e53ecc
Merge pull request #15750 from FunkyKnilch/main
niksedk Oct 7, 2026
081e563
Merge main into claude/close-translation-confirm-15749
niksedk Oct 7, 2026
99b1841
Merge pull request #15764 from SubtitleEdit/claude/close-translation-…
niksedk Oct 7, 2026
9a5fd97
Prepare v5.3.0-beta24
niksedk Oct 7, 2026
1266d7d
Merge pull request #15765 from SubtitleEdit/claude/new-beta-release-b…
niksedk Oct 7, 2026
d1a38c2
Update Italian.json
bovirus Oct 7, 2026
2a4028a
Merge pull request #15766 from bovirus/main
niksedk Oct 7, 2026
790323d
Merge pull request #15747 from pdjdev/feat/platform-progress
niksedk Oct 7, 2026
aec53f2
Fix common errors: readable action text in light theme (#15768)
niksedk Oct 7, 2026
67588f2
AI review: readable category and warning colors in light theme
niksedk Oct 7, 2026
1355da9
Restore auto-backup: readable extension pill text in light theme
niksedk Oct 7, 2026
b6f3910
Merge pull request #15771 from SubtitleEdit/fix/fce-action-light-cont…
niksedk Oct 7, 2026
1e0c352
Merge pull request #15772 from SubtitleEdit/fix/ai-review-light-contrast
niksedk Oct 7, 2026
b47d515
Spell check: apply change-all pairs only to misspelled words (#15767)
niksedk Oct 7, 2026
9aca374
Spell check: clear stale suggestion when a word has none
niksedk Oct 7, 2026
118f740
Merge pull request #15773 from SubtitleEdit/fix/restore-backup-light-…
niksedk Oct 7, 2026
72aae68
Spell check: clear change-all pairs when switching dictionary
niksedk Oct 7, 2026
3cf712d
Merge pull request #15774 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 7, 2026
2fa9cc7
Spell check: clear undo history when switching dictionary
niksedk Oct 7, 2026
48b87fc
Merge pull request #15775 from SubtitleEdit/claude/spellcheck-stale-s…
niksedk Oct 7, 2026
4452ba2
Readable colored text in light theme: Split/break, Batch convert, Sta…
niksedk Oct 7, 2026
87bf379
Spell check: add an editor for the "Use always" list
niksedk Oct 7, 2026
9fc34a3
Merge pull request #15776 from SubtitleEdit/claude/spellcheck-clear-c…
niksedk Oct 7, 2026
7916606
Merge pull request #15777 from SubtitleEdit/fix/light-theme-text-cont…
niksedk Oct 7, 2026
5ed19a3
Spell check: fit the dictionary row to the column
niksedk Oct 7, 2026
e32b4c3
Merge pull request #15778 from SubtitleEdit/claude/spellcheck-use-alw…
niksedk Oct 7, 2026
fa356d1
Settings: add "Show recent files" to disable recent files (#15779)
niksedk Oct 7, 2026
1356197
Merge pull request #15782 from SubtitleEdit/claude/recent-files-issue…
niksedk Oct 7, 2026
e206db8
Video player: use ffmpeg's duration for .ts/.mpg files
niksedk Oct 7, 2026
4dc9e4e
Merge pull request #15783 from SubtitleEdit/claude/ts-stable-duration
niksedk Oct 7, 2026
99f5011
Linux: fix startup crash when Skia reports no default font family
MaryJaneInChain Oct 7, 2026
e771e0a
UI scale: size submenu and context menu items for popups at startup
niksedk Oct 8, 2026
2f87999
Plugins: keep returned time codes after the frame-mode change tick
niksedk Oct 8, 2026
ff2b567
Visual sync: seek keys work wherever focus is in a pane (#15789)
niksedk Oct 8, 2026
8778167
Merge pull request #15790 from SubtitleEdit/claude/menu-popup-scale-s…
niksedk Oct 8, 2026
f0547d5
Merge pull request #15791 from SubtitleEdit/claude/plugin-apply-keeps…
niksedk Oct 8, 2026
90b0e98
Merge pull request #15792 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 8, 2026
c4e4c6a
Plugins: follow the EBU STL frame rate a plugin sets in the header
niksedk Oct 8, 2026
7a4571b
OCR: automation ids + running state in window title (#15769)
niksedk Oct 8, 2026
0cf2ec9
Set sync point: treat the empty fallback player as no video (#15787)
niksedk Oct 8, 2026
062e60f
Merge pull request #15794 from SubtitleEdit/claude/ocr-automation-signal
niksedk Oct 8, 2026
0b1ad23
Merge pull request #15795 from SubtitleEdit/claude/set-sync-point-emp…
niksedk Oct 8, 2026
13d725b
Merge pull request #15793 from SubtitleEdit/claude/plugin-ebu-header-…
niksedk Oct 8, 2026
0867658
v5.3.0-beta25
niksedk Oct 8, 2026
0afca5b
Program: comments match the Linux default font override
niksedk Oct 8, 2026
e8471f3
Merge pull request #15786 from MaryJaneInChain/fix/linux-default-font…
niksedk Oct 8, 2026
874d04b
Tests: give Set sync point window tests a working player
niksedk Oct 8, 2026
8e57085
Merge pull request #15797 from SubtitleEdit/claude/fix-sync-point-tes…
niksedk Oct 8, 2026
7516a0f
Merge main into v5.3.0-beta25
niksedk Oct 8, 2026
8627b32
Changelog: add #15793 and #15795 to beta25
niksedk Oct 8, 2026
4803b48
Merge pull request #15796 from SubtitleEdit/claude/new-beta-release-6…
niksedk Oct 8, 2026
37bbd68
Update Japanese.json
hisui3393 Oct 8, 2026
41e2652
Update Polish.json
potplayer-fanpack Oct 8, 2026
8d8c507
Merge pull request #15799 from potplayer-fanpack/main
niksedk Oct 8, 2026
ee95c5c
Add ElevenLabs Eleven v4 and v4 Turbo TTS models
niksedk Oct 8, 2026
10889c7
Merge pull request #15801 from SubtitleEdit/claude/elevenlabs-v4-supp…
niksedk Oct 8, 2026
2a616f7
Make eleven_v4_turbo the default ElevenLabs model
niksedk Oct 8, 2026
a012bc0
Merge pull request #15802 from SubtitleEdit/claude/elevenlabs-v4-turb…
niksedk Oct 8, 2026
d402175
Update audio.cpp runtime to v0.9.1
niksedk Oct 8, 2026
bab88f7
Merge pull request #15805 from SubtitleEdit/claude/audio-cpp-update-f…
niksedk Oct 8, 2026
545aa84
ElevenLabs v4: convert <break> tags to audio pause tags
niksedk Oct 8, 2026
07b3e8e
UI scale: main menu dropdowns follow UI scale at startup
niksedk Oct 8, 2026
62f79da
Show ElevenLabs audio tags help button for v4 models
niksedk Oct 8, 2026
0b01efa
Merge pull request #15807 from SubtitleEdit/claude/elevenlabs-v4-brea…
niksedk Oct 8, 2026
64383b0
Merge pull request #15808 from SubtitleEdit/claude/main-menu-dropdown…
niksedk Oct 8, 2026
4580234
UI scale: drop ApplyScaleToExistingMenus window walk
niksedk Oct 8, 2026
30338ec
Merge pull request #15809 from SubtitleEdit/claude/elevenlabs-v4-audi…
niksedk Oct 8, 2026
f5a6450
Allow typing a custom frame rate in the toolbar and Change frame rate…
niksedk Oct 8, 2026
57e2364
Merge pull request #15810 from SubtitleEdit/claude/remove-apply-scale…
niksedk Oct 8, 2026
0ce9cfa
Merge pull request #15811 from SubtitleEdit/claude/custom-frame-rate-…
niksedk Oct 8, 2026
fb90daf
Set start/end and offset the rest work without waveform focus, F9 def…
niksedk Oct 8, 2026
212f3b2
Merge as dialog: put the dash inside leading formatting tags (#15600)
niksedk Oct 8, 2026
305f939
Merge pull request #15812 from SubtitleEdit/claude/set-start-offset-r…
niksedk Oct 8, 2026
fa5d923
Merge pull request #15813 from SubtitleEdit/claude/merge-dialog-dash-…
niksedk Oct 8, 2026
1b8f146
Update ChineseTraditional.json for v5.3.0-beta25
love80312 Oct 8, 2026
fa9f5ee
Add optional Sidon cleaning of voice-clone references
niksedk Oct 8, 2026
c1cffca
Merge pull request #15816 from SubtitleEdit/claude/sidon-clone-refere…
niksedk Oct 8, 2026
ed1ff7f
Merge pull request #15815 from love80312/B25
niksedk Oct 8, 2026
88fc6cf
Set position / Image color picker: use paused video frame inside the …
niksedk Oct 8, 2026
77b9976
Fix custom ms seek accumulating after jump to start/end of line (#15818)
niksedk Oct 8, 2026
21f00d4
Merge pull request #15819 from SubtitleEdit/claude/set-position-curre…
niksedk Oct 8, 2026
ac5dbfd
Merge pull request #15820 from SubtitleEdit/claude/custom-seek-accumu…
niksedk Oct 8, 2026
82e767e
Set background: preview the paused video frame inside the line (#15817)
niksedk Oct 8, 2026
2f4a27f
Merge pull request #15821 from SubtitleEdit/claude/set-background-cur…
niksedk Oct 8, 2026
67f8198
Update Italian.json
bovirus Oct 8, 2026
bd19281
ASSA draw: live resolution change + canvas/view-model sync bugs
niksedk Oct 8, 2026
a6f28a3
ASSA draw: 10% zoom button step, Reset View fits and centers the frame
niksedk Oct 8, 2026
f910741
Merge pull request #15823 from SubtitleEdit/claude/assa-draw-resoluti…
niksedk Oct 8, 2026
999bdb9
ASSA draw OK: replace only drawing rows, drop rows of deleted drawings
niksedk Oct 8, 2026
34ac2cd
ASSA draw: F9 preview of the rendered drawing over the video frame
niksedk Oct 8, 2026
c3fc915
Merge pull request #15824 from SubtitleEdit/claude/assa-draw-ok-keeps…
niksedk Oct 8, 2026
7ea5efe
Merge remote-tracking branch 'origin/main' into claude/assa-draw-prev…
niksedk Oct 8, 2026
3a71029
ASSA draw preview test: skip when ffmpeg is not installed (CI)
niksedk Oct 9, 2026
f6c99f0
Merge pull request #15822 from bovirus/main
niksedk Oct 9, 2026
021db57
Merge pull request #15825 from SubtitleEdit/claude/assa-draw-preview-f9
niksedk Oct 9, 2026
04ef354
Merge pull request #15826 from hisui3393/hisui3393-patch-2
niksedk Oct 9, 2026
cc51843
ASSA draw: erase-only layer gets a real style name
niksedk Oct 8, 2026
3bd6415
OCR: keep "All fixes"/"All guesses" line numbers in sync after deleti…
niksedk Oct 9, 2026
c9ebe24
Merge pull request #15830 from SubtitleEdit/claude/assa-draw-eraser-l…
niksedk Oct 9, 2026
cc73c2a
Merge pull request #15831 from SubtitleEdit/claude/ocr-all-fixes-afte…
niksedk Oct 9, 2026
a344bdf
Reload the subtitle file when it was changed outside SE (#15828)
niksedk Oct 9, 2026
99f440e
seconv: write output via a temp file so --overwrite can't empty the i…
niksedk Oct 9, 2026
7d40f3a
Video player: deinterlace setting, default auto (#15827)
niksedk Oct 9, 2026
5bd2438
OCR window: Find and Replace
niksedk Oct 9, 2026
c0d5d5d
Merge pull request #15835 from SubtitleEdit/claude/ocr-find-replace
niksedk Oct 9, 2026
00722e8
Merge pull request #15833 from SubtitleEdit/claude/seconv-temp-file-o…
niksedk Oct 9, 2026
e8b4d68
Merge pull request #15832 from SubtitleEdit/claude/file-watcher-15828
niksedk Oct 9, 2026
71f7435
Tests: add deinterlace to verified mpv option names
niksedk Oct 9, 2026
c9a568e
Speech to text: visible progress for whisper.cpp (#15836)
niksedk Oct 9, 2026
2af1e90
Find/Replace: Cut/Copy/Paste in the regex context menu
niksedk Oct 9, 2026
9291585
Merge pull request #15834 from SubtitleEdit/claude/mpv-deinterlace-15827
niksedk Oct 9, 2026
b1d3d2d
Merge pull request #15839 from SubtitleEdit/claude/regex-flyout-clipb…
niksedk Oct 9, 2026
bb4ff6b
Bump CrispASR to v0.8.42
niksedk Oct 9, 2026
89e22bd
Merge pull request #15838 from SubtitleEdit/claude/whisper-cpp-progre…
niksedk Oct 9, 2026
6843228
Merge pull request #15840 from SubtitleEdit/claude/crispasr-latest-up…
niksedk Oct 9, 2026
429423b
Prepare v5.3.0-beta26
niksedk Oct 9, 2026
1653608
Merge pull request #15841 from SubtitleEdit/claude/new-beta-release-b…
niksedk Oct 9, 2026
26918e1
Compare: keep the view when focus returns to a scrolled-away row (#15…
niksedk Oct 9, 2026
6ca3ad5
Update nuget
niksedk Oct 9, 2026
de4b66d
macOS: search help topics from the Help menu search field
niksedk Oct 9, 2026
700c69f
Merge pull request #15845 from SubtitleEdit/claude/mac-help-menu-sear…
niksedk Oct 9, 2026
1435769
iTT export: nest formatting spans so italic isn't lost
niksedk Oct 9, 2026
532047d
TTML read: only tag styling that differs from what is inherited
niksedk Oct 9, 2026
c8da744
Merge pull request #15847 from SubtitleEdit/claude/itt-italic-span-ex…
niksedk Oct 9, 2026
7c594ff
Merge pull request #15844 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 9, 2026
e068447
Update Korean.json
12si27 Oct 9, 2026
0b82d89
Merge pull request #15849 from 12si27/patch-3
niksedk Oct 9, 2026
048ce95
Keep short seek steps exact during a burst (#15848)
niksedk Oct 9, 2026
95ba7b4
Update nuget
niksedk Oct 9, 2026
297e0ca
Update Japanese translation for Beta 26
hisui3393 Oct 9, 2026
c490487
Update Italian.json
bovirus Oct 9, 2026
08c1173
Update German Translation
FunkyKnilch Oct 9, 2026
0f9494d
Merge pull request #15850 from SubtitleEdit/claude/subtitleedit-issue…
niksedk Oct 10, 2026
6f1d167
Remove BidiRunIndexFixer - fixed upstream in Avalonia 12.1.4
niksedk Oct 10, 2026
acb121c
Merge pull request #15857 from SubtitleEdit/claude/remove-bidi-run-in…
niksedk Oct 10, 2026
6cb6204
Merge branch 'main' into main
niksedk Oct 10, 2026
4927a2e
Merge branch 'main' into main
niksedk Oct 10, 2026
d4d4392
Merge remote-tracking branch 'origin/main' into pr-15851
niksedk Oct 10, 2026
ed2251b
Merge pull request #15852 from bovirus/main
niksedk Oct 10, 2026
dbfa321
Merge pull request #15853 from FunkyKnilch/main
niksedk Oct 10, 2026
8f236ce
Merge pull request #15851 from hisui3393/hisui3393-japanese.json-26
niksedk Oct 10, 2026
a1a646c
Let llama.cpp OCR use an external server URL (#15854)
niksedk Oct 10, 2026
cefd2f8
Merge pull request #15859 from SubtitleEdit/claude/llamacpp-ocr-remot…
niksedk Oct 10, 2026
7774e9a
Release v5.3.0-rc1
niksedk Oct 10, 2026
9d5230d
Merge pull request #15860 from SubtitleEdit/claude/new-rc-release-rc1
niksedk Oct 10, 2026
04c6c96
Keep SSA [Fonts]/[Graphics] in the footer on load
niksedk Oct 10, 2026
7bc7306
Restore settings from a temp copy of the picked backup
niksedk Oct 10, 2026
8bc3f26
Leave the archive stream open when unpacking .tar.gz
niksedk Oct 10, 2026
720e31a
Move word up: don't reopen the tag the moved word closed
niksedk Oct 10, 2026
c73f90a
Fix swapped title and message in four error boxes
niksedk Oct 10, 2026
9ce9fe6
Merge pull request #15861 from SubtitleEdit/claude/ssa-fonts-footer-load
niksedk Oct 10, 2026
06590b0
Merge pull request #15862 from SubtitleEdit/claude/restore-settings-b…
niksedk Oct 10, 2026
769c2ac
Merge pull request #15863 from SubtitleEdit/claude/targz-unpack-leave…
niksedk Oct 10, 2026
5557a69
ASSA draw: context menus and a drawing-program style layout
niksedk Oct 10, 2026
151d34b
Bug hunt 10-10 follow-ups: attachments decode, batch presets, ffmpeg …
niksedk Oct 10, 2026
49fc900
Merge pull request #15864 from SubtitleEdit/claude/move-word-up-reope…
niksedk Oct 10, 2026
69d8592
Merge pull request #15865 from SubtitleEdit/claude/messagebox-title-m…
niksedk Oct 10, 2026
ae8e17d
Merge pull request #15866 from SubtitleEdit/claude/bughunt-10-10-extras
niksedk Oct 10, 2026
709c5b3
ASSA draw: import SVG images
niksedk Oct 10, 2026
d04f959
Bug hunt 10-10 round 2: six fixes
niksedk Oct 10, 2026
a2f5245
Merge pull request #15868 from SubtitleEdit/claude/bughunt-10-10-round2
niksedk Oct 10, 2026
ab0e9ee
ASSA draw: undo and redo
niksedk Oct 10, 2026
07f6cdf
ASSA draw: scale and rotate handles
niksedk Oct 10, 2026
8f642c1
Bug hunt 10-10 round 3: eleven fixes
niksedk Oct 10, 2026
5d77d3a
Merge pull request #15870 from SubtitleEdit/claude/bughunt-10-10-round3
niksedk Oct 10, 2026
d205c2b
ASSA draw: convert segments between line and curve
niksedk Oct 10, 2026
734e301
Change frame rate: no null-to-double error while typing a rate (#15869)
niksedk Oct 10, 2026
8f5631f
ASSA draw: background video frame or image to trace over
niksedk Oct 10, 2026
b9f5ca6
Merge pull request #15871 from SubtitleEdit/claude/issue-15869-change…
niksedk Oct 10, 2026
6e1a1a3
ASSA draw: vector editor look (prototype A)
niksedk Oct 10, 2026
4bdc545
ASSA draw: fix empty background menu
niksedk Oct 10, 2026
97e2c66
ASSA draw: accessible name for the zoom slider
niksedk Oct 10, 2026
a822d32
Merge pull request #15867 from SubtitleEdit/claude/assa-draw-ui-impro…
niksedk Oct 10, 2026
c4113e5
Fix settings category transition order and overlapping fades
pdjdev Oct 10, 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
6 changes: 3 additions & 3 deletions .github/workflows/build-flatpak.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ jobs:
regenerate-nuget-sources:
runs-on: ubuntu-latest
env:
# The runtime version the flatpak org.freedesktop.Sdk.Extension.dotnet10//24.08
# The runtime version the flatpak org.freedesktop.Sdk.Extension.dotnet10//26.08
# extension ships. generate-nuget-sources.sh pins the pre-fetched shared-framework
# packs to this exact version; otherwise a self-contained restore rolls them forward
# to the newest patch on nuget.org, which mismatches the older runtime the flatpak SDK
# pins and breaks the offline restore inside the sandbox (NU1102). Bump this to match
# whenever the flathub dotnet10 extension updates its runtime.
DOTNET_RUNTIME_VERSION: '10.0.8'
DOTNET_RUNTIME_VERSION: '10.0.12'
steps:
- uses: actions/checkout@v5

Expand Down Expand Up @@ -58,7 +58,7 @@ jobs:
needs: regenerate-nuget-sources
runs-on: ubuntu-latest
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-24.08
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-26.08
options: --privileged

steps:
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/build-ui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,17 +112,17 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.local/share/flatpak
key: flatpak-fd24.08-dotnet10-v2
key: flatpak-fd26.08-dotnet10-v2
restore-keys: |
flatpak-fd24.08-dotnet10-
flatpak-fd26.08-dotnet10-

- name: Install/update Freedesktop SDK + dotnet extension
run: |
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak --user install -y --noninteractive flathub \
org.freedesktop.Platform//24.08 \
org.freedesktop.Sdk//24.08 \
org.freedesktop.Sdk.Extension.dotnet10//24.08
org.freedesktop.Platform//26.08 \
org.freedesktop.Sdk//26.08 \
org.freedesktop.Sdk.Extension.dotnet10//26.08
flatpak --user update -y --noninteractive

- name: Regenerate nuget-sources.json
Expand All @@ -149,7 +149,7 @@ jobs:
needs: regenerate-flatpak-nuget-sources
runs-on: ubuntu-latest
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-24.08
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-26.08
options: --privileged

steps:
Expand Down Expand Up @@ -229,17 +229,17 @@ jobs:
uses: actions/cache@v4
with:
path: ~/.local/share/flatpak
key: flatpak-fd24.08-dotnet10-v2
key: flatpak-fd26.08-dotnet10-v2
restore-keys: |
flatpak-fd24.08-dotnet10-
flatpak-fd26.08-dotnet10-

- name: Install/update Freedesktop SDK + dotnet extension
run: |
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak --user install -y --noninteractive flathub \
org.freedesktop.Platform//24.08 \
org.freedesktop.Sdk//24.08 \
org.freedesktop.Sdk.Extension.dotnet10//24.08
org.freedesktop.Platform//26.08 \
org.freedesktop.Sdk//26.08 \
org.freedesktop.Sdk.Extension.dotnet10//26.08
flatpak --user update -y --noninteractive

# Checks out the pinned commit directly in this checkout (safe: this job's
Expand Down Expand Up @@ -310,7 +310,7 @@ jobs:
runner: ubuntu-24.04-arm
runs-on: ${{ matrix.runner }}
container:
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-24.08
image: ghcr.io/flathub-infra/flatpak-github-actions:freedesktop-26.08
options: --privileged

steps:
Expand Down
84 changes: 84 additions & 0 deletions change-log.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,89 @@ Subtitle Edit Changelog

-----------------------------------------------------------------------------------------------------

v5.3.0-rc1 (10th of October 2026)

* Add search of help topics from the macOS Help menu search field
* Fix llama.cpp OCR ignoring the server URL (OCR + batch OCR can now use an external server) - thx GitGerby
* Fix iTT export losing italic in nested formatting spans - thx michi987654
* Fix Compare window jumping to a scrolled-away row when focus returns - thx WAusJackBauer
* Fix jitter on held short millisecond seek shortcuts - thx 114562175
* Update Avalonia to 12.1.4
* Update German translation - thx FunkyKnilch
* Update Italian translation - thx bovirus
* Update Japanese translation - thx hisui3393
* Update Korean translation - thx 12si27


-----------------------------------------------------------------------------------------------------

v5.3.0-beta26 (9th of October 2026)

* Add ElevenLabs Eleven v4 and v4 Turbo TTS models (v4 Turbo is the new default, <break> converted to audio pause tags)
* Add optional Sidon cleaning of voice-clone reference audio
* Add Find and Replace to the OCR window
* Add video player deinterlace setting (default auto) - thx MaxBunny1786
* Add reload of the subtitle file when changed outside SE - thx jojorne
* Add typing a custom frame rate - thx jojorne
* Add Cut/Copy/Paste to the Find/Replace regex context menu - thx hisui3393
* ASSA draw: live resolution change, zoom/reset view and F9 preview of the rendered drawing
* Set position / Set background / Image color picker: use the paused video frame inside the line - thx 114562175
* Set start/end and offset the rest: work without waveform focus, F9 default - thx DrDanAharoni
* Fix no progress shown for whisper.cpp in Speech to text - thx abc16361
* Fix custom ms seek accumulating after jump to start/end of line - thx 114562175
* Fix Merge as dialog dash placed inside leading formatting tags - thx accessallareas
* Fix OCR "All fixes"/"All guesses" line numbers after deleting lines - thx Peter Vella
* Fix ASSA draw OK overwriting selected text lines + canvas sync bugs
* Fix main menu dropdown size with UI scale at startup
* Fix seconv --overwrite emptying the input file if interrupted - thx yottayoshida
* Update CrispASR to v0.8.42
* Update audio.cpp runtime to v0.9.1
* Update Chinese Traditional translation - thx love80312
* Update Italian translation - thx bovirus
* Update Japanese translation - thx hisui3393
* Update Polish translation - thx potplayer-fanpack

-----------------------------------------------------------------------------------------------------

v5.3.0-beta25 (8th of October 2026)

* Add taskbar/Dock progress for Speech to text, Text to speech, AI review, Auto-translate, Burn-in and Generate shot changes - thx pdjdev
* Add spell check editor for the "Use always" list
* Add "Show recent files" option to disable recent files - thx amymor
* OCR: automation ids + "Running OCR..." in window title while running - thx skylinekiller
* Fix seek shortcuts not working in Visual sync - thx amymor
* Fix plugin time codes changing after apply in frame mode (ArteCheck corrections reappearing) - thx Triathlon-rally
* Plugins: follow the EBU STL frame rate a plugin sets in the header - thx Triathlon-rally
* Fix Set sync point stuck at 0:00 when no video player library can be loaded - thx ovencovsky
* Fix spell check "Change all" pairs changing correctly spelled words (e.g. "and" to "&") - thx fraternl
* Fix spell check stale suggestion and change-all pairs/undo kept when switching dictionary
* Fix hard-to-read colored text in light theme (Fix common errors, AI review, Restore auto-backup, Split, Batch convert, Statistics, Translation error) - thx subcor
* Fix unstable duration/scrubbing for .ts/.mpg video files - thx dsouzabs
* Fix submenu/context menu item size with UI scale at startup
* Fix Linux startup crash when Skia reports no default font family - thx MaryJaneInChain
* Update Italian translation - thx bovirus

-----------------------------------------------------------------------------------------------------

v5.3.0-beta24 (7th of October 2026)

* Add "Play with speech": speak lines in sync while the video plays - thx Jose4D
* Add "custom milliseconds back/forward and pause" video shortcuts - thx accessallareas
* Add option to remember waveform zoom across restarts - thx bichitoxxx
* Batch convert: ask before adding video files from a folder - thx jsinfate
* Batch convert: faster adding of many files
* Close translation: ask before closing, keep the original's timing on a mismatched original - thx bichitoxxx
* SMPTE timing: frame numbers follow the NDF time code clock (FCP 7 XML + Final Cut Pro X) - thx smt-joen
* Fix ASSA override tags piling up when moving words - thx rRobis
* Fix EBU STL import frame-rate race - thx Triathlon-rally
* Update Flatpak runtime to freedesktop 26.08 (24.08 is end-of-life) - thx Gensplejs
* Update German translation - thx FunkyKnilch
* Update Japanese translation - thx hisui3393
* Update Korean translation - thx 12si27
* Update Polish translation - thx potplayer-fanpack

-----------------------------------------------------------------------------------------------------

v5.3.0-beta23 (6th of October 2026)

* Add batch convert functions: Remove Unicode control characters, Renumber, Merge continuation lines, Convert actors
Expand Down Expand Up @@ -36,6 +119,7 @@ v5.3.0-beta23 (6th of October 2026)
* Update Italian translation - thx bovirus
* Update Polish translation - thx potplayer-fanpack

-----------------------------------------------------------------------------------------------------

v5.3.0-beta22 (5th of October 2026)

Expand Down
5 changes: 3 additions & 2 deletions docs/features/assa-draw.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,11 @@ A vector drawing tool for creating ASSA drawing commands (\p1 ... \p0) used in A
### Toolbar Actions
- **Save**, **Load**, **Copy to Clipboard** (`Ctrl+C`).
- **Close Shape** (`F8`/`Enter`), **Delete Shape** (`Del`), **Clear All** (`Ctrl+N`).
- **Zoom in**, **Zoom out**, **Reset View** (`Ctrl+0`), **Toggle Grid** (`Ctrl+G`).
- **Zoom in**, **Zoom out** (10% steps, same as `Ctrl`+mouse wheel), **Reset View** (`Ctrl+0`, fits the whole frame), **Toggle Grid** (`Ctrl+G`).
- **Toggle preview** (`F9`): shows the drawing as it will render (filled, in layer colors, with erase shapes cut out) over the video frame, with the outlines and points still on top for editing. Needs ffmpeg with libass.

### Canvas
- Configurable canvas size (default 1920×1080).
- Canvas size follows the script resolution (PlayResX/PlayResY), else the video size, and can be changed.
- Zoom in/out for detailed editing.
- Grid overlay for alignment.
- Real-time position display.
Expand Down
11 changes: 11 additions & 0 deletions docs/features/ocr.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,10 +127,18 @@ Right-click the subtitle list for:
- **Inspect line...** — nOCR and Binary image compare only
- **Show image**, **Save image as...**, **Copy image to clipboard**
- **Delete**, and **Fill selected lines with clipboard text** when several lines are selected
- **Find...**, **Replace...** — See [Find and Replace](#find-and-replace)
- **Italic**, **Bold**
- **Edit/export...**, **Import text from subtitle...**, **Export text as subtitle...**
- **Save all images with HTML index...** — See [Saving the Images](#saving-the-images)

## Find and Replace

**Find...** and **Replace...** (subtitle list or text box right-click menu, Ctrl+F / Ctrl+H) open
the same Find and Replace windows as the main window, so text can be searched and fixed while the
image is still next to it. A match selects its line and highlights the text in the text box.
Replace all also updates the lines' highlighted OCR text in the list.

## Saving the Images

The subtitle list's right-click menu has **Save all images with HTML index...**. Pick a folder and
Expand All @@ -152,6 +160,9 @@ number, time codes, duration and image size.
|----------|--------|
| Escape | Cancel OCR / Close window |
| Ctrl+G | Go to line number |
| Ctrl+F | Find |
| Ctrl+H | Replace (Cmd+Alt+F on macOS) |
| F3 / Shift+F3 | Find next / Find previous |
| Ctrl++ | Zoom in (images in grid) |
| Ctrl+- | Zoom out (images in grid) |
| F1 | Show help |
Expand Down
2 changes: 1 addition & 1 deletion docs/features/shortcuts.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Some commands have additional configuration beyond the shortcut key:

- **Set color 1–8** — Choose a color for each color shortcut
- **Surround with 1–8** — Define the left/right text to surround selected text with (this replaces the *Shortcut toggle custom start/end* setting from Subtitle Edit 4), and its **Behavior**: *Toggle* adds the text, or removes it when it is already there; *Add* adds it every time, so pressing the shortcut twice adds it twice; *Remove (all)* only removes it, all at once; *Remove (one each time)* removes one pair per press, so it undoes *Add* step by step. **Works on** picks *Selection, else whole text* (the selected part of the text box, otherwise the whole text of each selected subtitle) or *Each line* (every line of a subtitle gets its own pair, e.g. `[Hello]` / `[Bye]`)
- **Video move custom 1–4 back/forward** — Set the number of milliseconds to skip
- **Video move custom 1–4 back/forward** — Set the number of milliseconds to skip. Each one also has a **…and pause** variant that uses the same milliseconds but pauses playback first, so a jog/shuttle step leaves the video paused on the new position
- **Set actor 1–10** — Define the actor name assigned by each actor shortcut
- **Custom search 1–5** — Set the name and URL for each search slot
- **Custom shortcut 1–8** — Build your own shortcut from steps (see below)
Expand Down
20 changes: 20 additions & 0 deletions docs/features/spell-check.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,26 @@ When a misspelled word is found, the spell checker provides a list of suggested
- **Use once** — Replace with the selected suggestion for this occurrence
- **Use always** — Replace all occurrences with the selected suggestion

## "Use always" list

**Change all** and **Use always** save the correction per language in the "Use always" list
(`<language>_UseAlways.xml` in the dictionary folder). A saved correction is only applied to words
the dictionary flags as misspelled, so a correctly spelled word is never replaced.

To view or edit the list, click the list button next to the dictionary dropdown in the spell
check window, or use **Edit "Use always" list...** in **Options → Word lists**:

- Pick the language, and search to filter the pairs
- Select a pair to edit it, or type a misspelled word and its replacement and click **Add**
- Remove a pair with its trash button (or **Delete**)
- Pairs whose word is spelled correctly (or is a name or user word) are marked with a warning
icon - spell check never flags those words, so the pair is never used. **Remove unused** deletes
them all
- Changes are saved when you click **OK**

The list is only used and saved when **Spell check: remember "Use always" list** is turned on in
**Settings → Tools**.

## Dictionaries

Spell check requires a dictionary to be installed. If no dictionary is found, you will be prompted to download one.
Expand Down
18 changes: 18 additions & 0 deletions docs/features/text-to-speech.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,24 @@ While reading, the selected line, the video position and the waveform follow the
- **Speed:** the **Speed** dropdown in the waveform toolbar sets how fast the lines are read, and a change is heard right away
- **Stop:** press **Escape**, click another line, choose **Stop speaking** in the grid's right-click menu, or run the command (or shortcut) again

## Play With Speech

Watch a video with its subtitles spoken, like a live dub - handy for a course or a film in a language you do not speak, so you can watch the picture instead of reading. **Play with speech...** plays the video and speaks each line when the video reaches it. Nothing is saved; for an audio track to keep, use **Text to speech** above.

- **Menu:** **Video → Play with speech...**
- **Shortcut:** Configurable (no default)

1. Open the video and the (translated) subtitle, and move the video to where you want to start
2. Choose **Play with speech...**
3. Pick an engine, a voice and (for Supertonic) a language - the same fast engines as **Speak from current line** - and the options below, then click **OK**

- **Lower video volume while speaking:** the video's own sound is turned down while a line is spoken, and back up between lines
- **Pause video when speech runs into the next line:** a spoken line that is longer than its subtitle is first sped up (up to 1.5x). If it still runs into the next line, the video waits for it to finish, so no line is cut off or skipped. With this off, the video keeps playing and a line the video has already passed is skipped

The next few lines are generated ahead while the video plays. If the engine falls behind - for example while a local engine starts - the video waits for it. Pausing the video pauses the speech, seeking (clicking the waveform, a line or the position slider) continues from the new position, and the waveform toolbar's **Speed** applies to both the video and the speech. The subtitle is read as it was when you started - edits made while playing are spoken after a restart.

- **Stop:** press **Escape**, choose **Stop speaking** in the grid's right-click menu, or run the command (or shortcut) again

## Supported Engines

- **Piper** — Local, open-source TTS (Windows and Linux). Custom voice models are supported: any Piper voice is an `.onnx` model with an `.onnx.json` config beside it, and **Import voice...** in the voice settings dialog (the settings button next to **Test voice**) copies such a pair into the Piper folder (`TextToSpeech/Piper` in the data folder). It then appears in the voice list as *Custom - name*; a pair copied into the folder by hand is picked up the same way
Expand Down
1 change: 1 addition & 0 deletions docs/features/video-player.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ The layout applies to every video player, including the ones in dialogs like **S
| 1 second back | Jump 1 second backward |
| 1 second forward | Jump 1 second forward |
| Custom back/forward | Configurable jump amounts |
| Custom back/forward and pause | Same jump amounts, but pause playback first |

> **Note:** Actual key bindings depend on your shortcut configuration. See **Options → Shortcuts**.

Expand Down
2 changes: 1 addition & 1 deletion installer/flatpak/dk.nikse.subtitleedit.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
app-id: dk.nikse.subtitleedit
runtime: org.freedesktop.Platform
runtime-version: '24.08'
runtime-version: '26.08'
sdk: org.freedesktop.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.dotnet10
Expand Down
2 changes: 1 addition & 1 deletion installer/flatpak/flathub/dk.nikse.subtitleedit.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
app-id: dk.nikse.subtitleedit
runtime: org.freedesktop.Platform
runtime-version: '24.08'
runtime-version: '26.08'
sdk: org.freedesktop.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.dotnet10
Expand Down
2 changes: 1 addition & 1 deletion installer/flatpak/flathub/prepare-flathub-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
# anything to flathub/flathub, or push to flathub/dk.nikse.subtitleedit.
#
# Requires: git, python3 (used to parse/update the manifest's tag/commit fields), and
# either (a) flatpak + org.freedesktop.Sdk.Extension.dotnet10//24.08, or (b) a system
# either (a) flatpak + org.freedesktop.Sdk.Extension.dotnet10//26.08, or (b) a system
# dotnet 10 SDK install (see ../generate-nuget-sources.sh for details on both paths).
#
# Usage (from repo root):
Expand Down
6 changes: 3 additions & 3 deletions installer/flatpak/generate-nuget-sources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
# Run this script whenever NuGet dependencies change, then commit both
# nuget-sources.json and src/ui/packages.lock.json alongside the manifest.
#
# Requires (preferred): flatpak, org.freedesktop.Sdk//24.08,
# org.freedesktop.Sdk.Extension.dotnet10//24.08, python3
# Requires (preferred): flatpak, org.freedesktop.Sdk//26.08,
# org.freedesktop.Sdk.Extension.dotnet10//26.08, python3
# Requires (fallback): dotnet >= 10, python3
#
# Usage (from repo root):
Expand All @@ -34,7 +34,7 @@ GENERATOR="$SCRIPT_DIR/flatpak-dotnet-generator.py"
GENERATOR_COMMIT="3fc0620788a1dda1a3a539b8f972edadce8260ab"
GENERATOR_URL="https://raw.githubusercontent.com/flatpak/flatpak-builder-tools/${GENERATOR_COMMIT}/dotnet/flatpak-dotnet-generator.py"

FREEDESKTOP_VERSION="24.08"
FREEDESKTOP_VERSION="26.08"
DOTNET_VERSION="10"

cd "$REPO_ROOT"
Expand Down
2 changes: 1 addition & 1 deletion src/libse/Common/DialogSplitMerge.cs
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ public static DialogType GetDialogStyleFromIndex(int index)
}
}

private static string GetStartTags(string input)
public static string GetStartTags(string input)
{
var pre = new StringBuilder();
var s = input;
Expand Down
Loading
Loading