Skip to content

Releases: AroseEditor/Contrary-Convertor

v1.9.0

28 May 06:31

Choose a tag to compare

Photo(s) → PDF / PDF → Photos

  • Convert any image (JPG, PNG, WEBP, BMP, TIFF, GIF, AVIF, HEIC) directly to a PDF page (embedded into A4 via pdf-lib)
  • Export PDF pages back to individual PNG images — one image per page, rendered via Puppeteer
  • Multi-image → single PDF: combine multiple photos into one PDF document

Windows Context Menu Integration

  • Installer registers "Convert with Contrary Convertor" in the Windows right-click menu for all file types
  • Opening a file via context menu automatically loads it in the app ready for conversion
  • Uninstaller cleanly removes the registry entries

Extended Archive Support (7zip-bin)

  • Full read/write for: ZIP, RAR, 7Z, TAR, TGZ, TBZ2, TXZ, BZ2, XZ, GZ
  • Extract-to-folder for all formats
  • Cross-format conversion (e.g. RAR → ZIP, 7Z → TAR)

Programming Language Files (new "code" category)

  • Supported: C, C++, Python, Rust, Julia, Kotlin, Nim, Dart, Go, Java, JavaScript, TypeScript, JAR, CSS, PHP, Ruby, Swift, Scala, Haskell, Lua, R, MATLAB, Perl, Shell, Batch, PowerShell, TOML, INI, CONF, LOG
  • Convert to PDF (syntax-highlighted via Puppeteer), HTML (dark theme), or TXT

Text-to-Speech (TTS)

  • Convert any text/code/document to MP3 using Microsoft Edge TTS (en-US-ChristopherNeural voice)
  • Auto-installs edge-tts and pydub on first use via Python
  • 192k bitrate MP3 output with normalization
  • Works on: TXT, MD, HTML, RTF, CSV, YAML, JSON, TOML, XML, and all code file types

Image Upscaling (2× / 4×)

  • Upscale any image 2× or 4× using sharp's Lanczos3 high-quality resampling
  • Non-destructive: saves as new file alongside the original

PPTX Conversions

  • PPTX → PDF, HTML, TXT, MD
  • No LibreOffice required — text extracted via native XML parsing

Expanded Markdown Output

  • PDF → MD, DOCX → MD, PPTX → MD, HTML → MD, TXT → MD
  • DOCX uses mammoth + turndown for clean Markdown from Word documents

Noise Removal — 3-Pass Pipeline

  • Pass 1: 6-filter FFmpeg chain: highpass → lowpass → afftdn (nr=35 nf=-25) → anlmdn → speechnorm
  • Pass 2: DeepFilterNet AI (unchanged)
  • New Pass 3: post-AI cleanup — afftdn + anlmdn + dynaudnorm + loudnorm for broadcast-ready output

Internal / Build

  • New npm dependencies: 7zip-bin, node-7z, marked, pptxgenjs, turndown
  • build/installer.nsh rewritten with context menu hooks and clean uninstall

v1.8.0

28 May 03:26

Choose a tag to compare

🎵 YouTube MP3 Fix

  • Fixed "invalid merge output format" error when downloading YouTube videos as MP3
  • Root cause: --merge-output-format mp3 is invalid — ffmpeg can only merge into container formats
  • Fix: switched to --extract-audio --audio-format mp3 --audio-quality 0 for audio downloads (VBR best)
  • Added --ffmpeg-location flag so yt-dlp uses the app-bundled ffmpeg binary reliably

🎧 Spotify Download Support

  • Paste any Spotify track, album, or playlist URL and download as MP3 @ 320k
  • Uses spotdl — auto-installed silently via pip on first use (leverages the existing Python auto-installer)
  • Format picker auto-locks to MP3 when a Spotify URL is detected
  • UI badge shows Spotify • via spotdl • MP3 • 320k on paste
  • Works for tracks, albums, playlists, and artist pages

v1.7.0

21 May 18:59

Choose a tag to compare

🔊 AI & DSP Background Noise Removal

  • New BG Noise Removal (2-pass AI+FFmpeg) post-processing option for audio and video files.
  • Pass 1 (DSP): Uses a double afftdn, anlmdn, and low-shelf equalizer filter chain in FFmpeg.
  • Pass 2 (AI): Uses DeepFilterNet AI network for advanced speech enhancement and noise reduction.
  • Silent Auto-Installer: Lazily installs Python 3.11 embeddable package and DeepFilterNet on Windows on first run (cached for future uses).
  • Graceful Fallbacks: Non-Windows platforms or environments without DeepFilterNet support fall back to the optimized Pass 1 DSP filters.
  • Supports single and bulk conversions, saving output as <name>_denoised.<ext>.

1.6.0

30 Apr 15:17

Choose a tag to compare

v1.6.0 (April 30, 2026)

🔖 PDF Watermark

  • New Watermark PDF conversion option — appears when input is a PDF
  • Customizable watermark text via text input
  • Opacity slider (0.00–1.00, default 0.15) for subtle or bold stamps
  • Text is drawn diagonally across the center of every page, auto-scaled to page size
  • Output saved as filename_watermarked.pdf in the same directory
  • Uses pdf-lib for fast, dependency-free PDF manipulation

v1.5.2 Release

30 Apr 08:41

Choose a tag to compare

v1.5.2 (April 30, 2026)

🐛 Critical Fix — Conversion ENOENT crash

  • Fixed spawn ffmpeg.exe ENOENT error that broke all video, audio, and image conversions in packaged builds
  • Root cause: ffmpeg-static resolved to a path inside app.asar, but OS cannot spawn executables from asar archives
  • Added getFFmpegPath() helper that swaps app.asarapp.asar.unpacked for the ffmpeg binary path
  • All 4 ffmpeg consumers patched: probeMedia, fixForPlatform, convertVideo, convertAudio

v1.5.0

28 Apr 12:28

Choose a tag to compare

Contrary Convertor — Updates

v1.5.0 (April 28, 2026)

📋 Clipboard Paste Support

  • Ctrl+V to paste files directly into the app
  • Works with copied files from Explorer and screenshots/images from clipboard
  • Clipboard images are saved to temp dir and loaded automatically

📦 Bulk Operations

  • Drop multiple files at once for batch conversion
  • Right-click the dropzone to open multi-file selection dialog
  • All files are processed sequentially with per-file progress reporting
  • Common output formats are computed from the intersection of all files' supported formats
  • Each result (success/failure) is individually tracked in history

🎵 Video → Audio Extraction

  • Videos can now be converted to WAV, OGG, FLAC, AAC, OPUS (not just MP3)
  • Full codec support: pcm_s24le for WAV, libvorbis for OGG, flac for FLAC, aac for AAC, libopus for OPUS
  • Proper format containers for each audio type

🔍 OCR for Images

  • Already built-in via extract-text format for images
  • Uses Tesseract.js for OCR on JPG, PNG, WebP, BMP, TIFF, GIF, AVIF
  • Real-time OCR progress reporting

(Release Skipped as same day , different time) v1.4.0 (April 28, 2026)

🔧 PDF Text Extraction — Complete Rewrite

  • All text is now extracted from PDFs using page-by-page getTextContent() via pdfjs
  • Image placeholders: Where images exist in the PDF, [Insert Image Here] is inserted in the output
  • Image detection uses the PDF operator list (paintImageXObject/paintJpegXObject ops)
  • Removed OCR dependency — pure text extraction, no Tesseract needed
  • Added pdf-lib fallback parser that reads raw PDF content streams (Tj/TJ operators) if pdf-parse fails
  • Works on all PDFs including encrypted/complex layouts

🎬 Video Conversion — Fixed

  • Added explicit .format() calls for every output container (mp4, mkv, mov, webm, avi, gif, mp3)
  • Added FLV and WMV output format support
  • Added -y overwrite flag to prevent ffmpeg hanging on existing files
  • Added -pix_fmt yuv420p and even-dimension padding for H.264 compatibility
  • Added -movflags +faststart for MP4 web streaming
  • Better error messages on ffmpeg failures
  • Added fallback encoder path for unknown formats

🖼️ Image Conversion — Hardened

  • Added failOnError: false to sharp — handles truncated/broken images gracefully
  • Added auto EXIF rotation via .rotate() — images no longer appear rotated after conversion

🎵 Audio Conversion — Fixed

  • Added -y overwrite flag to prevent ffmpeg hanging

Convertor New Release

16 Apr 11:44

Choose a tag to compare

Issue | Root Cause | Fix -- | -- | -- Video→MP3 | -b:a 320k (CBR) + -q:a 0 (VBR) conflict in ffmpeg | Removed CBR flag — now uses pure VBR mode (quality 0 = highest quality, ~245-320kbps) PDF text extraction | Custom pagerender callback crashing on some PDFs | Default path now uses parsed.text (pdf-parse's built-in extractor), only uses pagerender when Page Separation is ON. Added fallback error messages yt-dlp no format shown | No format selector existed in download UI | Added 📹 MP4 / 🎵 MP3 dropdown next to the URL input. MP3 selection auto-passes quality: 'audio' which triggers bestaudio + --merge-output-format mp3

April 15 4 PM

15 Apr 11:26

Choose a tag to compare

Fixes:

  • Added PDF text extraction using OCR.
  • Fixed "Settings" not being saved,
  • Saving Settings as Settings.json
  • Ui Changes
  • App Icon Changed

Developed By Ayushman.

New Release

15 Apr 09:51

Choose a tag to compare

1.1.0 Version adds :

Auto Updating
PDF / Any document extraction of text

Made by Ayushman