🙌
Zennのスクラップをマークダウンに変換するCLIツールを書いた
RustでZennの「スクラップ」機能でまとめたメモを一括でMarkdownファイルに変換するCLIツールを書いたので備忘録がてら使い方を説明します。
1. 機能
-
スクラップの取得:ZennのAPI(
/api/scraps/<slug>/blob.json
)からJSONを取得 -
画像記法の変換:Zenn特有の

を<img>
タグに自動変換 - 認証対応:Cookieを渡してログインが必要なスクラップも取得可能
- オプション:コメント見出し(著者+日時)の表示/非表示切り替えや、出力ファイル名の指定
-
水平線:メッセージ間に
---
を挿入して読みやすく整形
2. インストール
- リポジトリをクローン
git clone [https://github.com/ackkerman/zenn-scrap-to-md.git](https://github.com/ackkerman/zenn-scrap-to-md.git)
cd zenn-scrap-to-md
-
リリースビルド
cargo build --release
-
(任意)グローバルインストール
cargo install --path .
-
~/.cargo/bin
にインストールされるので、どこからでもzenn-scrap-to-md
コマンドが使えるようになる。 - アンインストールする場合:
cargo uninstall zenn-scrap-to-md
-
-
実行確認
$ zenn-scrap-to-md --help Fetch Zenn scrap and save as Markdown file Usage: zenn-scrap-to-md [OPTIONS] <URL> Arguments: <URL> Zenn scrap URL or slug (e.g. https://zenn.dev/xxx/scraps/your_slug) Options: -o, --output <OUTPUT> Output Markdown file path (defaults to `<slug>.md`) --cookie <COOKIE> Zenn session cookie, falls back to env ZENN_AUTH_COOKIE --skip-header Skip rendering comment headers (author and timestamp) -h, --help Print help -V, --version Print version
3. 使い方
基本コマンド
# スクラップURLを指定して <slug>.md を生成
zenn-scrap-to-md https://zenn.dev/youruser/scraps/your_slug
-
<slug>.md
にはタイトルをMarkdownの見出し (# タイトル
) とし、各コメントは順番に書き出されます。 - デフォルトではコメントごとに「著者 (日付)」が先頭に付き、メッセージ間に水平線
---
が入る。
出力ファイル名の指定
# my_notes.md に保存
zenn-scrap-to-md https://zenn.dev/... -o my_notes.md
コメントヘッダーをスキップ
# 著者&日付を表示せずに出力
zenn-scrap-to-md https://zenn.dev/... --skip-header
認証が必要なスクラップの取得
ログインが必要な非公開/アーカイブ済みスクラップもCookieを渡せば取得可能です。
# 直接 --cookie で渡す例
zenn-scrap-to-md https://zenn.dev/... --cookie "_zenn_session=…; remember_user_token=…"
# 環境変数に設定しておく例
export ZENN_AUTH_COOKIE="_zenn_session=…; remember_user_token=…"
zenn-scrap-to-md https://zenn.dev/...
例)
https://zenn.dev/moxak/scraps/d1a9bd5206a09c を保存してみる
$ zenn-scrap-to-md --cookie="_zenn_session=..." https://zenn.dev/moxak/scraps/d1a9bd5206a09c
---
Saved Markdown to 音声の局所的編集について(d1a9bd5206a09c).md
$ cat ./音声の局所的編集について(d1a9bd5206a09c).md
---
# 音声の局所的編集について
Original: [moxak/scraps/d1a9bd5206a09c](https://zenn.dev/moxak/scraps/d1a9bd5206a09c)
**moxak (2025-05-05)**
NotebookLMから出力された音声を聴くと、読み間違い(特に漢字に多い)が気になってしまう。
一度の生成にかかる時間は数分。インストラ...
4. オプション一覧
オプション | 説明 |
---|---|
-o, --output <path> |
出力先Markdownファイル(省略時は <slug>.md ) |
--cookie <cookie> |
Zennログイン用Cookie文字列 |
--skip-header |
コメント毎の「著者 (日付)」行を省略 |
-h, --help |
ヘルプメッセージを表示 |
-V, --version |
バージョン情報を表示 |
5. 開発&テスト
-
依存ライブラリ
-
reqwest
(HTTPクライアント) -
serde
(JSONデシリアライズ) -
clap
(CLIオプション解析) -
regex
(画像記法置換)
-
-
テスト実行
cargo test
6. 最後に
ご意見・バグ報告は Issues へお気軽にどうぞ。
Discussion