Providers

Memento

MemGator's JSON TimeMap across several archives, kept outside providers.all() to avoid asking twice.
IDmemento10 / 13memgator.cs.odu.edu
Provider

Memento

  • providers.memento()
  • provider: "memento"
Index
MemGator TimeMap
Bodies
read raw
provider=all
left out

Operations

Access

LoadcreateArchive(providers.memento())
Needsnothing, no key or collection
Replaysource and text read here, the capture itself opens on the archive

Load it

ts
import { createArchive, providers } from "@agntn/archives";

const archive = createArchive(providers.memento());
const own = createArchive(providers.memento({ baseUrl: "https://memgator.example.org" }));

What it lists

snapshots reads memgator.cs.odu.edu/timemap/json/<url>, the public MemGator aggregator run by Old Dominion University. It replaced the discontinued Memento Time Travel service. Each memento becomes a page with _meta.archive set to the upstream host (archive.md, web.archive.org, arquivo.pt, …) and _meta.datetime as the TimeMap printed it. Captures dated years in the future are dropped as clock errors.

baseUrl points the provider at another aggregator that speaks MemGator's API.

Reading bodies

content() reads the selected memento URI directly, and falls back to MemGator's /memento/proxy/ endpoint when the archive does not answer. _meta.proxyFallback says which path served the body, and snapshot names the URL actually read.

Gotchas

  • Memento is not in providers.all(). MemGator already asks the Wayback Machine, Archive.today and others, so adding it to all would double the requests to those archives.
  • A diff between two Memento captures requires the same _meta.archive host. The aggregator label alone is not enough provenance.
  • Aggregation takes seconds; MemGator waits for slow upstreams.

Where it lives

src/providers/memento.ts.