Internet Download Manager style downloader for Linux with floating capture buttons
Posted by matewinslet@reddit | linux | View on Reddit | 19 comments
Hey r/linux!
I’ve been working on a project called Linux Download Manager (LDM). If you’re like me and have been missing the seamless experience of tools like IDM since switching to Linux, I think you’ll appreciate this. It comes with a companion Firefox extension designed to integrate into your workflow without getting in your way.
Here is a quick look at what it can do for you:
- Ghost Interceptions: The Firefox extension catches your downloads completely silently. No annoying "Cancelled" popups from Firefox—the file just instantly hands off to LDM.
- Smart Video Downloading: It handles video URLs from YouTube, Facebook, Instagram, TikTok, and Facebook Gaming. You even get a clean quality and format picker right before you download.
- No More Right-Click Restrictions: It bypasses those annoying site scripts that lock down right-clicking, making it easy to grab video links directly.
- Automatic File Sorting: It cleans up your downloads directory by automatically sorting files into color-coded categories like Videos, Music, and Documents.
- The Essentials: Full pause/resume support, a real-time progress tracker, and a native dark/light theme toggle.
Check out the project here:
- Source Code:https://github.com/matewinslet/linux-downloader
- Firefox Extension:https://addons.mozilla.org/en-US/firefox/addon/49cdbb655b5d47a7bce3/
I have been testing it heavily on Zorin and Ubuntu, but I would love to get your feedback—especially from the data hoarders and heavy downloaders out there. Let me know what you think!

Banepa@reddit
From the contributors list, this seems to be vibe coded. That's may need a lot of convincing for users.
I've been using Persepolis, it's a wrapper around aria2 and was built to look like IDM.
https://github.com/persepolisdm/persepolis
abbidabbi@reddit
It is vibe coded. If there's a "Project structure" / "File structure" section in the readme, it's a 100% guarantee that it's AI slop.
On top of that, it's amateur hour, with Python bytecode cache files being committed, as well as the entire Python virtual environment, various Python wheels and Flatpak cache files.
matewinslet@reddit (OP)
I will clean things up, I focused solely on development that I did not have the chance to do so. As Steve Jobs said "you can only satisfy some people some of the time". Do give this "slop" a try, you will be surprised, instead of assuming I will be really glad if you provided an honest feedback after using it.
Dangerous-Report8517@reddit
"I rammed it out into the world so fast that I didn't have a chance to do any actual development" is pretty much the definition of slop
matewinslet@reddit (OP)
It's been 3 months and countless hours of refining, debugging, polishing. I don't understand this hate for a open source freeware. I would have accepted genuine criticism l, but seems like your goal is to just bash. You didn't even check the repo now, only the core code base remains. So the thing you are criticizing doesn't even exist.
Dangerous-Report8517@reddit
Because there's been a tsunami of AI generated slop that's drowning out any actually useful information and choking most open source communities with useless noise. Your top post is blatantly written with AI voice and formatting, implying that you used AI to at least heavily edit it and turning it into yet more of the same uniform LLM text flooding Reddit, and your responses include comments where you're explicitly saying you haven't had a chance to clean it up because you were too busy making new features. Regardless of if it's fully AI generated it has all the hallmarks of slop, which strictly speaking isn't exclusive to AI content, they've only become synonymous now that AI makes it so much easier to create large volumes of slop.
matewinslet@reddit (OP)
If you wanna hate it because it's ai generated, go ahead. I would have much preferred if you hated it because it didn't work, looked bad, x function did not work, etc etc. It's like hating a person just because he comes from a certain place, labelling him something, without ever interacting with him.
matewinslet@reddit (OP)
None of these alternatives have idm style capture buttons. For basic downloads you don't even need a download manager, where IDM shines is it lets you download videos where you normally can't. LDM does that as well. Please give this app a try, if enough of you find it useful, my hardwork will be paid off, it doesn't really matter if it is vibe coded or not, app quality will speak for itself. First give it a try at least, instead of writing it off.
Banepa@reddit
Persepolis does have browser plugins to pull downloads and also uses yt-dlp to download videos. It's not perfect but it's in active development under multiple developers.
It's nothing against your project, it's always hard to trust a new project.
matewinslet@reddit (OP)
App is open source, hosted on the most trusted platform. You can check for yourself if there is any malicious code in it. So there is 0 risk of giving it a try. Recently I switched from windows to Linux and IDM was the thing I missed the most, so I had to create it from scratch.
matewinslet@reddit (OP)
https://youtu.be/Z53nXu9--iY check out live demonstration of the app.
aloobhujiyaay@reddit
This actually scratches a real gap on Linux. A lot of people moving from Windows still miss the polished IDM-style workflow
Gloomy_Cicada1424@reddit
This is actually a very Linux-shaped problem lol. IDM muscle memory is real after switching. The UI looks clean too, but the big thing I’d want to know is how it handles weird edge cases: failed resumes, expired signed URLs, duplicate filenames, and sites that throttle chunks. If those are solid, this could be super useful for people who download a lot instead of just being another pretty wrapper.
matewinslet@reddit (OP)
Fair questions; here's what's actually happening under the hood:
Failed resumes: handled pretty solidly. It tracks bytes downloaded and sends
Range: bytes=X-on reconnect, picking up exactly where it left off. If the server returns 416 (range not satisfiable), it treats the file as already complete instead of corrupting it. It'll retry up to 60 times with a 5s delay between attempts, showing "Waiting for slot (retry N)" in the UI while it does.Expired signed URLs: partially handled. For HLS/stream downloads, if a direct stream URL 403s, it automatically retries using the original page URL to get a fresh session. For regular HTTP signed URLs (S3-style etc.), it flags the error cleanly but doesn't auto-refresh — there's no generic way to do that without site-specific logic.
Duplicate filenames: handled. It checks on-disk before writing and appends (1), (2), etc. It also re-runs that check after resolving Content-Disposition, so if the server hands back a different filename than what was expected at queue time, you don't get a silent overwrite.
Throttling: the retry loop handles connection drops from aggressive rate-limiters, but the backoff is a fixed 5s, not exponential. Works fine for most CDNs, but something really punishing might need more patience than it currently has.
Happy to hear if anything breaks in the wild — that's kind of how these edge cases get found.
BogaMoge@reddit
So can you explain these permissions before I attempt installing this :
Required permissions:
Optional permissions:
Data collection:
matewinslet@reddit (OP)
Good question — happy to break it down. The extension is open-source so you can verify every claim against the code at firefox-extension/ in the repo.
"Access your data for all websites" → host permission + content script This is the broad one and worth being honest about. It's needed for two things:
Injecting the "unlock right-click" content script on streaming sites (Facebook / Instagram / TikTok / etc.) — that script only runs when you click the extension button, not passively
Firefox shows this warning twice (required + optional) because of how MV3 splits host permissions. Same scope, two prompts.
TL;DR: it's a download manager + page-content unlocker, so it needs download control + per-site script injection. Both are auditable in the repo.
Sufficient-Dare-5270@reddit
tbh if you want that classic idm speed and multi threading on linux you should just look at motrix or flareget. motrix is completely open source and has a super clean modern interface that handles torrents and normal links seamlessly. if you prefer the terminal aria2 is the absolute goat for raw speed but motrix is the closest thing to that seamless desktop app experience fr
Moaradin@reddit
The main benefit of IDM to me was always being able to capture embedded stream links on browser, which those can't do iirc. Finding an IDM alternative since switching to Linux has been a struggle. AB Download Manager was the closest thing I found, but it still wasn't as good
matewinslet@reddit (OP)
Please give this app a try, I have tested this extensively for almost 3 months and refined it, debugged it, it should let you download from 90% of the streaming sites and social media out there. Now that I use it regularly, I don't feel like I am missing out on IDM. All the basic core functionality of IDM has kept here. If you feel like something is missing do let me know, I will try to add that.