Features

Everything Taped does.

One group at a time, in the order you will meet them. Nothing here needs an account, a plug-in or a terminal. The terminal is there if you want it.

Capture

Getting a link in should take one gesture.

Taped lives in the menubar and waits. Paste, press a key, share, drag, or write a file into a folder from your phone, whichever is closest to hand. Every route lands in the same queue with the same options.

The popover

Click the cassette in the menubar. Paste a link, pick Best, 1080p, 720p or Audio, watch the progress bar. The queue pauses, resumes and retries; history is searchable; Show in Finder is one click. Pin it to keep it open while a batch runs. The icon itself shows progress, so you can close the popover and glance up.

The menubar popover with a link field, quality buttons and the queue The menubar popover in dark mode
The Quick Capture panel showing a video's thumbnail, title, channel, duration and quality buttons The Quick Capture panel in dark mode

Quick Capture, ⌥⇧D

Press it in any app. If the clipboard holds a link, the panel is already filled in: title, channel, duration, and only the qualities the site really offers. ⌘⏎ downloads and the panel disappears. More opens the per-video options.

  • Change the hotkey in Settings → General
  • Works whether Taped is a menubar app or a Dock app
  • Esc closes without doing anything

Share menu and Services

“Tape it” sits in the macOS Share menu: Safari’s share button, Mail, Notes, anywhere a Share button exists. Select a link in any app and the Services menu offers “Tape it” (download with your defaults) and “Tape it with options…” (opens Quick Capture). Both can be given a system-wide key in System Settings → Keyboard.

Browser extensionsA “Tape it” toolbar button with a quality picker, “Tape it” on any link’s context menu, and ⌥⇧T for the current tab. Pick videos… appears on playlist and channel pages. Safari ships inside the app; Chrome, Edge and Firefox load from the repository. No host permissions, no network access: the extension only opens a taped:// link.
RaycastTape it from the Raycast bar, see the queue with live progress, check or download your playlists, and keep a menu-bar status item, all reading the app’s status.json, so it costs nothing while idle.
Drag onto the iconDrag a link from a browser onto the menubar cassette, the popover or the Library window. A playlist link opens the picker.
Inbox folderTaped watches iCloud Drive → Taped Inbox (or any folder you choose). Text, Markdown, .url and .webloc files are read for links, queued, and moved to Done/. Save a file there from an iPhone Shortcut and the Mac at home downloads it. A first line of profile: Podcast picks a profile for every link in the file.
Clipboard watchingOpen the popover or Quick Capture with a link on the clipboard and it is already in the field. Nothing is read while Taped is closed.
Batch pastePaste several links at once, one per line, into the popover or the Library’s Add sheet and each becomes its own row with its own quality.
Quality

The best the site has, in a file that plays.

Taped asks the site what it actually offers and shows only that. The default is a file QuickTime, Finder previews and an iPhone can all open; the original streams are one switch away.

Presets and containers

Best, 2160p, 1440p, 1080p, 720p, 480p, 360p, and M4A, MP3 or Opus for audio-only. The container is MP4, MKV, WebM or whatever the site sends. The default lives in Settings → Quality; every capture can override it for one video.

  • Presets that the site cannot supply are greyed out, not hidden
  • Audio-only downloads skip the video streams entirely, so they are small and fast
AV1 · 3840×2160 source stream won’t play
VideoToolbox
H.264 · 3840×2160 MP4 on disk plays in QuickTime
Settings, Quality: default quality and container, the Mac-compatible switch and the Profiles list with Podcast, Archive and Watch on Mac Settings, Quality in dark mode with the Profiles list

Mac-compatible

On by default. Taped keeps the best resolution and delivers H.264/AAC in an MP4. It re-encodes only when the source has no compatible stream (YouTube above 1080p is usually VP9 or AV1), and it does that with VideoToolbox, on the media engine, so a 4K hour takes minutes and the fans stay quiet. Switch it off and you get the original streams untouched, in an MKV if they need one.

Profiles

A profile bundles a quality, a container and a subfolder under a name. Three come set up: Podcast, Archive and Watch on Mac. You can add your own. Pick one in Quick Capture → More, on a playlist, in the browser extension, with --profile on the command line or &profile= in a URL.

Clip from–toType 1:20–2:05 and only that part is fetched and cut. No full download first.
Subtitles and captionsDownload the languages the site offers, or its auto-captions. Embed them in the file, keep the .vtt next to it, or both.
Metadata, thumbnails, chaptersTitle, channel, description and date are written into the file; the thumbnail becomes cover art; chapters show up in QuickTime and IINA. Each is a switch in Settings → Extras.
Library

A window for the big jobs.

The popover is for one link. The Library is for forty: a proper table with a sidebar, an inspector and keyboard shortcuts. Open it from the popover, the menubar menu, taped://library, or make it the main window by turning the menubar icon off.

Queue and history

Every download is a row: title, channel, quality, size, speed, state. Sort by any column, select several and pause, resume, retry or remove them together. Finished tapes move to History, which is searchable and exportable as CSV. Rows that failed say why, and offer “Try updating yt-dlp” when that is the likely fix.

  • ⌘N add · ⌘F search · ⌘I inspector · ⌘⏎ download
  • Drop links anywhere on the window
  • Right-click for Show in Finder, Copy URL, Open on site
The Library queue with several downloads running, each with progress, speed and time remaining The Library queue in dark mode with downloads in progress
The Library window with the inspector open on the right, showing a tape's quality, container, subtitle and folder options The Library window in dark mode with the inspector open

The inspector

Select a queued row and change its quality, container, subtitles, clip or folder before it starts. Select a playlist and the same panel holds its schedule, profile, subfolder, script and how many to keep. Select a finished tape and you get its file, its source and its log.

The Add sheet

Paste a playlist or a channel link and the sheet lists every video with a checkbox and its own quality menu. Videos you already have are marked and unticked. Tick what you want, press ⌘⏎, and they join the queue in order.

The Add to Queue sheet listing a playlist's videos with checkboxes and per-video quality menus The Add to Queue sheet in dark mode
The Storage view: space used by Taped, free space on the volume, a per-folder breakdown and a Clean up control The Storage view in dark mode

Storage

How much the tapes weigh, folder by folder, and how much room is left on the volume. Each folder says what filled it: a playlist, a profile, a site. One control moves tapes older than a chosen age to the Trash, with their sidecars. Only files Taped downloaded and still knows about are ever touched.

Playlists & subscriptions

Save a playlist once. Let it keep itself.

A saved playlist is a bookmark Taped can re-check. Give it a schedule and it becomes a subscription: new videos are found and queued, and if you want, the old ones are cleared out, so a channel takes a fixed amount of disk forever.

Scheduled checksEvery hour, every few hours, daily, weekly, or only when Taped launches. A master switch in Settings → Automation turns all of them off; Check All Now runs them on demand.
Auto-downloadQueue what is new automatically, or just count it and show a badge on the playlist so you can pick by hand.
Rolling archiveKeep the newest 3, 5, 10, 20 or 50. Older downloads from that subscription move to the Trash with their .nfo, poster and subtitle files. Nothing downloaded from anywhere else is touched.
Per-playlist subfolderEach subscription can land in its own folder, so a channel stays together.
Per-playlist profileA lecture series as 720p MP4, a music channel as M4A. The profile is set on the playlist, not the app.
Per-playlist scriptRun a different after-download script for this playlist than for everything else, with the same $TAPED_… variables.

watch?v=…&list=… links download just that video unless you choose “Whole playlist”. Already-saved videos are skipped in every check.

Automation

Three surfaces, and a script when a file lands.

Everything outside the app (extensions, Raycast, Shortcuts, your own scripts) talks to Taped through a command line, a URL scheme and a status file. They are versioned with the app and documented on the Support page.

The taped command line

taped get is standalone: it downloads and converts with the bundled engine, prints progress, exits when the file is done, and records the result in History next time the app runs. taped add queues links in the running app; status, playlists, profiles, update and version do what they say. --json everywhere, for scripts.

  • Install with one click from Settings → Automation, or from the Homebrew cask
  • Exit codes you can branch on: 0 ok, 1 failed, 2 usage, 3 app not reachable
Settings, Automation: Shortcuts actions, the Share and Services entries, the URL scheme, the command line tool installer, the inbox folder, download hours and the after-download script Settings, Automation in dark mode

URL scheme and x-callback

taped://download?url=… queues a video; add &preset=p1080 or &profile=Podcast. &x-success= and &x-error= are opened when the download ends, with the file path or the error appended, so Shortcuts, Alfred, Keyboard Maestro and Raycast can wait for the result. batch, capture, library, settings and playlists open the matching part of the app.

Shortcuts actionsDownload Video, Get Video Info, Download Link on Clipboard, Show Quick Capture, Check Subscriptions and Get Queue Status, for Shortcuts, Automator and Focus automations. Download Video takes a URL, a quality and a “whole playlist” switch.
After-download scriptAny script you point at runs when a file lands, with $TAPED_FILE, $TAPED_TITLE, $TAPED_CHANNEL, $TAPED_ID, $TAPED_DURATION, $TAPED_QUALITY and $TAPED_URL in the environment. Move it, tag it, tell a media server. A failing script is logged and never marks the download as failed.
Download hoursOnly download between two times of day. Queued tapes wait for the window; anything already running finishes. For metered or shared connections; the per-download rate limit is under Network.
Disk floorKeep at least a chosen amount free. When the volume gets close, downloads hold instead of filling it, and resume when there is room again.
BatteryOptionally pause below a battery level you pick, and resume on power. Downloads you paused yourself stay paused.
Metered connectionsPause on personal hotspots and Low Data Mode, resume on Wi-Fi. A banner in the popover says why the queue is waiting.
Media servers

A downloads folder Plex can scan as-is.

Turn on a media server layout in Settings → Files and Taped names files and folders the way scanners expect, and writes the sidecars they read. Point Plex, Jellyfin, Emby or Infuse at the folder; nothing to import, nothing to rename.

Two layouts

Channel folders makes one folder per channel with dated file names, scanned as “Other Videos” in Plex and “Home Videos” in Jellyfin. Show and season turns each channel into a show, each year into a season and each upload date into an episode (s2026e0313), which every scanner understands; a tvshow.nfo is written once per channel.

  • .nfo sidecars with title, description, date and channel
  • The thumbnail kept as -thumb.jpg poster
  • Subscriptions’ rolling archive removes the sidecars with the file
Privacy & updates

Nothing leaves your Mac that you did not ask to send.

No account, no analytics, no telemetry. The only network traffic is to the site you are downloading from and two update checks a day. The full list is short.

Signed, notarized, open

Taped is signed with a Developer ID, notarized by Apple and runs under Hardened Runtime. It is not sandboxed, because it runs yt-dlp and FFmpeg as child processes, which is also why it is not on the App Store. The source is MIT-licensed.

  • yt-dlp updates itself once a day, stable or nightly channel
  • The app updates through Sparkle, with signed appcasts served from this site
  • Browser cookies, if you turn them on, are read locally and sent only to the site they belong to
  • DRM-protected streams are refused, by design
The welcome tour window: the cassette icon and the first of six steps explaining the menubar icon, with Next and Skip buttons The welcome tour window in dark mode

Record it so you can keep it.

Download for Mac Apple silicon
Intel build · macOS 14+ · version 1.0.0