Molo

One download queue,
on every device you own.

Find something on your phone. The file lands on the computer that actually has the disk and the bandwidth.

Free and MIT licensed. Windows and Android builds in the same release.

The gap it fills

Taken one platform at a time, this app has no reason to exist. The desktop has yt-dlp-gui and Open Video Downloader. Android has Seal and YTDLnis. Servers have MeTube. They are good, and rebuilding them would be a waste of everyone's time.

None of them share a queue. You find a two hour set on your phone, and the phone is the worst machine you own for downloading two gigabytes onto. Molo runs on the computer. The phone is another window onto the same queue.

If Android is the only device you care about, install Seal instead. It runs yt-dlp natively on the phone and does that job better than a remote client can. Molo earns its place once more than one device is involved.

What it does

Best quality without the flags

It picks the best video and audio the site offers and merges them into an MP4 that plays anywhere without re-encoding. There is a preset for the highest bitrate available if compatibility is not your problem.

It recovers by itself

A 403 halfway through a large file usually means the signed URL expired, not that you are locked out. Molo rotates the client, backs off, and resumes from the partial file rather than starting over.

The engine stays current

A stale yt-dlp is the most common reason a download stops working. Sites change and yt-dlp ships fixes every few days, so Molo checks at startup.

Copy a link, get an offer

Copy anything on the computer and Molo offers to take it. It offers rather than downloading, because grabbing everything you copy is a good way to fill a disk by accident.

Watch a channel

Point it at a channel or playlist and it queues what is new. The first pass only records what is already there, so adding a channel with 800 videos does not cost you 800 videos.

It survives a restart

The queue lives in SQLite. Close the app mid-download and the job picks up from its partial file when you reopen it.

What it will not do

There is no circumvention code in the repository. No CDM, no keys, no decryption routine. On an encrypted stream Molo fails, and it fails because that is a thing it cannot do rather than a thing it declines to do.

Reading a stream served in the clear gets past no protection. Breaking encryption is unlawful in itself under Article 6 of EU Directive 2001/29/EC and DMCA §1201, whatever you then do with the file. That distinction is the whole design, and it is the ground on which youtube-dl survived its 2020 takedown request.

The full reasoning, with the statutes cited.

Getting it

PlatformWhat you getFirst launch
macOSSigned ad hoc, Apple siliconRight-click, then Open
WindowsPortable, no installerMore info, then Run anyway
AndroidA client for the desktop queueAllow unknown sources

Nothing is signed with a paid certificate, which is why each platform asks once. Every build is produced in public by GitHub Actions from a tagged commit.

Or from source:

git clone https://github.com/nerln/molo && cd molo
python3 -m venv .venv && .venv/bin/pip install -e ".[desktop]"
.venv/bin/python -m molo

ffmpeg merges separate video and audio streams and is not bundled, because the common builds are GPL and Molo is MIT. Install it with brew install ffmpeg. Without it Molo runs but tops out around 720p.