Skip to main content

sb2n

PyPI Release Package CI

Helpfeel Cosense (Scrapbox) to Notion Migration Tool

Installation

pip install sb2n
# or, (use as CLI only)
pipx install sb2n

Usage

1. Set up environment variables

Create a .env file in your project directory. (See: .env.example)

2. Prepare Notion Database

Create a database in Notion with the following properties:

  • Title (Title) - Page title
  • Scrapbox URL (URL) - Link to original Scrapbox page
  • Created Date (Date) - Original creation date
  • Tags (Multi-select) - Tags from Scrapbox

Screenshot

3. Run migration

# Basic migration (using .env file)
sb2n migrate

# Specify custom .env file
sb2n migrate --env-file /path/to/.env

# Specify credentials directly via command line options
sb2n migrate -P your-project -S your-sid -N secret_token -D database-id

# Mix .env and options (options take precedence)
sb2n migrate --env-file .env -P override-project

# Dry run (no actual changes)
sb2n migrate --dry-run

# Migrate only first 10 pages
sb2n migrate -n 10

# Skip pages that already exist in Notion
sb2n migrate --skip

# Combine options: dry run with limit and skip existing
sb2n migrate --dry-run -n 5 --skip

# Enable verbose logging
sb2n -v migrate

Common Options (for all commands)

  • -P, --project: Scrapbox project name (overrides SCRAPBOX_PROJECT in .env)
  • -T, --pat: Scrapbox personal access token (overrides SCRAPBOX_PAT in .env)
  • -S, --sid: Scrapbox connect.sid cookie (overrides SCRAPBOX_COOKIE_CONNECT_SID in .env)
  • -N, --ntn: Notion integration token (overrides NOTION_API_KEY in .env)
  • -D, --db: Notion database ID (overrides NOTION_DATABASE_ID in .env)
  • --env-file: Path to .env file (default: .env)
  • -v, --verbose: Enable verbose logging

Note: When both .env and command line options are specified, command line options take precedence.

Note: Scrapbox authentication needs either a personal access token or a connect.sid cookie. The personal access token is recommended, and takes precedence when both are set.

4. Restore internal links

After migration, restore Scrapbox internal links ([PageName] format) to actual Notion page mentions:

# Restore links in all pages
sb2n restore-link

# Dry run (preview changes without applying)
sb2n restore-link --dry-run

# Restore links in specific pages only
sb2n restore-link --pages "HomePage,Getting Started"

# Enable verbose logging
sb2n -v restore-link

Appendix 1. Export as Markdown with images

Export Scrapbox pages to Markdown format with downloaded images. Images are saved in an assets/ directory and referenced with relative paths in the Markdown files.

# Export to default directory (./out)
sb2n export

# Specify output directory
sb2n export -d /path/to/output

# Limit number of pages to export
sb2n export --limit 10

# Combine options
sb2n export -d ./my-export --limit 5

# Export as plain Scrapbox format
sb2n export --f txt

# Enable verbose logging
sb2n -v export

Structure of extracted data

output-dir/project-name/
├── assets/              # Downloaded images
│   ├── abc123def456.png
│   ├── 789ghijk012.jpg
│   └── ...
├── page1.md            # Markdown files
├── page2.md
└── ...

Development

See docs/specification.md for detailed specifications.

License

MIT License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sb2n-0.4.0.tar.gz (39.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sb2n-0.4.0-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file sb2n-0.4.0.tar.gz.

File metadata

  • Download URL: sb2n-0.4.0.tar.gz
  • Upload date:
  • Size: 39.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sb2n-0.4.0.tar.gz
Algorithm Hash digest
SHA256 a48b7c4d152f432f6c5a33d754bdda65a326eb973d9829ee772753feed00285e
MD5 0d16a6de1ed4a851ae4990def4755cf1
BLAKE2b-256 d366c9f56f97bc519401f4cbf6049f09494d6930da0461816b1bfb5158800637

See more details on using hashes here.

File details

Details for the file sb2n-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: sb2n-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sb2n-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 896b5b1f7926997e8e04c6e54803dc5e196415673314d0e142761e41dd470db3
MD5 8a9f5f9cbd725a376bf581bd7bc2e7c2
BLAKE2b-256 ba3ef0801cc781ccbfc825fd7d4c3819bdc97f6f2f107521de126b9ea4806169

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.0

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

0.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page