Skip to content

Latest commit

Β 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌸 Bloom Sub

Smart, Thread-Safe & Multi-Encoding Subtitle Converter

Repair, convert, and batch-process subtitle encodings with a modern, high-performance desktop application.

Python PyQt5 Platform Executable License


πŸ“– Overview

Bloom Sub is a sleek, reliable desktop utility designed to permanently fix unreadable or corrupted Persian, Arabic, and international subtitle files.

Subtitles often display strange characters such as:

Γ˜Β§Γ™β€žΓ˜ΒΉΓ˜Β±Γ˜Β¨Γ™Ε Γ˜Β©
ΓˆΓ‡Γ‘Γ‡Γ€
Γ˜Β³Γ™β€žΓ˜Β§Γ™β€¦

These issues are caused by encoding mismatches between legacy subtitle files and modern media players.

Bloom Sub combines a hybrid automatic encoding detection engine with asynchronous multi-threaded processing to quickly convert individual subtitle files or entire media libraries into clean, universal encodings such as UTF-8.

Unlike many online converters, Bloom Sub works completely offline, never uploads your files, and never overwrites your original subtitles, ensuring maximum privacy and safety.


✨ Key Features

Feature Technical Implementation Benefits
πŸ” Intelligent Auto Detection Dual-Layer Detection (Heuristic + Chardet Fallback) Detects legacy subtitle encodings with high accuracy.
⚑ Multi-Threaded Processing QThread Background Worker Smooth UI with no freezing during large conversions.
πŸ“‚ Batch & Recursive Conversion Recursive scanning using os.walk() Convert thousands of subtitle files in one operation.
πŸ›‘ Safe Conversion Automatic timestamped output folders Original subtitle files always remain untouched.
πŸ“ Smart Folder Structure Preserves original directory hierarchy Converted subtitles stay organized exactly like the source.
✨ Path Cleansing Removes hidden Unicode direction characters (\u202A, \u202B, etc.) Fixes drag-and-drop path issues on Windows.
♻️ Encoding Fallback System Multiple decoding attempts on failure Successfully opens problematic subtitle files without corruption.
πŸ“ Automatic File Naming Prevents duplicate filenames (_1, _2, ...) Eliminates accidental overwrites automatically.

βš™οΈ How It Works

Bloom Sub follows a secure processing pipeline to maximize compatibility while preventing data loss.

        Input Subtitle(s)
               β”‚
               β–Ό
     Path Cleansing (RTL/LTR Fix)
               β”‚
               β–Ό
      πŸ” Hybrid Encoding Detection
      β”œβ”€β”€ Fast Heuristic Matching
      └── Chardet Statistical Analysis
               β”‚
               β–Ό
      Background QThread Processing
               β”‚
      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”
      β–Ό                 β–Ό
Read Subtitle      Create Timestamped
   Content          Output Directory
      β”‚                 β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β–Ό
     Encoding Conversion Engine
               β”‚
               β–Ό
     Smart File Name Generator
      (Avoid Duplicate Files)
               β”‚
               β–Ό
     βœ… Verified Converted Subtitle

πŸ“Š Supported Encodings

πŸ“₯ Input Encodings

Display Name Python Codec Description
Automatic Detection Hybrid Detection Engine Automatically detects subtitle encoding
UTF-8 with BOM utf-8-sig Windows-compatible UTF-8
UTF-8 utf-8 Universal modern encoding
UTF-16 LE utf-16-le Windows Unicode format
UTF-16 BE utf-16-be Big Endian Unicode
Windows-1256 windows-1256 Persian & Arabic legacy subtitles

πŸ“€ Output Encodings

  • UTF-8
  • UTF-8 with BOM
  • UTF-16 LE
  • UTF-16 BE
  • Windows-1256

πŸ“„ Supported Subtitle Formats

Bloom Sub supports:

  • SRT
  • ASS
  • SSA
  • SUB
  • TXT
  • VTT

🎨 Modern Desktop Interface

Bloom Sub features a modern desktop experience built with PyQt5.

Interface Highlights

  • Clean and minimal layout
  • Responsive desktop UI
  • Compact design
  • Live progress bar
  • Real-time conversion status
  • Smart ComboBoxes
  • Automatic output folder generation
  • Drag-and-drop support
  • Localized RTL dialogs for Persian users

πŸš€ Installation

Requirements

  • Python 3.8 or newer

Run From Source

Clone Repository

git clone https://github.com/Data-Blooom/Bloom-Sub.git
cd Bloom-Sub

Install Dependencies

pip install -r requirements.txt

Launch

python main.py

Windows Executable

πŸ’‘ No Python installed? No problem!

Bloom Sub is also available as a standalone Windows (.exe) application.

Simply download the latest release and run it instantlyβ€”no installation or configuration required.


🌟 Highlights

  • ⚑ Fully asynchronous processing
  • 🧠 Intelligent dual-layer encoding detection
  • πŸ”’ 100% offline operation
  • πŸ“ Original files remain untouched
  • πŸ“‚ Automatic timestamped output folders
  • πŸš€ Fast batch conversion
  • πŸ›‘ Reliable subtitle preservation
  • 🎬 Designed for large subtitle collections

πŸ“Έ Screenshots

Bloom Sub Main Interface
Bloom Sub Main Interface

❀️ About

Bloom Sub was created by Data Bloom to make subtitle encoding conversion simple, safe, and reliable.

No more unreadable subtitles or broken charactersβ€”just drag, convert, and enjoy your movies.


🌸 Made with ❀️ by Data Bloom

About

β€‹πŸŒΈ Smart, thread-safe desktop subtitle converter built with Python & PyQt5. Easily repair corrupted Persian/Arabic encodings (Windows-1256) and batch-convert to UTF-8 without UI freezing.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages