playwright-notionlisted
Install: claude install-skill xtieume/testcase
# Playwright Notion
## Overview
Read Notion pages through a browser that is already logged in, by calling Notion's own internal web API from inside that browser tab.
Core principle: **do not scrape the DOM, and do not copy the browser profile.** Attach to a running browser over the Chrome DevTools Protocol (CDP), then call the same endpoints the Notion web app itself calls.
Read-only. The endpoints used only fetch data or produce a download; nothing in Notion is created, edited, or deleted.
## When to use
- No Notion API token available (company workspace, no integration allowed).
- UI Export is disabled/greyed out or absent because the account is read-only or guest.
- MCP Notion server is not an option; only browser access exists.
- A previous scrape returned garbage markdown: duplicated tables, doubled cells, sidebar links inside the body, lost properties.
- A Playwright/Puppeteer script keeps landing on Notion's login page even though the user is logged in normally.
**Do NOT use when** an API token or working MCP Notion connection exists — use those, they are simpler and supported.
## Two hard-won facts that dictate the approach
Skipping either one wastes an hour. Both were verified by failure on macOS.
**1. Copying the browser profile can never carry the session.** Chromium 127+ encrypts cookies with App-Bound Encryption: the key is bound to the original profile and the OS, not stored in the copied files. A copied profile shows `os_crypt: {}` in `Local State`, c