A desktop app to easily download media files hosted on popular websites.
Vinicius Egidio 109c0a369f
Some checks failed
docs / pages (push) Has been cancelled
test / test (push) Has been cancelled
chore: Update license to Apache 2.0
2025-12-10 22:13:40 +01:00
.github build: Add new playground command and update Go version to 1.25.4 2025-11-26 22:14:01 +01:00
.idea build: Add new playground command and update Go version to 1.25.4 2025-11-26 22:14:01 +01:00
.junie refactor: Update repository references and remove unused code related to outdated version checks 2025-09-18 16:40:33 +02:00
assets feat: Add custom Fetch to all extractors and update download logic 2025-10-12 11:28:10 +02:00
cmd build: Add new playground command and update Go version to 1.25.4 2025-11-26 22:14:01 +01:00
docs docs: Update list of supported extractors 2025-10-12 20:19:42 +02:00
internal build: Add new playground command and update Go version to 1.25.4 2025-11-26 22:14:01 +01:00
scripts ci: Add script to set the app version 2025-03-24 19:59:20 +01:00
tests test(Erome): Rename test filename 2025-11-26 22:21:03 +01:00
.editorconfig feat(GUI): Preserve the last directory selected for download 2024-12-27 19:00:43 +01:00
.gitignore build: Add new playground command and update Go version to 1.25.4 2025-11-26 22:14:01 +01:00
.release-it.json ci: Update the changelog generation format 2024-12-16 05:42:51 +01:00
biome.json feat(GUI): Redesign settings dialog with tabbed navigation and cookies configuration 2025-10-02 17:33:32 +02:00
export.go refactor: Add constants for extractors and improve cookie handling 2025-10-03 18:08:00 -03:00
external.go refactor: Optimize media processing pipeline with channel-based operations 2025-10-08 22:28:21 +02:00
go.mod feat(Erome): Add support for erome.com domain and include tests 2025-11-25 22:24:16 +01:00
go.sum feat(Erome): Add support for erome.com domain and include tests 2025-11-25 22:24:16 +01:00
go.work build: Add new playground command and update Go version to 1.25.4 2025-11-26 22:14:01 +01:00
go.work.sum feat(Erome): Add support for erome.com domain and include tests 2025-11-25 22:24:16 +01:00
LICENSE chore: Update license to Apache 2.0 2025-12-10 22:13:40 +01:00
mkdocs.yml docs: Add initial documentation and deployment workflow 2025-09-18 20:14:47 +02:00
README.md chore: Update license to Apache 2.0 2025-12-10 22:13:40 +01:00
Taskfile.yml refactor: Move cli and gui under the cmd directory 2025-11-26 20:20:16 +01:00
umd.go feat(Erome): Add support for erome.com domain and include tests 2025-11-25 22:24:16 +01:00

Universal Media Downloader (UMD)

Universal Media Downloader (UMD)
UMD is an app to easily download media files hosted on popular websites.
It supports the following sites:


🖼️ Usage

There are two ways to use this app: using the GUI or the CLI.

The GUI is the easiest way to use the app, with an intuitive interface that allows you to download media files with just a few clicks. The CLI is more advanced and allows you to download media files in a more automated way.

Both versions are available for Windows, macOS, and Linux. Download the latest release that matches your computer architecture and operating system and follow the instructions below:

GUI

UMD - GUI

  1. Enter a URL of the website where the media is hosted and then click on the Query button. If the URL belongs to a website supported by UMD, it will query the website and show the media files in the list below.
    • You can limit the number of files that will be queried by entering a number in the Limit field.
  2. Select the media files that you want to download by clicking on the checkbox next to the file name, or click on the checkboxes to automatically select all images and/or videos.
  3. Click on the directory field to select the directory where you want the files to be saved and then click on the Download button to start the download.

CLI

UMD - CLI

Run the command below in the terminal:

$ umd-dl -d ~/Downloads/UMD <url>

Where:

  • -d (optional): the directory where you want the files to be saved; default is the current directory.
  • -l (optional): the maximum number of files to download; default is 99.999 files.
  • <url> (mandatory): the URL of the website where the media is hosted (Attention: it's important that the URL is the last parameter).

For the full list of parameters, type umd-dl --help in the terminal.

💡 Features

Cached results

When you query the same URL multiple times, the app caches the results to speed up the process, as long as the files are saved in the same directory.

You can adjust the app settings to bypass the cache and always fetch fresh results.

Resume/skip previously downloaded files

When downloading files to the same directory, the app will automatically resume the files that were partially downloaded and skip those have already been fully downloaded.

This feature helps to avoid duplicate downloads, ensuring only new or previously failed files are downloaded.

Remove duplicates

This application will automatically delete all files that are identical.

💣 Troubleshooting

Download is not working or taking too long

Some websites, like Coomer/Kemono, use techniques to block tools from scraping their content. This includes slowing down the download speed or even blocking the IP address of the user.

Unfortunately, theres nothing UMD can do to improve this, so please be patient and allow the app to complete its work.

"App Is Damaged/Blocked..." (Windows & macOS only)

For a couple of years now, Microsoft and Apple have required developers to join their "Developer Program" to gain the pretentious status of an identified developer 😛.

Translating to non-BS language, this means that if youre not registered with them (i.e., paying the fee), you cant freely distribute Windows or macOS software. Apps from unidentified developers will display a message saying the app is damaged or blocked and cant be opened.

To bypass this, open the Terminal and run one of the commands below (depending on your operating system), replacing <path-to-app> with the correct path to where youve installed the app:

  • Windows: Unblock-File -Path <path-to-app>
  • macOS: xattr -d com.apple.quarantine <path-to-app>

🛠️ Build

Dependencies

In order to build this project you will need the following dependencies installed in your computer:

If you want to build the GUI you will also need:

Compiling

With all the dependencies installed, in the project's root folder run the command:

$ task <interface> os=<operating-system> arch=<architecture>

Where:

  • <interface>: can be cli or gui.
  • <operating-system>: can be windows, darwin (macOS), or linux.
  • <architecture>: can be amd64 or arm64.

For example, if I wanted to build a GUI version of the app for Windows, on architecture AMD64, I would run the command:

$ task gui os=windows arch=amd64

📈 Telemetry

This app collects information about the data that you're downloading to help me track bugs and improve the general stability of the software.

No identifiable information about you or your computer is tracked. But if you still want to stop the telemetry, you can do that by adding the flag --no-telemetry in the CLI tool.

📝 License

UMD is released under the Apache 2.0 License. See LICENSE for details.

👨🏾‍💻 Author

Vinicius Egidio (vinicius.io)