{"id":28799715,"url":"https://github.com/zblauser/lomux","last_synced_at":"2026-05-18T06:38:51.532Z","repository":{"id":296664520,"uuid":"994077620","full_name":"zblauser/LoMux","owner":"zblauser","description":"A lightweight cross-platform GUI solution to FFmpeg.","archived":false,"fork":false,"pushed_at":"2025-06-02T02:08:29.000Z","size":80116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-18T07:01:43.782Z","etag":null,"topics":["audio","audio-processing","conversion","conversion-tool","converter","ffmpeg","ffmpeg-gui","ffmpeg-python","ffmpeg-wrapper","python","video-processing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zblauser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-01T06:35:21.000Z","updated_at":"2025-06-02T02:08:32.000Z","dependencies_parsed_at":"2025-06-01T16:06:31.892Z","dependency_job_id":null,"html_url":"https://github.com/zblauser/LoMux","commit_stats":null,"previous_names":["zblauser/lomux"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/zblauser/LoMux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zblauser%2FLoMux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zblauser%2FLoMux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zblauser%2FLoMux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zblauser%2FLoMux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zblauser","download_url":"https://codeload.github.com/zblauser/LoMux/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zblauser%2FLoMux/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260506988,"owners_count":23019449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-processing","conversion","conversion-tool","converter","ffmpeg","ffmpeg-gui","ffmpeg-python","ffmpeg-wrapper","python","video-processing"],"created_at":"2025-06-18T07:00:26.214Z","updated_at":"2026-05-18T06:38:51.526Z","avatar_url":"https://github.com/zblauser.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LoMux\n\nA super lightweight media converter and YouTube downloader that just works. Written in Rust for no reason in particular. (C would've been fine, but here we are, oxidizing perfectly fine Python code.)\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"./assets/lomux.jpg\" alt=\"LoMux\" width=\"600\" /\u003e\u003c/p\u003e\n\nThink Adobe Media Encoder, but free, fast, and under 5MB. No login screen, no Creative Cloud daemon eating your RAM at 3am, no subscription that costs more than your Spotify. Just drag, pick, convert.\n\n## Features\n\nLoMux wraps FFmpeg (and optionally yt-dlp) in a clean native GUI with everything a musician, content creator, or anyone who touches media files actually needs:\n\n**Encoding Presets** — YouTube 1080p/4K, Instagram Feed/Reels, TikTok, Twitter/X, Discord (under 25MB), ProRes 422, DNxHD, plus audio formats like MP3, FLAC, AAC, Opus, WAV. Or go full custom with codec/container/bitrate/CRF control.\n\n**YouTube Integration** — Paste a URL, pick a quality, hit add. Downloads and converts in one pipeline. Temp files clean themselves up.\n\n**Metadata Editing** — Per-file or batch. Title, artist, album, year, genre, track. Smart filename parsing (`Artist - Title.mp3` → fills both fields). Copy metadata across your entire queue with one click.\n\n**Theme System** — Six curated themes (Studio Dark, Midnight, Warm Dark, Emerald, Clean Light, Cream) plus a full editor for accent color, background, rounding, and dark/light mode. Make it yours.\n\n**Batch Processing** — Queue up as many files as you want. Real-time progress. Cancel mid-batch without losing what's already done.\n\n**Drag \u0026 Drop** — Drop files directly onto the window. Because it's not 2005.\n\n**Tiny Binary** — 3-5MB vs Electron apps that need 200MB to display a button.\n\n## Install\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003emacOS (Homebrew)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nbrew tap zblauser/tap\nbrew install lomux\n```\nThis also installs FFmpeg as a dependency.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003emacOS (Binary)\u003c/b\u003e\u003c/summary\u003e\n\nDownload from [Releases](https://github.com/zblauser/LoMux/releases). First launch: right-click → Open to bypass Gatekeeper.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eLinux (.deb)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# Download the .deb from Releases, then:\nsudo dpkg -i lomux_*.deb\nsudo apt-get install -f  # resolve dependencies if needed\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eLinux (Arch/AUR)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n# Using an AUR helper like yay:\nyay -S lomux\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eLinux (Binary)\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ntar xzf lomux-linux-x64.tar.gz\nchmod +x lomux\n./lomux\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eWindows\u003c/b\u003e\u003c/summary\u003e\n\nDownload `lomux-windows-x64.zip` from [Releases](https://github.com/zblauser/LoMux/releases). Extract. Run `lomux.exe`.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eBuild from Source\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/zblauser/LoMux.git\ncd LoMux\ncargo build --release\n./target/release/lomux\n```\n\u003c/details\u003e\n\n## Requirements\n\n- **[FFmpeg](https://ffmpeg.org/download.html)** — required. The real MVP.\n- **[yt-dlp](https://github.com/yt-dlp/yt-dlp)** — optional, needed for YouTube downloads.\n\nQuick install:\n```bash\n# macOS\nbrew install ffmpeg yt-dlp\n\n# Debian/Ubuntu\nsudo apt install ffmpeg \u0026\u0026 pip install yt-dlp\n\n# Arch\nsudo pacman -S ffmpeg yt-dlp\n\n# Windows (Chocolatey)\nchoco install ffmpeg yt-dlp\n```\n\n## Why Not Just Use FFmpeg?\n\nBecause `ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -movflags +faststart -c:a aac -b:a 192k output.mp4` is a lot to type when you just want to convert a video. I read the documentation so you don't have to.\n\n## Why Rust?\n\nNo certain reason, I was bored. You're getting free conversion software. Could've written this in C? Sure, and maybe I should have. Did I? No. Will it matter to you? Probably not. The binary is small, it's fast, it doesn't crash, and it doesn't need a runtime.\n\n## Changelog\n\n### v1.1.0 (Current)\n- Theme system with 6 curated themes + custom editor\n- Drag \u0026 drop file support\n- Cancel/stop processing (actually works now)\n- New presets: Instagram Reels, Twitter/X, Discord, Web GIF, Apple TV 4K, Chromecast, Archive H.265, Opus, WAV, Remux\n- Fixed FFmpeg progress tracking (was reading wrong pipe)\n- Fixed extra arguments not being passed to FFmpeg\n- Output file conflict handling (no more silent overwrites)\n- Homebrew tap, .deb package, AUR support\n- Cleaner UI with accent-colored interactive elements\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003ePrevious Versions\u003c/b\u003e\u003c/summary\u003e\n\n**v1.0.2**\n- YouTube integration with format selection\n- Metadata editing system (per-file and batch)\n- Adobe-style encoding presets\n- Dark/light theme toggle\n- Tool detection improvements\n\n**v1.0.1**\n- Complete rewrite from Python to Rust\n- Binary went from 50MB to 3MB\n- Native speed, responsive UI\n\n**v1.0.0**\n- Original Python/Tkinter version\n- Worked fine but built like a potato\n- [Still available](https://github.com/zblauser/LoMux/tree/v1.0.0)\n\u003c/details\u003e\n\n## Roadmap\n- WASM web build (host on GitHub Pages, convert in-browser via ffmpeg.wasm)\n- Apple Developer ID signing + notarization\n- More presets (Twitch, Vimeo, podcast formats)\n- Preset import/export\n- Queue reordering\n\n## Contributing\n\nIf you share the belief that simplicity empowers creativity, feel free to contribute. Fork, PR, bug report, feature request — all welcome. Ensure your code follows the existing style (tabs, minimal comments, blank lines stay blank). Complaints go to `/dev/null`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzblauser%2Flomux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzblauser%2Flomux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzblauser%2Flomux/lists"}