# MacYTDL: a Mac front-end for yt-dlp, written mostly in AppleScript

> MacYTDL is a macOS application that wraps the yt-dlp downloader in a dialog, and it is unusual because it is written mostly in AppleScript, developed in Script Debugger, and built around third party components it installs for you. It handles playlists, parallel batches, subtitles and metadata, and it adds a macOS Service that can pull a URL out of your clipboard or your browser and start a download without you opening a window.

**section83/MacYTDL** — A macOS GUI front-end for the YT-DLP video downloader

- Repository: https://github.com/section83/MacYTDL
- Stars: 1,055 · Forks: 46
- Language: AppleScript
- License: NOASSERTION
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/section83-macytdl

## A wrapper in AppleScript, not a reimplementation

MacYTDL is a utility which downloads videos using the yt-dlp video downloader script, and yt-dlp is able to download videos from a great many web sites. What MacYTDL adds is the shell around it: the installation of the dependencies, the dialogs, the options, the notifications and the logging.

The implementation is the surprising part. It runs on any Apple Mac with macOS 10.10 or later and has been developed mostly in AppleScript, in Script Debugger, which is a tool with a long history of AppleScript development. The README credits Shane Stanley for many contributions solving problems with MacYTDL, and for Dialog Toolkit Plus and Myriad Tables Lib, which provide the dialogs in the app, and it thanks Mark Alldritt and Shane Stanley for 30 years of dedication to Script Debugger.

There is a limitation that comes with the applet format and the README states it plainly. The code is not accessible from within the applet, however, text exports of the code are in the Code folder above and can be opened in Script Editor.

That is an honest trade to be aware of. The compiled applet is opaque, so if you want to read what the app does, you read the exported text, and the repository is arranged accordingly with a Code/ directory at the top level next to Components/, Images/ and Localisation/.

For distribution, MacYTDL itself and the disk image are code signed and notarized. Code signing ensures the app has not been altered after it was signed by the developer, and notarized apps and images have been scanned by Apple for known malware.

## The feature list, from parallel playlists to embedded subtitles

The features are listed in detail, and the density of them is the argument for using a front-end at all.

On the downloading side, you can download individual videos and playlists, and multiple videos can be run in separate processes, in one process sequentially, or in separate processes in parallel, with parallel downloading available for playlists, multiple downloads, batches and ABC iView in Australia. Individual downloads can be cancelled, and downloads can be paused and resumed, and by default an interrupted download is resumed if you pass the URL again.

On the configuration side, any custom settings can be passed through to yt-dlp, and the app exposes settings for the level of yt-dlp feedback, the download folder, the file format, the remuxing format, the download speed, a proxy URL, QuickTime compatibility and a custom file name template.

On the output side, it can download subtitles in a chosen format and language including auto-generated captions from YouTube, and optionally embed them, and it can download and optionally embed thumbnail images and metadata, and it can download or extract audio-only files, converting if necessary, and it can download a text description of the video when one is available, and it offers a choice from the list of available download files, the formats.

Two smaller features show the level of attention. A separate log file is retained for each download, which is what makes a failed download diagnosable, and a built-in uninstaller moves all components for all users to the Trash or Bin.

## The macOS Service is the feature nobody else has

The optional macOS Service is the item in the feature list that no other downloader front-end tends to have, and it is worth understanding on its own.

The Service gets the current text selection, the clipboard contents or the active web browser URL, switches to MacYTDL and pastes the URL of the video to be downloaded. The second half of the feature is stronger still: the Service can be set to automatically download from the URL of the current web page using the current settings, without showing the Main dialog.

That is a browser integration. You are on a page, you copy a link or you select a title, and the video downloads, with the settings you already configured and no window in the way. The cost is that a background download on a click is easy to trigger by accident, which is exactly why the second mode, the silent one, is the one to think about before enabling it.

Other small touches in the same list are worth noting. A notification is issued, through the Alerter project, when a download finishes, with the option to play the video, and there is a switch between the stable and nightly builds of yt-dlp, which is how you get a fix that has not been released yet, and a batch download mode, and a facility for choosing episodes of shows available on ABC iView.

The app also uses arm64 or x86_64 code according to the user's Mac, which matters more than it sounds on a machine that can run either.

## The macOS floor, and the localisation that lags behind it

The requirements section is where the constraints show, and they are not hidden.

An Apple Mac running macOS 10.10 Yosemite and higher is required. A future version of MacYTDL, perhaps v1.32, will be restricted to macOS 10.15 or later, and there are many limitations for users on versions of macOS prior to 10.15.

That 10.15 line appears again in the localisation feature, where switching between languages is supported in macOS 10.15 and later, and the README then adds a blunt sentence about the state of that work. Localisation is very out of date.

Four languages are currently available, Spanish, Italian, French and German, and the repository carries a Localisation/ directory to hold them. For a project that has shipped continuously since the 1.31 line, having the interface translated into four languages that have fallen behind the features is a real gap rather than a footnote, and it is the clearest signal in the README of where the maintenance effort has gone.

The other platform note is about the downloader itself. yt-dlp is the default for all Macs, and Python is supplied with the yt-dlp executable, but Homebrew and MacPorts installs can be used instead. The older youtube-dl can be used with all versions of macOS up to Monterey 12.2.1, but it has not been updated since December 2021 and is therefore out of date, so users on macOS 10.15 to 12.2.1 can switch between the two from within the app.

## Installing, updating and what the app does to your machine

The installation is a drag and a wait, and the waits are the point.

You download and open the disk image, click and drag MacYTDL to any location, best the Applications folder, and open it. When asked, you click Yes to install the various components and create a preferences folder. Then you wait, you provide administrator credentials when asked, and you wait again, because it can take time to download and install yt-dlp and FFmpeg. Then the main dialog is displayed.

So the first run needs administrator rights and network access, and it is installing executable tools onto your machine. That is why the disk image is code signed and notarized, and it is why the README says the key external components, yt-dlp, FFmpeg and Deno, are installed by MacYTDL.

Deno is the optional one, and the README is specific that it is optional but highly recommended for downloads from YouTube. That is a practical note: without it, YouTube downloads are more likely to fail, and the failure will look like a yt-dlp problem rather than a missing runtime.

Updating is the same ritual with one extra step. You download the new disk image, drag it over the old copy, open it, and the components such as the preferences file are updated as required. There is also a facility in the Utilities menu to download an update if a more recent one exists.

The uninstaller moves all components for all users to the Trash or Bin, and there is a PDF help file describing how to use all the features, which is where the details of the options live.

## Conclusion

MacYTDL fits a Mac user who wants a dialog instead of a command line, who wants yt-dlp installed and updated for them, and who wants the convenience features, the Service, the notification when a download finishes, and the log file per download. It does not fit a non-Apple machine, and it does not fit someone who wants a maintained modern codebase, since the localisation is described as very out of date and the whole thing is an applet. Verify three things before you rely on it: that your macOS version is one the app still supports, because the current floor is 10.10 and the localisation switching and several features need 10.15 or later, that you want the bundled components rather than your own Homebrew or MacPorts installs, since the app installs and updates yt-dlp and FFmpeg itself, and that you read the terms of the sites you are downloading from, because the tool inherits the reach of yt-dlp and that reach is your responsibility.

## FAQ

### What does MacYTDL add on top of yt-dlp?

It adds a Mac dialog, the installation and updating of yt-dlp, FFmpeg and optionally Deno, settings for format, remuxing, speed, proxy, QuickTime compatibility and file name templates, parallel and batch downloading, subtitle and thumbnail embedding, a notification when a download finishes, a log file per download, and a macOS Service that can start a download from the clipboard or the browser URL.

### Which macOS versions does MacYTDL support?

An Apple Mac running macOS 10.10 Yosemite or higher is required today, and the README says a future version, perhaps v1.32, will be restricted to macOS 10.15 or later, with many limitations for users before 10.15. Language switching in the localisation feature also needs macOS 10.15 or later.

### Do I need to install yt-dlp and FFmpeg separately?

No. MacYTDL installs them for you, and the app can update them later. The first run asks for administrator credentials and then downloads and installs yt-dlp and FFmpeg, which is why the first launch takes a while. Deno is a separate case, described as optional but highly recommended for downloads from YouTube, and it is installed by the app too.

### Can I use my own Homebrew or MacPorts install of yt-dlp?

Yes. yt-dlp is the default for all Macs and Python is supplied with the yt-dlp executable, but Homebrew and MacPorts installs can be used instead, with the detail in the Help file. You can also switch between the stable and nightly builds of yt-dlp from within the app, and between yt-dlp and the older youtube-dl on macOS 10.15 to 12.2.1.

### How do I report a problem with MacYTDL?

Through the GitHub issue tracker, or in Discussions, or by email to the address in the README. The project also keeps a separate log file for each download, which is what makes a failed download diagnosable, and a PDF help file describes all the features.

## Sources

- [Issues](https://github.com/section83/MacYTDL/issues)
- [README](https://github.com/section83/MacYTDL/blob/master/README.md)
- [Releases](https://github.com/section83/MacYTDL/releases)
- [section83/MacYTDL on GitHub](https://github.com/section83/MacYTDL)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/section83-macytdl
