Scripto docs
View as Markdown

Import from Medium

Bring your Medium history into Scripto with scripto articles import — point it at a single file, the posts/ folder, or the export root.

scripto articles import brings your existing Medium stories into Scripto, parsing each into Scripto’s semantic HTML — headings, code blocks, lists, and figures preserved with their original image URLs.

Get your Medium export

In Medium: Settings → Account → Download your information. The export is a zip; unzipped, each post is one HTML file under a posts/ folder.

Import

Point import at a single file, the posts/ folder, or the unzipped export root:

scripto articles import ./medium-export                 # batch: every story in the export
scripto articles import ./medium-export/posts           # just the posts folder
scripto articles import ./posts/2024-06-25_My-Story-abc123.html   # a single file

Preview first

scripto articles import ./medium-export --dry-run
  Would import 7 stories:
    • My first post
    • A deep dive on …
  Skipping 12 (responses/drafts).

A dry run touches the network for nothing — it just reports the plan.

What’s skipped, and how to include it

By default, Medium responses/comments and drafts are skipped. Override per run:

FlagEffect
--include-responsesAlso import responses/comments.
--include-draftsAlso import Medium drafts.
--publishPublish imported stories immediately (default: import as drafts).

Imports land as drafts with their original Medium publish date preserved on createdAt, so your library reads in chronological order. updatedAt is set to now, so a freshly imported story still surfaces at the top of the list. A Medium draft can’t be published on import (it never had a public date) — it stays a draft even with --publish.

After importing

Each imported story is a normal Scripto article — edit it section by section, refine the Brief, and re-publish. Because the original image URLs are already absolute (Medium-hosted), they render and re-import without re-hosting.

--publish mints a slug and goes live immediately for every non-draft story in the batch. Use --dry-run first to confirm the plan, especially on a large export.

Next