最近話題のAIツール「NotebookLM」。実は今回、はじめてNotebookLMを使ってみたのですが、自分のブログ記事を読み込ませて「自分専用のAIアシスタント」を作るというアイデアにめちゃくちゃ感動しました!
さっそく私のブログ「MacWinBlog」の過去記事(全72記事)を追加しようとしたのですが、ここでいくつもの壁にぶつかりました。今回は失敗談も交えつつ、最終的にAppleScriptで完全自動化に成功した手順をご紹介します。
NotebookLM導入でぶつかった2つの壁(失敗談)
【失敗談その1】最初はXML書き出しを試すも…
まずはじめに試したのが、ブログ情報をXML形式で一括書き出しする方法でした。これなら一発で終わる!と思ったのですが……いざNotebookLMに読み込ませてみると、うまく内容を認識してくれず大失敗。
【失敗談その2】1記事ずつ読み込ませたら「50ソースの壁」に激突!
気を取り直して、別のやり方を考えることに。「すべての記事を1記事=1PDFファイルとして保存して読み込ませる」作戦にシフトしました。
ところが、試しにいくつか記事をPDF化してNotebookLMに一つずつ追加していくと……なんとNotebookLMのソース上限(1ノートにつき50ソースまで)に引っかかってしまったのです!MacWinBlogの記事数は全部で72記事あるため、これでは全記事を読み込ませることができません。
【最終作戦】全記事をPDF化してから「ひとつのPDFに合体」させる!
そこで行き着いたのが、「1記事ずつPDF化した後、最後に全部を1つのPDFファイルにまとめる」という方法です。これならソースの消費は1つだけで済みます!
とはいえ、72記事を一つ一つ手作業で「PDFとして保存」していくのは絶望的な作業量です。そこでMacの「AppleScript」を使って自動化することにしました。
ステップ1:サイトマップから全URLをサクッと抜き出す
自動化スクリプトを動かす前に、まずは全記事の「URLリスト」を作る必要があります。ここで一番おすすめなのが「サイトマップ」から抜き出す方法です。
- ブラウザで
https://ご自身のドメイン/post-sitemap.xml(またはsitemap.xml)にアクセスします。 - 記事のURLがずらっと並んだ画面のテキストを全部コピーし、エクセルやスプレッドシートに貼り付けます。
- あとは不要な部分をサクッと消せば、URLだけを抜き出したリスト(エクセルファイル)が完成します!
ステップ2:はじめての印刷制御!「Apple縛り」の罠とChromeでの解決
URLリストができたら、いよいよAppleScriptの出番です! これまでもいくつかの自動化スクリプトを作ってきましたが、AppleScriptで「ブラウザのプリントダイアログを操作してPDF保存する」という処理を書くのは、今回がはじめての挑戦でした。
普段メインで使っているブラウザは別にあるのですが、「AppleScriptを使うなら、AppleつながりでSafariの方が相性が良いのかも?」となんとなく思い込み、最初はSafari用にスクリプトを書き始めました。 しかし、これが罠でした!プリントダイアログの細かな制御がうまく通らず、途中で止まってしまったりと大苦戦……。
「これでは逆に時間がかかるかも」と諦めかけましたが、ブラウザを「Google Chrome」に変更してみたところ、これが大正解!
Chromeの印刷機能はAppleScriptとの相性が良く、非常に安定して動いてくれました。何となくの「Apple縛り」は不要でしたね(笑)。同じようにはじめての自動操作でつまずいている方がいたら、Chromeへの切り替えを強くおすすめします。
ワクワクの自動化体験!ラーメンを食べている間に完了
Chrome向けにスクリプトを書き直し、いざ実行! 画面上で次々とブログ記事が開かれ、自動でPDFとして保存されていく様子を見るのは、自動化ならではのワクワク感があります。
スクリプトが安定して動くのを見届けた後、私は安心して「来来亭のラーメン」を食べに出かけました(笑)。
そして、お腹を満たして帰ってくると……見事に72記事すべてのPDF化が完了していました!自分が休んでいる間にMacが仕事をしてくれる、この快感はたまりません。
コピペでOK!実際に使ったAppleScriptのコード
今回作成したAppleScriptのコードはこちらです。順番に登録するだけで、皆さんの環境でも使えるようにしています。
tell application "Microsoft Excel"
-- A1からA72までを対象にします
set urlList to value of range "A1:A72"
end tell
repeat with theURL in urlList
if theURL is not "" then
tell application "Google Chrome"
activate
open location theURL
delay 10 -- ここを10秒に設定しました
end tell
tell application "System Events"
keystroke "p" using command down
delay 4 -- ダイアログが出るのを少し長めに待機
keystroke return
delay 3
keystroke return
delay 3
end tell
tell application "Google Chrome" to close active tab of front window
end if
end repeat
display dialog "72行目までの書き出しが完了しました!"
使い方
- Mac標準の「スクリプトエディタ」を開き、上記のコードをコピペします。
- ステップ1で作成したURLリストを用意します。
- 実行ボタンを押すと、次々とPDFが保存されていきます。
- 最後に、保存された全PDFをMacのプレビュー機能などで1つのPDFに結合すれば完成です!
まとめ:この記事の「裏話」
今回は、AppleScriptを使ってブログ記事を一括PDF化し、NotebookLMの制限を回避する方法をご紹介しました。
……と、ここまで解説してきましたが、実はこの記事の文章や構成そのものも、NotebookLMに書いてもらいました!
私がやったのは、以下の3つだけです。
- 実際にやったことや失敗談を、簡単な箇条書きでメモしてお願いした
- 「ここが抜けているから追加して」「Safariを選んだ理由はこう変更して」など、数回追加で指示を出した
- 過去のブログ記事(今回作った合体PDF)をソースとして読み込ませ、いつもの私の文体や構成のクセを分析して反映してもらった
たったこれだけで、これまでの「MacWinBlog」そっくりな記事があっという間に完成しました!今回わざわざ自動化してまで過去記事をPDF化した最大のメリットは、まさに「これ」だったんです。
みなさんもぜひ、ご自身のブログや仕事の資料をPDF化してNotebookLMに放り込んでみてください。きっと「なるほど、これはすごい!」と感動するはずですよ。
