Hi @ngurah-bagus-trisna,
Thanks for picking up these unmaintained apps — keeping the ecosystem alive is valuable work.
MediaDC
Worth noting that Duplicate Finder exists and is actively maintained for exact duplicate detection. MediaDC’s scope is broader though — it uses computer vision to find near-duplicates in images and videos (visually similar but not byte-identical), which is a different and harder problem. So the overlap is real but not complete. If you’re updating MediaDC, it’s worth being clear in the description what it does that Duplicate Finder doesn’t, so users can make an informed choice.
NCDownloader
The update effort itself is legitimate — the app was in the App Store and simply went stale at NC31. Getting it running on current Nextcloud versions is a reasonable thing to do.
Two things worth thinking about carefully though:
The yt-dlp treadmill. yt-dlp is a constant cat-and-mouse game between platforms trying to block downloading and yt-dlp breaking through again. This means the app will require ongoing updates that have nothing to do with Nextcloud compatibility — you’re not just maintaining a Nextcloud app, you’re maintaining a dependency that can break any week without warning. That’s a significant commitment to take on.
The legal exposure for admins. Using yt-dlp privately on your own server is one thing — that’s your own risk and your own decision. But offering it as a Nextcloud app means admins install it and make it available to their users. At that point the admin is operating a platform that actively facilitates downloading copyrighted content. In Europe and the US this is well outside fair use and not treated as a minor offence — a cease-and-desist from a rights holder lands on the admin’s desk, not on yt-dlp’s. I can’t speak to Indonesian law specifically, but every admin deploying this should know their own jurisdiction before they do. Speaking from personal experience: I have received lawyer letters more than once simply because BitTorrent traffic was associated with an IP address assigned to me — not because I was the one downloading, just because the IP was mine. The law firms that send these letters on behalf of rights holders often don’t even need a full mandate to do so, and the letter itself always costs money to deal with, regardless of whether you’re ultimately in the right. An admin who exposes torrent functionality to their users is handing every one of those users a loaded gun that points back at the admin’s address.
The torrent side carries an additional risk that is often overlooked: BitTorrent doesn’t just download — it simultaneously uploads to other peers. Anyone running a torrent is by design also distributing the content, which is legally treated far more seriously than downloading alone in virtually every jurisdiction that has copyright law. The “Linux ISO” use case exists, but it’s a fig leaf — it’s not the realistic primary use case when someone points a torrent client at a magnet link from a well-known piracy index. Admins who expose this to users should go in with open eyes.
None of this is a reason not to update the app — it’s a reason to be honest in the documentation about what it does and what the legal implications are for admins who deploy it in a multi-user environment.
A note on AI-assisted development
You mention using AI to make these improvements, and I don’t reject that approach at all — everybody uses it. But it’s worth being clear-eyed about where it helps and where it doesn’t. The quality of the output depends far more on the developer than on the model. A weak developer with the best available model will still produce spaghetti code — it works, it passes basic tests, but it’s unmaintainable and nobody can reason about it six months later. A strong developer can build a clean, well-structured project with a mediocre model, or without one. The model amplifies what’s already there; it doesn’t substitute for understanding the codebase.
For that reason I always look critically at vibe-coded apps before recommending or installing them. Not to dismiss the effort, but because “it works on my machine” and “this is production-ready code that others can maintain and build on” are very different bars.
ernolf