アサブロからはてなブログへの移行については、9月12日をもって経てとりあえず支障なく見れるようにしたつもりではいましたが、画像参照やリンクも含めての完全移行がまだ残っております。「AIにPythonでスクリプトを書かせてそれを実行する」ことで、とりあえず2005年のブログ記事の画像移行を試行しましたが、以降もチマチマと作業を進めて全記事の画像移行を無事やり遂げました。今日はその顛末のハナシです。記事が無駄に長いので注意。
まずは、画像データの総容量は約1.5GBあるところ、はてなブログは無料版だと画像ファイルは月あたり300MBしかアップロードできないため、一時的にはてなに課金し画像アップロード枠を太らせます(税込月あたり1,008円)。
で、ちょっと魔が差して、AIがチョメチョメしたPythonのスクリプトを覗き見。
・・・・・・・日本語でおk(そっ閉じ)
シロウトが見たのでは何が何だか分かりません。よくAIはこんなスパゲッティ(褒め言葉です)のようなコードを生成できるな、と思います。
一方生成AIの活用にあたっては、AI任せにせず自分でしっかりレビューすることが大事ですが、他人にAI出力品を晒す訳でもないし、今回は失敗しても手作業で修復できる範囲なので、AIにはできるだけ慎重な処理をするよう指示した上で、コード自体のレビューは省略しました。
閑話休題、ブログの画像移行の本番に着手します。
前回の記事で自分が作成したプロンプト
「やりたいことは、ASAHIネットのアサブロからはてなブログにブログを移行するにあたって、画像ファイル(横300ピクセルのサムネイル画像ではなくオリジナル画像)を移行させたい。ただし画像はデータ数約1.5万ファイル、データ量約1.5ギガバイトある。以前も同じことを検討してもらったが、改めて最初からやり方を検討してスクリプトを作成して欲しい。まずはブログのMTファイルと2005年の画像データをAIにアップロードするので、2005年の記事について「①ZIPファイルを展開・解析」「②はてなフォトライフ(はてなブログで使用する画像の保存先)へアップロード」「③はてなブログの記事取得」「④アサブロURL検索」「⑤対応するはてな画像URLに置換・修正」「⑥修正した記事をPUT(APIを使って更新)」のステップごとにスクリプトを作成して欲しい。」
と、元記事のMT(Movable Type)形式のエクスポートファイル(ブログ記事のテキスト出力)、画像データ、あとは以下のアサブロの仕様変更情報
・アサブロで横300ピクセル以上の画像を受け付けるようになった(2007年途中から)
・アサブロ側で1記事あたり掲載できる画像ファイルを1個から複数個に増やせる仕様変更があった(時期不明)
あと「画像ファイルを挿入した後は改行を入れる」等の補足指示を与えて、AIにスクリプトを作らせるためのプロンプトを、AIに生成してもらいます。プロンプトは684行8,321文字に渡る壮大なものが出来ました。
プロンプトが出来たところで、画像ファイルを年ごとにZIP形式で圧縮してまとめてフォルダに保管し、作業フォルダも整理整頓します。
準備が整ったところで、改めて上記①〜⑥の作業を行うスクリプトを作成し、2005~2007年の記事と写真で動作確認を行います。
試行錯誤も含め、①〜⑥の各スクリプトの作成、試験、検証、修正で各々だいたい1〜2時間くらいかかりました。その間ChatGPT先生への指示やら作ったスクリプトの修正(結構あります)やら、いろいろ対話を求められますので、任せっきりという訳にはいかずパソコンにかかりっきり。
これらの作業は、数日間、夜中に起きてポチポチパソコンを動かしながらやっていました。
その結果・・・
無事に2005〜2007年記事に画像が貼れました。無作為で各年の記事を数記事見てみても、ちゃんと画像が貼れているのが分かります。
さらに、①〜⑥の各スクリプトをまとめて実行するスクリプトをAIに作ってもらい、それをパソコンで実行し、2008年のブログ記事更新を行いました。
プログラミング関係はドシロートですが、生成AIに作成してもらったスクリプトも一発では決まらず、動かしてはエラーが出て、メッセージをChatGPTに投げて対応を考えてもらって、それを再実行・・・の繰り返し。馴染みのない作業の段取りを組み立てる作業は、いくらAIがスクリプトを考えてくれるとはいえ、結構疲れました。。。
以降、3年分を1ロットとして、1ロットのブログ記事更新に1〜2日をかけるペースで、ブログ記事更新を行いました。
しかし困ったのが、短時間に多数のアクセスを行ったためか、何回か「403 Forbidden」が返され、はてなサーバへの読み書きを拒否されたこと。都度サーバへの接続は穏便にするようにAIには注意していたつもりなのですが・・・
「スクリプトを自動実行」といっても、実際はAIが作ったコマンドをターミナルにコピペして、上がってきた結果をやはりコピペでAIに投げて、またAIの出力をターミナルに投げて・・・の繰り返しで、あまり「自動」感はありません。
やり方を工夫すれば自動化の余地はいっぱいあるのですが、あまりAI仕事を自動化するのは、昨今話題の「AIが人類を滅ぼす、人類がAIを制御不可能になる」の話にも通じる、人間がAIをコントロールする観点から大変望ましくないので、これで仕方がないと割り切ってコピペをずっと続けました。
3年1ロットでブログ画像移行を続け、1ロットの作業が終わる都度、AIに作業上の課題点をまとめてもらい、それを次回ロットの作業プロンプトに反映させるようにしました。これも一種の「PDCA」です。
深夜から未明にかけて、仕事やら連休やらの間合いを見ての作業を数日間続け、はてなブログ記事の画像移行を完了。ランダムに動作確認した結果も満足です。
最後に、スクリプトを組んで行った移行作業から漏れたブログ記事の画像を手作業で移行・・・
しかし、面倒臭くて途中でやってられなくなり、このへんの作業も最終スクリプトにぶん投げてAIにやってもらいました。
ともかく今度こそはてなブログ記事の画像移行を完了。あとの残作業は、リンクの修正漏れと画像表示異常の解消です。