sdexe
Suite for Downloading, Editing & eXporting Everything
Local tools for media downloads, PDF manipulation, image processing, and file conversion. Everything runs on your machine. No uploads, no accounts, no data leaves your device.
Install
One command sets up everything on a fresh machine (Homebrew on macOS, Python 3.12, ffmpeg, then sdexe in its own private environment at ~/.sdexe). Safe to re-run.
macOS / Linux:
curl -fsSL https://sdexe.com/install.sh | bash
Windows (PowerShell):
irm https://sdexe.com/install.ps1 | iex
Already have Python 3.10+? Then just:
pip install sdexe
(Or into a venv of your choice. pipx works too.)
Update
sdexe update
Upgrades sdexe and its downloader engine in place. The Settings page has a button that does the same.
Requirements
- Python 3.10+ (the installer handles this)
- ffmpeg: installed by the installer; otherwise sdexe falls back to a bundled copy and offers to install the full one on first run
Usage
sdexe
Opens http://localhost:5001 in your browser. All processing happens locally.
Download from the terminal
sdexe download <url> [url ...] [format] [quality] [options]
Saves straight to the current folder, no browser or server needed. Built to be driven by scripts and AI agents as well as by hand: saved paths go to stdout, progress and errors to stderr, and the exit code is 0 only when every link saved.
| You type | You get |
|---|---|
sdexe download URL |
MP4, best stream up to 1080p60 |
sdexe download URL -mp3 |
MP3, 320 kbps |
sdexe download URL -a |
WAV (lossless) |
sdexe download URL --best |
Highest available video: 4K/8K, top fps and bitrate |
sdexe download URL -720p |
Up to 720p (-1080p30, -4k, -1440p also work) |
sdexe download URL1 URL2 URL3 -flac |
A batch, 3 at a time |
sdexe download URL --playlist |
Every video in a playlist or channel (--limit N for the first N) |
sdexe download URL --start 1:30 --end 2:00 |
Only that section |
sdexe download URL -o ~/Music/song.mp3 |
A specific folder or file name |
sdexe download URL --json |
One JSON document with paths, sizes, resolution, errors |
Formats: mp4, webm, mkv for video; wav, mp3, flac, m4a, opus for audio. Tags work as -mp3, --mp3, mp3 or -f mp3. Run sdexe download --help for everything.
Features
Media Downloader
Download videos and audio from YouTube, Instagram, TikTok, SoundCloud, Twitch, Vimeo, X, and 1000+ other sites.
- Formats: MP3 (128/192/320 kbps), MP4, FLAC, WAV
- Quality options: Best, 1080p, 720p, 480p for video
- Playlist and batch URL support (up to 3 concurrent downloads)
- Subtitle download for MP4
- Thumbnail embedded as album art
- Set a permanent output folder to skip manual saving
- Real-time progress with speed, ETA, and cancel button
- Desktop notifications when downloads finish
- Download history with re-fetch button
PDF Tools
- Merge: combine multiple PDFs, drag to reorder
- Split: split by page ranges (e.g.
1-3, 5, 8-10) or every page - Images to PDF: convert JPG/PNG/WebP images into a single PDF
- Compress: reduce file size by compressing content streams
- Extract Text: pull all text to a .txt file with page markers
- Password: add or remove PDF password protection
Image Tools
- Resize: by dimensions or percentage, with aspect ratio lock
- Compress: batch compression at High / Medium / Low quality
- Convert: convert between PNG, JPG, and WebP (batch supported)
File Converter
- Markdown → HTML: live preview + styled standalone HTML output
- CSV ↔ JSON: bidirectional, first row as headers
- JSON ↔ YAML: bidirectional
- CSV ↔ TSV: bidirectional
- XML → JSON
Development
git clone https://github.com/gedaliahs/sdexe.git
cd sdexe
python -m venv venv
source venv/bin/activate
pip install -e .
sdexe
Release files for sdexe 0.2.27
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sdexe-0.2.27.tar.gz | 230.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sdexe-0.2.27-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 474.9 kB
Release files / sdexe-0.2.27.tar.gz
| Download URL | sdexe-0.2.27.tar.gz |
|---|---|
| Size | 230.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
827aa2426dd4e9ebba54e75504f951d84049e92dcb9b42f782f4c851023b4eda
|
|
BLAKE2b-256 checksum How to use checksums |
8de8dcb4d09b379c73d63d51c0b8b3c7e7c87f345b75ed1074c92790a6bee549
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / sdexe-0.2.27-py3-none-any.whl
| Download URL | sdexe-0.2.27-py3-none-any.whl |
|---|---|
| Size | 244.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c04450096aeeff71397c3e5e06938ab9772f9104e16de9d83d3be2f98d28bb9
|
|
BLAKE2b-256 checksum How to use checksums |
29ea0cf097e4e14d06e0b091cee80cefc5e5776b007afa2d8be56978db1dadbf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|