一括書き換えを始めた理由と、保存したファイルで数えた規模

何を差し替えたか

差し替えの中心は2つです。古くなった数字と、旧教材名「Relmea AI Ops Vol.1(運用編)」を新しい教材名「AIチームの作り方ガイド[テンプレート編]」に変える作業でした。

放っておくと、読者は同じ教材について、記事ごとに違う名前と条件を目にします。販売ページへの導線を持つ記事ほど、これは購入前の迷いにつながります。

保存したファイルから数えた規模

書き換えの前後に保存したファイルを集計すると、次のとおりでした。

  • 記事の情報が残っているのは129本(2アカウントで80本と49本)で、すべて公開中
  • そのうち有料記事は53本で、53本とも有料ラインが設定されていた
  • 書き換え後の本文が保存されているのは128本。残る1本は書き換え後のファイルが無く、理由は記録に残っていない
  • 128本すべてで本文に差分があり、変更が0か所の記事はなかった

差分は、書き換え前の公開本文と後の本文を文字で比べて数えました。変わった塊は合計1,807か所で、1本あたりの中央値は14か所、最大は33か所です。

置換の前後で数えたもの

旧教材名は、書き換え前の119本に出ていて、書き換え後は0本になりました。一方「【先着10部】」の表記は、書き換え前の20本から書き換え後は11本になり、残っています。

すべての表記が1回で消えるわけではありません。置換の対象を決めるときは、残してよい表記と消す表記を分けておき、後から数え直せる状態にしておく必要があります。

一括書き換えの前に、書き換え前の本文を保存する

記事ごとに3点を残した

更新の前に、記事ごとに次の3点を保存しました。

  • 書き換え前の公開本文
  • 書き換え後の本文
  • 記事の情報(API が返す JSON)

この3点があったので、ここまでの数字を後から数え直せました。差分の件数も、旧教材名の残りも、リンクカードの見出しも、保存したファイルから確かめています。

更新の手順と、送信前の検問

本文は、下書き保存、エディタの「公開に進む」、「更新する」の順で更新しました。スクリプトで操作し、送信する内容を確かめてから通す方式です。

照合のときに落とし穴が1つありました。記事を取得する API に draft=true を付けると、下書きを保存した後は、その下書きの本文が返ってきます。公開版と照らし合わせるときは draft を指定せずに取らないと、直っていない公開版を「直った」と見誤ります。

公開中の記事を変える操作は、ふだんは止まる設定にしてある

公開中の記事を変える操作は取り消しが効きません。そのため relmea では、無人の自動実行ではこの操作が止まる設定にしてあります。今回はこの1回だけ人の許可を取って一時的に通し、終わったあとに許可を外しました。

公開済みのnote記事を一括で更新するときの順番
  1. 保存記事ごとに、書き換え前の公開本文・書き換え後の本文・記事の情報の3点を更新の前に保存する
  2. 検問下書きを保存したあと、送信する内容をスクリプトで確かめてから通す
  3. 許可公開中の記事を変える操作は、実行の間だけ人の許可で解除し、終わったら戻す
  4. 更新「公開に進む」から「更新する」へ。有料記事は「有料エリア設定」の先に更新ボタンがある
  5. 照合下書き指定なしで取った公開版を、書き換え後の本文と突き合わせる

共同マガジンから外れた記事は戻せない

参加が切れたマガジンから記事が外れる

記事を更新すると、参加が切れた共同マガジンから、その記事が外れます。たとえば名前に「※募集終了」と付いたマガジンです。外れた記事を戻すことはできません。他人が自分のマガジンに入れた分は外れませんでした。

外れる候補は更新の前に数えられる

外れる候補は、マガジン一覧の API(includes_editable=true と記事の key を指定する呼び方)に出てこないマガジンです。この確認は更新の前にできます。今回は、外れる候補を示して承認を取ってから更新に進みました。

所属の規模と、記録に無いもの

保存した記事の情報を集計すると、129本中96本が何らかのマガジンに所属していました。所属先は40種類あり、そのうち15種類には94本ずつ入っていました。

実際に外れた本数は記録に残っていません。更新の前に数えたのは外れる候補までで、更新の後の所属は数えていないためです。次に同じ作業をするなら、更新の前と後で所属を記録しておくのが改善点です。

note記事の更新で共同マガジンについて分かること・分からないこと
  1. 数えられる129本中96本が何らかのマガジンに所属。所属先は40種類で、うち15種類には94本ずつ入っていた
  2. 事前に分かる外れる候補は、マガジン一覧のAPIに出てこないマガジン。更新の前に確かめられる
  3. 外れない他人が自分のマガジンに入れた分は、更新しても外れない
  4. 記録に無い実際に外れた本数。更新の前後で所属を記録していなかったため数えられない

有料記事の更新画面と、リンクカードで起きること

有料記事は「更新する」の場所が違う

有料記事では、「公開に進む」を押した先の上部ボタンが「有料エリア設定」になります。「更新する」は、そのさらに先の画面にあります。有料ラインは既存の位置のまま動きません。

53本の有料記事すべてに有料ラインがあったので、スクリプトの手順はこの画面の違いを前提に組む必要がありました。

リンクカードの見出しは、地の文とは別に確かめる

書き換え前、42本の記事で、リンクカードの見出しが「Relmea AI Ops Vol.1(運用編)へ移動中… | relmea」のようになっていました。リンク先が計測用の転送ページで、その題名が見出しに取り込まれていたためです。「〜へ移動中…」の見出しは、教材の巻ごとに Vol.1 が53件、Vol.3 が48件、Vol.2 が47件ありました。

書き換え後のファイルでは、「移動中」の見出しは0本です。note は更新のときにリンク先の情報を取り直し、カードの見出しが変わることがあります。リンク先が同じなら問題はありません。

リンクカードの見出しは、本文の地の文とは成り立ちが違い、リンク先のページから取られる題名です。地の文の置換結果だけを見て終わりにせず、カードの見出しは別に数えて確かめます。

note記事128本の一括書き換え:書き換え前と後で数えた結果

書き換え前

  • 旧教材名が119本に出ていた
  • 42本でリンクカードの見出しが計測用の転送ページの題名(「〜へ移動中… | relmea」)になっていた
  • 「【先着10部】」の表記が20本にあった

書き換え後

  • 旧教材名は0本
  • 「移動中」の見出しは0本
  • 「【先着10部】」の表記は11本に残った

保存した書き換え前後のファイルを数えた値です

非公開に戻す操作

記事を非公開に戻すときは、記事ページの「…」から「下書きに戻す」を選び、ページ内に出る確認窓で「OK」を押します。ブラウザ標準のダイアログではないので、スクリプトで操作するときは、ページ内の要素として押す必要があります。

公開時のマガジン上限と、一括書き換えの前に確かめる点

上限に達したマガジンで公開が止まった

書き換えとは別の場面でも、マガジンが原因で止まったことがあります。記事数が上限(実測で400,000本)に達した共同運営マガジンにも、公開画面は「追加」を表示します。そのマガジンを含めて「投稿する」を押すと、422「マガジンに追加できる記事の上限数に達しています。」が返り、記事全体の公開が拒否されます。

自動操作は警告を自動で閉じるので、ログには「公開を確認できませんでした」としか残りませんでした。2026年9月18日に4本が下書きのまま止まり、原因の切り分けに丸1日かかっています。

上限かどうかは、同じマガジン一覧の API が返す is_add_note_max_count で判定できます。参加しているマガジンの一覧は日々変わるので、名前を固定せず毎回確かめます。いまは公開用のスクリプトが上限のマガジンを除外し、除外した件数を報告に出しています。

一括書き換えの前に確かめる点

ここまでの実例から、公開済みの記事を一括で書き換える前に確かめる点をまとめます。

  • 書き換え前の公開本文・書き換え後の本文・記事の情報を、記事ごとに保存する
  • 対象の本数と、記事ごとの差分の件数を先に数える
  • マガジン一覧の API で、更新すると外れる候補を数え、承認を取る。更新の前と後の所属も記録する
  • 有料記事は「有料エリア設定」の先に「更新する」があることを前提に手順を組む
  • 公開版との照合は、draft を指定せずに取る
  • 地の文の置換とは別に、リンクカードの見出しを数える
  • 公開中の記事を変える操作を自動実行で許可するなら、実行の間だけ許可し、終わったら外す

128本の書き換えでは、更新の前に保存して数えておいたことが、後から結果を確かめられる唯一の手がかりになりました。更新した後で直せないもの(外れたマガジン)があるからこそ、数えるのは更新の前です。