X (Twitter) のポストをワンクリックで Notion に保存するユーザースクリプトです。
- タイムライン・詳細画面の各ポストに「保存」ボタンを追加
- テキスト・著者・日時・引用ポストをデータベースプロパティに保存
- ページコンテンツとして本文・引用・画像・リンクカードをブロックで保存
- 画像は Notion にアップロードしてページに埋め込み(失敗時は外部URL参照にフォールバック)
- 本文内の t.co 短縮 URL を最終リダイレクト先に展開して保存
- 保存済みポストの重複チェック(✅ 表示)
- トークン等の設定をページ上のモーダルから変更可能
- ブラウザに Tampermonkey をインストール
- インストールリンク を開き、Tampermonkey でインストール
- 後述の「初期設定」を行う
インストール後は Tampermonkey の自動更新機能により、新しいバージョンがリリースされると更新通知が届きます。
- https://www.notion.so/my-integrations でインテグレーションを新規作成
- 「内部インテグレーション」を選択し、作成後に表示される Notion Token (
secret_...) を控える
後述の「データベーススキーマ」に従いデータベースを作成し、インテグレーションを接続する。
データベースページ右上の「...」→「接続」→ 作成したインテグレーションを選択
X を開くと設定モーダルが自動で表示されます。
または x.com のコンソールで notionSaverSettings() を実行するとモーダルを開けます。
| 項目 | 値 |
|---|---|
| Notion Token | Notion API トークン |
| Datasource ID | 「データソースを管理する」からコピーしたID |
Datasource ID の確認方法
データベースページの「...」→「データソースを管理する」を開き、対象データソースの「...」から「データソースIDをコピー」で取得できます。
スクリプトが書き込むプロパティは以下の通りです。Notion データベースに 同名・同型 のプロパティを作成してください。
| プロパティ名 | 型 | 内容 |
|---|---|---|
Title |
タイトル | ポスト本文の先頭50文字 |
URL |
URL | ポストの URL (https://x.com/...) |
ID |
テキスト | ポストの数値ID(重複チェックに使用) |
Author |
テキスト | 表示名 (@ユーザー名) 形式 |
Body |
テキスト | ポスト本文(最大2000文字、t.co展開前の元URL) |
QuotedPost |
テキスト | 引用ポストの本文(引用がない場合は空) |
PostedAt |
日付 | ポストの投稿日時(ISO 8601) |
注意: プロパティ名は大文字・小文字を含め完全一致させてください。名前が違う場合は Notion API がエラーを返します。
画像・本文・引用・リンクカードはページコンテンツ(ブロック)としても保存されます。複数画像は横並びレイアウト(column_list)で配置されます。
| 表示 | 意味 |
|---|---|
保存 |
未保存。クリックで保存開始 |
… |
保存中 |
✅ |
保存済み |
✅⚠ |
保存済み(一部画像が外部URL参照。将来リンク切れの可能性あり) |
! |
エラー。3秒後に「保存」に戻る |
npm install # Biome(フォーマッター)をインストール
npm run format # コードフォーマット(または保存時に自動実行)推奨エディタ拡張: Biome(.vscode/extensions.json に設定済み)
ISC