Skip to content

Releases: slmlm2009/SubFast

v3.2.1

28 Oct 03:33

Choose a tag to compare

SubFast v3.2.1 Changelog

Release Date: 28-OCT-2025


🚀 Enhanced Pattern Features

1. Versioning Support

Patterns Enhanced: 26, 27, 28, 29
Feature: Allow for optional version tags after episode numbers (allow for letter v or V followed by only by one digit after episode number)

Examples:

  • Show - 15v2.mkv → S01E15 (wasn't detected in v3.2.0)
  • Show - 15vv2.mkv → None (Intended behavior)
  • Show - 15v22.mkv → None (Intended behavior)

2. Pattern 26 Specific Enhancements

Before: Basic ## - ## matching with potential complications errors when digits found before the pattern
After: Enhanced to prevents digits before pattern the help with cases where show name is ending with a digit

Examples:

  • [Crunchyroll] Kaiju8 - 01.mkv → S01E1 (was detected as S08E01 in v3.2.0)

v3.2.0

17 Oct 17:34

Choose a tag to compare

SubFast v3.2.0 Changelog

SubFast v3.2.0 - Smarter. Faster. Better tested. 🚀

Release Date: 17-OCT-2025
From Version: 3.1.0 (Internal release focusing on project directory restructure, refactoring and sub-moduleing)
Major Focus: Pattern recognition expansion and bug fixes + internal development comprehensive testing framework


🎯 Change Summary

Version 3.2.0 represents a major milestone in SubFast's maturity, delivering:

  • 7 New Episode Patterns - Expanded the total to 30 patterns
  • FINAL SEASON Logic - Intelligent contextual matching for anime final seasons
  • Comprehensive Testing Infrastructure (For development) - Complete test framework with seamless new pattern integratio
  • mkvmerge updated to latest stable version (v.95)

🔄 Migration Notes

From v3.0 to v3.2:

Just paste the subfast folder in in the root of C drive C:\ and accept any file replacements

🚀 Major Features

Adding 7 New Patterns + Enhancement for Existing Patterns

New Patterns Added:

Pattern 23: Season [space] Ep[space]number
Show Season 2 Ep 15

Pattern 24: Ep[number] (no season, defaults to S01)
Show Ep05 → S01E05

Pattern 25: E[number] (no season, defaults to S01)
Show E10 → S01E10

Pattern 26: [number] - [number] (season - episode, no prefix)
Show 2 - 15 → S02E15

Pattern 27: [number]-[number] (season-episode, hyphen only)
Show 2-15 → S02E15

Pattern 28: [square brackets][number][square brackets]
Show [15] → S01E15

Pattern 29: Underscore [number] (episode only, defaults to S01)
Show_09 → S01E09

Note: Patterns 24-29 are all low priority and only considered of there are no other matches before them


Supporting FINAL SEASON Contextual Matching ⭐ NEW

Intelligent season inference for anime final seasons

Problem Solved:

Anime final seasons often released with "FINAL SEASON" in filename but no season number:

Subtitle: Boku no Hero Academia FINAL SEASON - 01.ass  (defaults to S01E01)
Video:    My.Hero.Academia.S08E01.mkv                   (actual S08E01)
Result:   NO MATCH ❌ (S01 ≠ S08)

Solution - Pattern 30:

Contextual matching with bidirectional season inference

Subtitle: Boku no Hero Academia FINAL SEASON - 01.ass  (inferred from subtitle file S08E01)
Video:    My.Hero.Academia.S08E01.mkv                   (actual S08E01)
Result:   MATCH ✅

Bug Fixed and other Enhancements:

Movie Mode Activation Bug

  • Issue: Movie mode activating incorrectly with multiple episode files
  • Fix: Changed condition to check total files (not remaining)

Pattern - {XX} Hardening:

Enhanced to support OnePiece-style long episode numbers (1000+)

Pattern 25 now excludes:

  • Years (1900-2099) to prevent false matches
  • Resolution patterns (720p, 1080p, etc.)
  • Codec patterns (x264, x265, AV1, etc.)
# Enhanced regex with negative lookbehind
r'(?<!(?:19|20)\d{2})[\s._-](?P<episode>\d{3,})(?!p)(?!\s*(?:x264|x265|AV1|AAC))'

Existing Patterns Enhancements:

  • Pattern 1 (S[#]E[#]): Added VAR4-VAR6 with flexible separators
  • Pattern 4 (S[#]-E[#]): Added VAR4-VAR5 with underscore separator
  • Pattern 5 (S[#]-EP[#]): Added VAR4-VAR6 with space variations

Pattern Reordering:

Old Order: Old original ID assignment (20, 21, 22...)
New Order: By specificity (high to low)

Reordering Rationale:

  • High Specificity First: Patterns with unique markers processed first
  • Prevent False Matches: More specific patterns capture intent before generic ones

Pattern Hardening:

Applied to Patterns 26, 27, 28:

  • Episode number range validation (1-9999)
  • Season number validation (1-99)
  • Prevents year/resolution false matches

v3.0.0

09 Oct 17:00

Choose a tag to compare

SubFast - Version 3.0.0 Release Notes

Release Date: 09-OCT-2025
Major Version Update: v2.5.0 → v3.0.0


🎉 What's New in v3.0.0

SubFast v3.0.0 is a major release that brings a new SubFast branding and a second brand new major feature which is automatic soft-subtitle embedding into detected MKV videos matches (Automatic implementation of mkvmerge of the MKVToolNix suite)

🌟 Major Changes

1. Embed Subtitles Feature

Soft-subtitle embedding of external subtitle files directly into detected MKV video files matches for seamless playback.

  • Automatic subtitle/video match identification using same renaming logic (No need for renaming)
  • Language code detection and configuration
  • Default subtitle flag control
  • Backup management
  • Batch processing with progress tracking
  • Configurable CSV export for reporting the results

2. Dual-Feature Windows Context Menu

  • New: Unified "SubFast" cascading menu when right click:
    • SubFast (parent menu with icon)
      • → Rename subtitles
      • → Embed subtitles

3. Smart Console Behavior

  • Auto-close on success - No manual window closing needed
  • Stay open on errors - Review error messages before closing
  • Configurable via keep_console_open in config.ini

📦 Migration Guide: Upgrading from v2.x to v3.0.0

⚠️ IMPORTANT: v3.0.0 is NOT a drop-in replacement. Follow these steps to upgrade.

Step 1: Remove Old Context Menu (Required)

  1. Navigate to your old installation folder:

    C:\rename_subtitles_to_match_videos_ar\
    
  2. If you have v2.0.0 or newer:

    • Double-click: remove_subtitle_rename_menu.reg
    • Click "Yes" to remove
  3. Verify removal:

    • Right-click in any folder
    • Old context menu entries should be gone
  4. Delete the entire folder C:\rename_subtitles_to_match_videos_ar\

Step 2: Delete Old Installation (Safe to Remove)

  1. Close any open Explorer windows in the old folder
  2. Delete the entire folder:
    C:\rename_subtitles_to_match_videos_ar\
    

Step 3: Install SubFast v3.0.0

  1. Download SubFast v3.0.0 ZIP file (two bundles with one of them pre-configured for Arabic locals)

  2. Extract to the new location:

    C:\subfast\
    

    IMPORTANT: The exact path must be C:\subfast

Step 4: Install New Context Menu

  1. Navigate to: C:\subfast\

  2. Double-click: add_subfast_menu.reg

  3. Click "Yes" when prompted to merge registry keys

  4. Approve UAC if prompted

  5. Verify installation:

    • Right-click in any folder
    • Look for SubFast menu with icon
    • Expand it to see:
      • Rename subtitles
      • Embed subtitles

🔧 Configuration Changes

v3.0.0 format:

[General]
detected_video_extensions = mkv, mp4
detected_subtitle_extensions = srt, ass
keep_console_open = false

[Renaming]
renaming_report = true
renaming_language_suffix = ar

[Embedding]
mkvmerge_path = bin\mkvmerge.exe
embedding_language_code = ara
default_flag = true
embedding_report = true

Changes:

  • ✅ Split into separate [Renaming] and [Embedding] sections
  • ✅ Added keep_console_open for console behavior

🛠️ Technical Improvements

Error Handling

  • Improved error messages with specific file paths
  • Better validation of required files
  • Clear troubleshooting guidance

Project Directory Structure

  • Old:

    rename_subtitles_to_match_videos_ar/
    ├── rename_subtitles_to_match_videos_ar.py
    ├── config.ini
    ├── ARAB_STREAMS_LOGO.ico
    ├── CONFIGURATION_README.md
    ├── ARAB_STREAMS_LOGO.ico
    ├── add_subtitle_rename_menu.reg
    └── remove_subtitle_rename_menu.reg
    
  • New: Organized folder hierarchy

    subfast/
    ├── scripts/          ← Python scripts
    ├── bin/              ← Binary tools (mkvmerge)
    ├── resources/        ← Logo and documentation
    ├── config.ini        ← Root level for easy access
    └── registry files... ← Root level for easy installation
    

SubFast-v3.0.0-preview

04 Oct 23:40
9608b46

Choose a tag to compare

Preview release for v3.0.0 with "SubFast" full rebranding and initial implementation of subtitle auto embedding feature (using mkvmerge to merge subtitle into mkv files).

  • Extract the zipped file
  • Drop preview_rename_subtitles_to_match_videos_ar to your "C" drive root C:\preview_rename_subtitles_to_match_videos_ar\
  • Double click add_subtitle_rename_menu.reg and add_subtitle_embed_menu.reg and approve.
    If you have old registry files from v2.5.0 or earlier remove them first (using v2.5.0 or earlier remove_subtitle_rename_menu.reg otherwise you will have extra option in your right click menu.

Now you can merge subtitle files to matching .mkv episodes with one click by clicking "SubFast - Ember" in windows right click context menu

Enjoy!

v.2.5.0

01 Oct 23:14

Choose a tag to compare

Changelog

[v2.5.0] - 2025-02-10

Major Performance Optimizations 🚀

  • Performance gain on Large datasets (sample of 1145 episodes and their respective subtitles):
    • Before: 10.707 seconds
    • After: 0.892 seconds
    • Speedup: 12.00x faster! 🚀

Enhanced Episode Pattern Detection 📁 (9 new patterns adding to a total of 25)

  • S## - ## format (e.g., ShowName S01 - 05.mkv → S01E05)
  • S## - E## format (e.g., ShowName S2 - E10.srt → S02E10)
  • S## - EP## format (e.g., ShowName S01 - EP05.mkv → S01E05)
  • Ordinal season patterns (1st/2nd/3rd/etc. Season)
    • With dash: ShowName 1st Season - 05.mkv → S01E05
    • With E: ShowName 2nd Season E10.srt → S02E10
    • With EP: ShowName 3rd Season EP8.mp4 → S03E08

Full Configuration System via config.ini 🔧

  • Configurable language suffix (default: .ar)
  • Configurable video file formats (default: .mkv, .mp4)
  • Configurable subtitle file formats (default: .srt, .ass)
  • CSV export enable/disable control

Performance Tracking

  • Improved CSV report includes execution time in the summary section for benchmarking
  • Console PERFORMANCE section showing time, files processed, and rename count

Fixed

  • Hotfix: ##x## Pattern and Media Resolution Conflict
  • Bug: Negative "Subtitles Missing Videos" Count in Movie Mode

v2.0.0

26 Sep 12:06

Choose a tag to compare

Version 2.0.0 Release Overview

🚀 Major Updates & New Features

Enhanced Pattern Recognition

  • Massive expansion of supported episode patterns - now recognizes 15+ different naming conventions
  • Added support for Season X Episode Y patterns with various separators and spacing
  • New support for SeasonXEpY, S##Ep##, and ##x## formats
  • Better handling of episodes with 100+ numbers (no forced zero-padding)
  • Context-aware episode matching that handles inconsistent padding (e.g., S02E015 vs S02E15)

Windows Integration

  • Right-click context menu integration for seamless Windows Explorer usage
  • No more command line required - just right-click in any folder
  • Custom icon integration for professional appearance
  • Registry files included for easy installation/removal

Robust Error Handling

  • Comprehensive edge case handling tested across 65+ scenarios
  • Better handling of special characters in filenames
  • Improved file extension detection (.mkv, .mp4, .srt, .ass)
  • Safe renaming with conflict resolution

Enhanced Reporting

  • Detailed analysis summary showing formatted and readable matched and unmatched episodes in console
  • CSV export functionality with comprehensive renaming records, it will be auto-generated by default in the working directory under the name renaming_report.csv (can be enabled/disabled by commenting out the export_analysis_to_csv() function at the end of rename_subtitles_to_match_videos_ar.py)

🔧 Technical Improvements

  • Optimized regex patterns for better performance and accuracy
  • Memory-efficient processing for large file collections
  • Consistent sorting algorithms for predictable behavior
  • Modular code structure with separated analysis and renaming functions

📁 Package Contents

  • rename_subtitles_to_match_videos_ar.py - Main script with all enhancements
  • add_subtitle_rename_menu.reg - Windows context menu installer (one-time registry modification)
  • remove_subtitle_rename_menu.reg - Context menu removal tool (one-time registry modification)
  • ARAB_STREAMS_LOGO.ico - Custom icon for context menu

Usage

Windows Context Menu (v2.0.0+)

  • Navigate to folder containing video and subtitle files
  • Right-click in empty folder space
  • Select "Rename subtitle files"
  • Script runs automatically and renaming_report.csv auto-generated in the same directory to review the whole renaming records in readable format with informative details

Command Line

  • Open terminal/command prompt in the folder containing the video and subtitle files
  • Run the Python script {> python .\rename_subtitles_to_match_videos_ar.py}
  • Review the detailed output and analysis printed in console

📋 Requirements

  • Windows Operating System
  • Python 3.x installed
  • Python Launcher (py.exe) installed in default location
  • Administrator privileges for registry modification (one-time setup)

Initial v.1.0.0

26 Sep 11:47

Choose a tag to compare

Initial release with limited functionality