Output Structure

Every Vesper Orbit scan produces a single self-contained folder. This page describes the folder layout, the manifest CSV, and the rules Orbit follows when naming downloaded files.

Folder Layout

By default, Orbit writes scans to ~/Downloads/. You can change the save folder with the Change folder link below the Start button. Each scan creates its own subfolder, named after the host plus a timestamp:

[chosen folder]/
  [host-with-dashes]-[YYYY-MM-DD-HHMM]/
    pdfs/
    images/
    audio/
    video/
    _manifest.csv

Concrete example, scanning archive.example.org at 2:30 PM on May 7, 2026:

~/Downloads/
  archive-example-org-2026-05-07-1430/
    pdfs/
      oral-history-jane-doe.pdf
      annual-report-1953.pdf
    images/
      archive-photo-1947.jpg
      campus-map-1962.png
    audio/
      interview-tape-12.mp3
    video/
      orientation-1968.mp4
    _manifest.csv

The timestamp ensures re-scans of the same site never overwrite prior captures - you can run Orbit weekly against the same domain and accumulate a clean history.

Organize by Site Structure

The Organize by control offers a second layout. Site structure keeps the same type folders and adds the path of the page each file was found on underneath them:

~/Downloads/archive-example-org-2026-05-07-1430/
  pdfs/
    about/board/
      board-minutes-2026-07-21.pdf
    collections/oral-histories/
      oral-history-jane-doe.pdf
  images/
    about/board/
      sarah-marsden.jpg
  _manifest.csv

The path follows the page the file was linked from, not where the server stores the file. That distinction matters: on a WordPress site every upload lives under /wp-content/uploads/2019/07/ and on Drupal under /sites/default/files/, neither of which tells you anything about the content. Files captured with no source page - when you point Orbit straight at a file URL - fall back to the file's own directory, and files from the site root land in _home/.

Filename Rules

Vesper Orbit preserves the original filename whenever the URL has one:

Collisions

When two URLs would land at the same local filename, Orbit appends a numeric suffix to avoid overwriting:

Nameless URLs

When a URL has no usable filename in its path - typical of CDN-hosted media with hashed paths or query-string-only identifiers - Orbit generates a short hash of the URL and uses it as the filename, preserving the extension:

The Manifest CSV

_manifest.csv at the root of every scan is the source of truth for what happened during that crawl. Open it in Excel, Numbers, or Google Sheets. The Save manifest CSV toggle on the idle screen turns it off if you do not want it; it is on by default.

Columns

ColumnDescription
source_urlThe URL Orbit attempted to fetch.
local_pathPath of the saved file relative to the scan folder, or empty if the file was not saved.
typeOne of pdfs, images, audio, video.
bytesFile size in bytes, or empty if not downloaded.
statusOne of ok, too_large, error, skipped_type.
source_pageThe page this file was found on.
page_titleThe title of that page.
link_textThe text of the link that pointed at the file, where there was one.
alt_textThe image's alt text. Empty when the image is marked decorative.
title_attrThe title attribute on the link or image.
figcaptionThe caption, when the file sits inside a <figure>.
aria_labelThe accessible label on the link or image.
content_dispositionThe filename the server declared, when it declared one. Often the real name behind a download handler URL.
original_filenameThe name taken from the URL, before any collision suffix.

Why the Context Columns Exist

Client sites are full of files named 0001_1.jpg and 1907.pdf. On their own those names tell you nothing, and the information that would identify them - the link text, the caption, the alt text, the page they sat on - is visible on the website and lost the moment the file is downloaded. These columns keep it.

Every one of them holds text that was literally attached to that file in the page's markup. Orbit does not guess: it will not take the nearest heading, or the surrounding paragraph, and call it a description. On a photo grid or a sidebar that kind of guess is wrong, and wrong in a way you would not notice. Nothing is renamed on disk from any of these columns either - your files keep the names the site gave them, and the manifest is what explains them.

Status Values Explained

Defaults Summary

SettingDefault
Save folder~/Downloads/
Scan scopeFull Site
Save manifest CSVON
Organize byMedia type
Max crawl depth8 (Single Page scans one page)
Max pages5,000 (Single Page scans one page)
Max file size100 MB
Media typesAll four ON
SubdomainsOFF
ExclusionsVesper Audit defaults

See Also