WordPressからNoteへ自動移行ツール完全ガイド

WordPressからNoteへ自動移行ツール【完全ガイド】設定・実行手順・トラブル対処

WordPressで長年書いてきた記事、移行を始めたはいいものの手作業で気力が持たず断念しかけた――そんな経験はありませんか。私も200本以上の記事を前にして「これを手で移すのは無理だ」と直感しました。衝動的に始めては飽き、気づけばハイパーフォーカスで数時間コマンドを書き続けることも。ADHD的な特性(決断疲れ、実行機能の弱さ、衝動的な作業開始)が混ざると、単純作業はとにかく苦痛です。そこで作ったのが「WordPressからNoteへ自動移行ツール」です。本記事では、なぜ作ったか、何ができるか、仕組み、環境、使い方(STEP0~7)、トラブル対応まで、現場目線で丁寧に解説します。エンジニアが使うことを前提に、実例と判断基準も交えてお伝えします。

なぜ作ったか — 感情と実務の両面から

単純に時間が足りなかった、というのが最初の動機です。1記事をNoteに移す作業は次のような手順が必要で、これを200回繰り返すと単純作業だけで数十時間になります。

  • WordPress管理画面で記事をコピー
  • Noteエディタで貼り付け、タイトル入力
  • アイキャッチ画像をダウンロードしてアップロード
  • ハッシュタグ設定、公開設定

この繰り返しはADHDの「実行が続かない」「決断疲れ」を加速させます。私はまず少数を手で移してみて、すぐに挫折しました。そこで「自動化すれば衝動で始めても、途中で止まっても再開できるはず」と考え、短いハイパーフォーカスタイムを利用して開発を始めました。

「これは絶対に自動化できるはずだ」と思い、このツールを作り始めました。

結果として、**200記事の移行がコマンド操作3回で完了**するツールができあがりました。

例えば、手作業で1記事5分かかると仮定すると、200記事で約16〜17時間。ツール化でこの時間が数十分に短縮されます。

実現できること(概要)

次の目的を自動化します。まずは目的をはっきりさせ、どこまで自分で確認すべきかを判断してください。以下は「何が自動化されるか」を一覧にしたものです。

このツールで自動化できること

  • WordPressから記事データの一括取得(テキストファイル化)
  • Noteへの自動ログインと記事の自動入力
  • タイトル・本文・ハッシュタグの自動設定
  • 下書き保存または即時公開の選択
  • 下書きから一括公開
  • WordPressのアイキャッチ画像をNoteへ自動アップロード
  • 途中で止まっても、止まった場所から再開可能

実務的な判断例

最初は必ず NOTE_PUBLISH_MODEdraft にして、数記事を確認してから一括公開するのがおすすめです。これにより、衝動的に全公開してしまうリスクを防げます。

どんな仕組みか(アーキテクチャ)

ツールは4つのステップに分かれ、順に実行します。技術的にはNode.jsで書かれ、ブラウザ自動操作にはPlaywrightを使用しています。人がブラウザでクリックや入力する代わりにプログラムが同じ操作を再現します。

このツールは4つの部品に分かれていて、順番に実行していきます。

  1. STEP 1:WordPress記事の取り出し
  2. STEP 2:Noteへの自動投稿
  3. STEP 3:下書きの一括公開
  4. STEP 4:アイキャッチ画像の設定

STEP 1:WordPress記事の取り出し

WordPressのAPIを通じて記事データをすべて取り出し、テキストファイルに変換して保存します。

STEP 2:Noteへの自動投稿

ブラウザを自動で操作して、テキストファイルを1件ずつNoteのエディタに入力して保存します。

STEP 3:下書きの一括公開

Noteの下書き一覧を自動で開き、ハッシュタグを設定してから順番に公開していきます。

STEP 4:アイキャッチ画像の設定

WordPressのアイキャッチ画像をダウンロードしてNoteの各記事にアップロードします。

エンジニア向け実例

途中で停止した場合は progress ファイル(note-post-progress.txt)に処理済み番号が保存されるため、startFrom にその番号を入れて再開できます。これは「シンプルなチェックポイント」を導入した設計決定で、開発時に何度も助けられました。

動作環境とソース

このツールは以下の環境で動作確認済みです。

  • macOS 12 以上(推奨)
  • Windows 10 / 11

ソースコードはGitHubで公開しています。自由にクローンしてカスタマイズしてください。

使い方:STEP 0〜7(実行手順)

ここからは実際に使う手順を順番に説明します。エンジニアとしては「まず環境整備→検証→本番」の流れを守ると精神的負担が減ります。

STEP 0:Node.jsをインストールする

まずターミナルでバージョン確認します。

node -v

例:v22.0.0 のように表示されればOK。未インストールなら公式サイトからインストーラーを入手してください。

Node.js ??? Run JavaScript Everywhere
Node.js?? is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web...

実例

私の環境では v18 と v22 を切り替える必要があったため、nvm を使ってバージョン管理しました。ADHDの「切り替えの衝動」が出やすい方は1つの安定バージョンに固定するのが楽です。

STEP 1:ツールをダウンロードする

GitHubからZIPでダウンロード、または git clone で取得します。

git clone https://github.com/atueda/NoteWordpress.git

STEP 2:フォルダを開く

ターミナルでツールのフォルダへ移動します。

cd ~/Downloads/wp-to-note

STEP 3:必要なソフトをインストールする

初回のみ実行します。

npm install
npx playwright install chromium

これで依存パッケージとChromiumがインストールされます。

  • npm install:ツールが動くための部品を揃えます
  • npx playwright install chromium:ブラウザ自動操作に使うChromiumをインストールします

STEP 4:設定ファイルを作成する

プロジェクトフォルダに .env を作成し、以下を記述します(例は抜粋)。

# WordPress 設定
WP_URL=https://あなたのWordPressサイトのURL
WP_PER_PAGE=20
WP_MAX_PAGES=11
WP_OUTPUT_DIR=./note-export

# Note 設定
NOTE_EMAIL=あなたのNoteのメールアドレス
NOTE_PASSWORD=あなたのNoteのパスワード
NOTE_TAGS=タグ1,タグ2,タグ3
NOTE_PUBLISH_MODE=draft

説明:NOTE_PUBLISH_MODEdraft にすれば一旦下書き保存されるため、安全です。公開モードは publish

項目 説明 入力例
WP_URL WordPressサイトのURL(末尾の「/」は不要) https://example.com
WP_PER_PAGE 1回に取得する記事の件数(最大100) 20
WP_MAX_PAGES 取得するページ数(件数×ページ数が最大取得数) 11
WP_OUTPUT_DIR 変換したテキストファイルの保存先 ./note-export
NOTE_EMAIL Noteのメールアドレス [email protected]
NOTE_PASSWORD Noteのパスワード
NOTE_TAGS 投稿時のタグ(複数の場合はカンマで区切る) ADHD,大人の発達障害
NOTE_PUBLISH_MODE draft=下書き保存 / publish=即公開 draft

STEP 5:WordPressの記事を取得する

記事ファイルを生成します。

node wp-to-note.js

完了すると note-export フォルダに記事ごとのテキストファイルと _index.txt が生成されます。開発時のチェックポイントとして、まずは2〜3件だけ確認する習慣をつけるとよいです。

実行時の画面例

=== WordPress → Note 移行スクリプト ===
対象サイト: https://example.com
出力先: ./note-export/
記事を取得中...
ページ 1 を取得中... 20件取得
ページ 2 を取得中... 20件取得
ページ 3 を取得中... 20件取得
...
合計 205 件取得完了
ファイルを生成中...
[1/205] 001_記事タイトルの例.txt
[2/205] 002_別の記事タイトル.txt
...
✓ 完了! 205 記事を取り出しました

STEP 6:Noteへ投稿する

実行するとブラウザが起動します。

node note-auto-post.js

初回は手動ログインが必要です

初回は手動ログインが必要です(セッションが保存され、次回以降は省略されます)。途中で止まった場合は note-post-progress.txt を参照し、startFrom を設定して再実行してください。

投稿モードについて

設定ファイルの NOTE_PUBLISH_MODE を変えることで、投稿時の動作が変わります。

モード 設定値 動作
下書き保存 draft 記事はNoteに保存されますが、公開されません。内容を確認してから公開できます。
自動公開 publish 投稿後すぐ公開されます。確認なしでそのまま公開されます。

最初は NOTE_PUBLISH_MODE=draft にして、2〜5記事で動作確認。その後、全件実行で安心できます。

STEP 7:下書きをまとめて公開する(draft利用時)

NOTE_PUBLISH_MODE=draft を利用した場合のみ実行します。

node note-publish-one.js

この処理を行うと「下書きを探す → ハッシュタグを設定する → 公開する」を自動で繰り返します。Note上にある全ての下書き記事が公開されるまで処理が続きます。

実行時の画面例

公開処理 1 件目
下書き記事を発見しました
ハッシュタグを設定しています... #ADHD #大人の発達障害
公開しました
累計: 1 件公開
公開処理 2 件目
...
完了: 205 件公開しました

アイキャッチ画像をまとめて設定する(オプション)

WordPressの画像をNoteに反映する場合:

node note-set-eyecatch.js

STEP 5で取り出した記事のURLをもとに、WordPressのアイキャッチ画像を探してNoteにアップロードします。すでに画像が設定済みの記事はスキップされます。

途中で止まってしまった場合の再開方法

STEP 6の途中で止まった場合は、note-post-progress.txt というファイルに「何番まで処理したか」が記録されています。

ファイルを開いて数字を確認し(例:「51」と書いてあった場合)、プログラムファイル note-auto-post.js 内の startFrom という部分を 51 に書き換えてから再実行してください。

初めて使うときのおすすめ手順

いきなり全記事を公開するのではなく、まず少数で試してみることをおすすめします。

  1. NOTE_PUBLISH_MODE=draft(下書き保存)に設定する
  2. node wp-to-note.js でWordPressの記事を取得する
  3. note-export フォルダのテキストファイルを数件確認する
  4. node note-auto-post.js で下書きとして一括投稿する
  5. Noteの管理画面でいくつか内容を確認する
  6. 問題がなければ node note-publish-one.js で一括公開する
  7. node note-set-eyecatch.js でアイキャッチ画像を設定する

この方法が最も安全です。

トラブルシューティング(よくある問題と対応)

現場で実際に起きた問題と対処法を記します。まずは落ち着いてログを読み、progress ファイルを確認する習慣をつけるとADHDの「焦って間違える」状況を防げます。

  • 「投稿に失敗しました。しばらく時間をあけて…」:Note側のアクセス制限。30分〜3時間待って再実行。再開は note-post-progress.txt の番号を startFrom に入力。
  • ブラウザがログイン画面から進まない:Noteの二段階認証が有効な可能性。手動でログインしてセッションを保存する。
  • node コマンドが見つからない:Node.js未インストール。公式サイトからインストール。
  • フォルダが見つからない:STEP 5 をまだ実行していない可能性。手順は順番に実行。
  • ボタンが見つからないエラー:Note側のUI変更。GitHubで最新版を確認して更新する。
  • 連続エラーが3件発生して停止:ターミナルに再開番号が表示されるので startFrom に入れて再実行。

実例

あるとき3回連続でアクセス制限にかかり停止しました。ログの指示通り startFrom を51 に設定し、待機30分後に再実行して無事再開できました。

開発プロセス:AI(Claude)との共同作業について

このツールはAIアシスタント(Claude)と対話しながら開発しました。要件を日本語で伝えることで、実際のコード生成や設計決定を補助してもらえました。私の経験から言うと、AIは「小さな反復的タスク」を素早くコード化してくれるため、ADHDの衝動的なやる気を短時間で形にするのに向いています。ただし、最終的なテストと例外処理は自分で確認する必要があります。

結論

手作業で200記事を移行するのは心身ともに負担が大きいです。自動移行ツールを使えば、記事取得→投稿→公開→アイキャッチ設定を効率化でき、精神的負荷も大幅に軽減できます。まずは小さく試し、問題がなければ本番で一気に移行するのがおすすめです。

よくある質問

Q. Nodeのバージョンは何が良いですか?

安定版(LTS)を推奨します。開発・本番で差異が出るとトラブルの元なので、nvm 等で固定してください。

Q. Noteの二段階認証がある場合はどうすればいいですか?

初回実行時に手動でログインして二段階認証を完了してください。一度セッション保存されれば次回は自動化できます。

Q. 途中で止まったらどうやって再開しますか?

note-post-progress.txt を確認し、表示された番号を note-auto-post.js の startFrom に設定して再実行してください。

Q. アイキャッチ画像が設定されない記事があるのはなぜですか?

WordPress側にアイキャッチが設定されていない場合はスキップされます。手動で差分を補完してください。

Q. Note側のUI変更でエラーが出た場合は?

まず GitHub の最新版に更新してください。UIが変わるとボタン位置などがずれるため、スクリプトの修正が必要です。

ここまで読んでいただきありがとうございます。まずは少数の記事で試し、動作を確認してから全件移行することを強くおすすめします。

\ 最新情報をチェック /

コメント

PAGE TOP