Importing Videos
Harvestry accepts local video files and URLs from YouTube, Vimeo, and over a thousand other video platforms.
Three Ways to Import
Every lecture in Harvestry starts with an import. There are three methods:
- Local file — Pick a video already on your Mac. No internet required. The file stays in its original location; Harvestry stores only the path.
- URL — Paste a YouTube, Vimeo, or other video URL. Harvestry downloads the video using yt-dlp (installed automatically) and saves it to
~/Library/Application Support/io.archetyp.Harvestry/downloads/. - Safari extension — While browsing a video page in Safari, click the Harvestry toolbar button to send the URL directly to the app with one tap. No copy-pasting required.
Importing a Local File
Click the + button at the top of the library sidebar, or use File → Import Video from the menu bar.
The Import sheet opens to the Video File tab by default.
Click Choose File to open the system file picker. Supported formats are .mp4, .mov, and .m4v. Select your file and click Open.
Supported Formats
The file import picker accepts the following extensions:
.mp4— MPEG-4 video. H.264, HEVC (H.265), and AV1 codecs are supported (AV1 is transcoded automatically)..mov— QuickTime Movie. H.264 and HEVC containers are fully supported..m4v— iTunes video format, essentially a DRM-free MPEG-4 container.
Importing from a URL
URL import supports YouTube, Vimeo, and over a thousand other sites via yt-dlp. Both yt-dlp and ffmpeg are installed automatically on first use — you do not need to install them via Homebrew or any other method.
Click the + button or use File → Import Video.
Click the URL tab in the Import sheet.
Paste the full video URL into the text field. Examples: https://www.youtube.com/watch?v=…, https://vimeo.com/….
Harvestry starts downloading the video. A progress bar appears in the Import sheet. Depending on video length and your connection speed, this may take from a few seconds to several minutes. The sheet dismisses automatically when the download completes and the lecture appears in the sidebar.
Videos Behind a Login Wall
Some videos require you to be signed in to download them — corporate learning platforms, university course portals, and similar sites. Harvestry can pass your browser's saved session cookies to yt-dlp so it can authenticate on your behalf.
Enabling cookie import
Click + or use File → Import Video, then click the URL tab.
Tick the Requires sign-in checkbox beneath the URL field. A browser picker appears.
Select the browser where you are already logged in to that site — Safari, Chrome, Firefox, Brave, or Edge. Harvestry passes the --cookies-from-browser flag to yt-dlp, which reads the browser's local cookie store without opening the browser.
The download proceeds as normal. If authentication succeeds, the video downloads and the lecture appears in the sidebar.
Importing with the Safari Extension
The Harvestry Safari extension lets you send a video URL to the app directly from your browser — no copying, no switching apps to paste. It works on YouTube, Vimeo, and most other supported video platforms.
Installing the Extension
In Safari, go to Safari → Settings → Extensions (or press ⌘, then click the Extensions tab).
Find Harvestry in the extensions list and tick the checkbox to enable it. The Harvestry toolbar icon will appear in your Safari toolbar.
The first time you use the extension, Safari may ask whether to allow Harvestry to read the current page. Allow it — the extension only reads the page URL and title to populate the import sheet.
Using the Extension
Open any video page in Safari — a YouTube lecture, a Vimeo talk, a course video, or any other supported site.
The extension popup appears, showing the video title if the page is recognised, or a generic "Try importing this page" prompt for less common sites. Click Import into Harvestry.
The app comes to the foreground and the Import sheet opens with the URL already populated in the URL tab. Review it and click Import to start the download and processing pipeline.
harvestry:// URL to communicate with the app. If Harvestry is not already open, macOS will launch it automatically before opening the import sheet.
What Happens After Import
Immediately after import — whether from a file or a URL — the following has happened:
- A new lecture entry appears in the library sidebar with a Ready status badge.
- The lecture's title is set from the video filename or the downloaded video's metadata title.
- No transcription or screenshot work has started. Processing is manual — you trigger it by clicking Begin Processing on the lecture detail view.
- For URL lectures, the original source URL is stored so Harvestry can detect duplicates and offer a re-download option if needed.
Duplicate Detection
Harvestry checks for duplicates at two points during import:
Before download (URL import)
If you paste a URL that matches a lecture already in your library, Harvestry shows a confirmation dialog before starting the download. Options:
- Open Existing — Dismiss the sheet and select the existing lecture in the sidebar.
- Re-download & Reprocess — Delete the old file, download fresh, and re-run the pipeline from scratch. Useful if the video was updated or the previous download was corrupted.
- Cancel — Do nothing.
After download (file path match)
If the downloaded or selected file path matches a lecture already in the library, the same dialog appears. Options are identical, but "Re-download" becomes Reprocess from Scratch since the file already exists.
Re-downloading a URL Lecture
If you previously imported a lecture via URL and want to download it again (for example, after the source was updated, or if the original download was a lower-quality version), you can re-download without deleting the lecture:
- Select the lecture in the sidebar.
- In the detail view, click the ⋯ menu or right-click the lecture row in the sidebar.
- Choose Redownload (this option only appears if the lecture has a stored source URL).
Harvestry passes --force-overwrites to yt-dlp, which discards any cached stream shards from the previous download and fetches a fresh copy. The lecture is then re-processed from the beginning.
Video Quality and Format
Harvestry instructs yt-dlp to prefer H.264 (AVC) video over VP9 or AV1. This is because AVAssetImageGenerator — the macOS API used for screenshot capture — cannot perform reliable random-access seeks on VP9 or AV1 content. If a site only offers VP9 or AV1, Harvestry automatically transcodes the downloaded file to H.264 before processing. You will see a "Converting video format…" progress indicator when this happens.