Skip to content

AroseEditor/Contrary-Convertor

Repository files navigation

β—ˆ Contrary Convertor

Local-first file conversion, download, and post-processing. 50+ formats. Zero uploads. Zero limits.

Contrary Convertor is a free, open-source desktop app that converts, downloads, and post-processes files completely locally β€” no cloud, no subscriptions, no file size caps, no account. Drop in a file, pick an output format, convert. That's it.


⬇️ Download

Platform File Link
πŸͺŸ Windows .exe installer (NSIS) β†’ Releases
🍎 macOS .dmg disk image β†’ Releases
🐧 Linux .AppImage (portable) β†’ Releases

No installation required for AppImage β€” just chmod +x and run.
Windows installer bundles everything. Double-click and go.


✨ Features at a Glance

πŸ–ΌοΈ Image Conversion

  • Formats: JPG Β· PNG Β· WebP Β· AVIF Β· GIF Β· TIFF Β· BMP Β· ICO Β· SVG
  • Auto EXIF rotation β€” images never come out sideways
  • Handles truncated or malformed images gracefully (failOnError: false)
  • Quality presets: Lossless Β· High Β· Medium Β· Custom (manual slider)
  • Resize by width/height with aspect-ratio awareness

🎬 Video Conversion

  • Formats: MP4 Β· WebM Β· MOV Β· AVI Β· MKV Β· GIF Β· FLV Β· WMV
  • H.264 + yuv420p + -movflags +faststart baked in for maximum compatibility
  • Platform compatibility fix mode β€” rewraps and re-encodes for specific targets
  • Extract audio from any video (MP3, WAV, FLAC, OGG, AAC, Opus)
  • Framerate and resolution controls

🎡 Audio Conversion

  • Formats: MP3 Β· WAV Β· FLAC Β· OGG Β· AAC Β· Opus
  • Proper codec mapping per format (libmp3lame, pcm_s16le, flac, libvorbis, aac, libopus)
  • Bitrate control

πŸ“„ Document Conversion

  • PDF: β†’ HTML Β· TXT Β· extract images Β· extract fonts Β· watermark
  • DOCX/DOC/ODT: β†’ PDF Β· HTML Β· TXT Β· extract images Β· extract text
  • HTML: β†’ PDF (via headless Puppeteer) Β· PNG screenshot
  • Markdown: β†’ HTML

πŸ“Š Data & Config

  • JSON ↔ CSV ↔ XML ↔ YAML ↔ TOML ↔ .env β€” bidirectional, all combinations
  • XLSX ↔ CSV Β· JSON Β· Excel
  • Nested object auto-flattening for .env export

πŸ—œοΈ Archives

  • ZIP, TAR, GZ β€” compress and extract
  • Game archives: .pak (Unreal 4/5) Β· .rpf (GTA V / RDR2) Β· .wad (Doom) Β· .obb (Android)

πŸ”€ Fonts

  • TTF ↔ OTF conversion via opentype.js
  • Font metadata extraction (family, designer, glyph count, version, license)

🧊 3D Models

  • OBJ β†’ GLB Β· GLB β†’ OBJ Β· FBX β†’ GLB

⬇️ URL Download Mode

Click "Want to download a link?" below the dropzone to switch to download mode. Paste any URL and hit download.

Supported Sources

Source Method Formats
YouTube yt-dlp (auto-installed) MP4 (1080p/720p/480p/360p/Best) Β· MP3
Spotify spotdl (auto-installed) MP3 @ 320k
Instagram yt-dlp MP4 Β· MP3
TikTok yt-dlp MP4 Β· MP3
Twitter / X yt-dlp MP4 Β· MP3
Facebook yt-dlp MP4 Β· MP3
Twitch yt-dlp MP4 Β· MP3
Reddit yt-dlp MP4 Β· MP3
Vimeo yt-dlp MP4 Β· MP3
SoundCloud yt-dlp MP3
Direct links Multi-threaded downloader Any file type

Notes:

  • yt-dlp is downloaded automatically on first use β€” no manual setup needed.
  • Spotify downloads work via spotdl, which is silently pip-installed on first use (uses the bundled Python if Python isn't on your system).
  • Pasting a Spotify URL automatically locks the format picker to MP3.
  • Direct link downloads support configurable parallel threads (1–16) for faster large-file downloads.
  • Real-time progress shows percent, MB/s speed, and downloaded/total size.

πŸ€– AI & Post-Processing Features

πŸ–ΌοΈ AI Background Removal

  • Select any image β†’ choose "Remove BG" from the dropdown
  • On-device AI subject detection β€” uses ONNX/WASM (@imgly/background-removal-node), nothing leaves your machine
  • Mask editor β€” paint/erase canvas overlay to refine edges:
    • πŸ–ŒοΈ Brush β€” paint areas to keep
    • 🧹 Eraser β€” remove from mask
    • Adjustable brush size (5–80px), crosshair cursor
  • Output: filename_removedbg.png (transparent PNG)
  • AI model (~50MB) downloads once on first use, then cached

πŸ”Š AI Background Noise Removal (2-pass)

  • Select any audio or video file β†’ choose "BG Noise Removal" under Post Process
  • Pass 1 (DSP): double afftdn + anlmdn + low-shelf equalizer via FFmpeg
  • Pass 2 (AI): DeepFilterNet speech enhancement model
  • DeepFilterNet is silently auto-installed via pip on first use
  • Falls back gracefully to Pass 1 if DeepFilterNet is unavailable
  • Works on single files and bulk batches
  • Output: filename_denoised.ext

πŸ“ PDF Text Extraction + OCR

  • Full text extraction page-by-page via pdfjs
  • Where images exist in the PDF: [Insert Image Here] placeholder is inserted
  • OCR for images β€” Tesseract.js extracts text from JPG, PNG, WebP, BMP, TIFF, GIF, AVIF
  • pdf-lib fallback parser for encrypted/complex layouts

πŸ”– PDF Watermark

  • Diagonal text watermark stamped across every page
  • Adjustable opacity (0.00–1.00, default 0.15)
  • Custom watermark text input
  • Output: filename_watermarked.pdf

πŸ“¦ Bulk Mode

  • Drop multiple files at once for batch conversion
  • Right-click the dropzone β†’ multi-file selection dialog
  • Common output formats computed from intersection of all files' supported formats
  • Per-file progress reporting and individual success/failure history entries
  • Works with all conversion types including noise removal and watermarking

πŸ“‹ Clipboard Paste

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

βš™οΈ Settings

Open with the βš™ gear icon in the title bar:

Setting Description
Download Threads Parallel connections for direct link downloads (1–16)
yt-dlp Quality Default video quality: Best Β· 1080p Β· 720p Β· 480p Β· 360p Β· Audio Only

πŸ› οΈ Tech Stack

Library Purpose
Electron Desktop shell
fluent-ffmpeg + ffmpeg-static Video / audio processing
sharp Image conversion
pdf-lib PDF manipulation & watermarking
pdfjs-dist PDF text extraction
mammoth DOCX β†’ HTML/TXT
puppeteer HTML β†’ PDF / PNG
tesseract.js OCR for images
@imgly/background-removal-node AI background removal
yt-dlp Video/audio downloading
spotdl Spotify downloading
DeepFilterNet AI noise removal
file-type Magic byte file detection
opentype.js Font conversion
node-stream-zip Archive handling

πŸš€ Run from Source

git clone https://github.com/AroseEditor/Contrary-Convertor.git
cd Contrary-Convertor
npm install --legacy-peer-deps
npm start

πŸ—οΈ Build

# Windows installer (.exe)
npx electron-builder --win nsis

# macOS DMG
npx electron-builder --mac dmg

# Linux AppImage
npx electron-builder --linux AppImage

Output goes to dist/. A build-release.bat is included for Windows convenience.

GitHub Actions

A unified release workflow (.github/workflows/release.yml) builds all three platforms in parallel, auto-extracts the version from package.json, parses the matching section from updates.md as release notes, and drafts a GitHub Release. Trigger it manually from the Actions tab.


🀝 Contributing

PRs welcome. Open an issue first for major changes.

  1. Fork the repo
  2. Create your branch: git checkout -b feature/my-feature
  3. Commit: git commit -m 'Add: my feature'
  4. Push: git push origin feature/my-feature
  5. Open a Pull Request

πŸ“œ Changelog

See updates.md for the full version history.


πŸ“„ License

MIT Β© Arose Editor

If this saved you time, you can support development via UPI β€” DM on Discord: ayush.ue5

About

A simple and efficient file conversion tool made for the Contrary ecosystem. Supports converting work-related assets and formats with a clean and lightweight workflow.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors