Instapaper

PocketデータをエクスポートしてInstapaperへ移行する方法

ⓘ本ページはプロモーションが含まれています

スポンサードリンク

Pocket からのエクスポート手順

1‑1. CSV 形式で取得する

手順 操作内容
Pocket にログインし、右上メニュー → Settings をクリック
左サイドバーの Export を選択
「Export as CSV」ボタンを押すと export.csv がダウンロードされます

ポイント
- ダウンロード時は必ず「UTF‑8(BOMなし)」で保存してください。文字化け防止のため、ブラウザが自動的に UTF‑8 以外で保存しようとしたら手動で変更します。
- Pocket のエクスポート機能では「未読だけ」や「タグ別」などのフィルタはできません。全件取得後にローカルで絞り込みます。

1‑2. HTML 形式で取得する

手順 操作内容
同様に Settings → Export ページへ
「Export as HTML」ボタンをクリック
export.html が生成され、ダウンロードフォルダーに保存されます

HTML の構造は次のようになります(抜粋):


エクスポートファイルの中身とインポート要件

CSV の主な列(Pocket が出力)

列名 内容 Instapaper で必要か
item_id Pocket 内部 ID 不要(削除可)
resolved_url / given_url 記事の URL 必須
given_title 保存時に入力したタイトル 必須
excerpt ユーザーが書いたメモ・ハイライト 任意(後述の変換で使用)
time_added Unix タイムスタンプ 任意(ISO 8601 に変換推奨)
tags カンマ区切りタグ 任意(Instapaper の「フォルダー」へマッピング)

Instapaper が受け付ける CSV 形式(公式ドキュメント参照)

  • 文字コード:UTF‑8(BOMなし)
  • 改行コード:LF (\n) 推奨、CR+LF でも可
  • 必須列url, title
  • 日付形式:ISO 8601(例: 2023-04-15T08:30:00Z

注意
Instapaper の API エンドポイントや認証フローは予告なく変更されることがあります。実装時は必ず公式開発者向けページ( https://www.instapaper.com/api/simple など )で最新情報を確認してください。


Instapaper へインポートする方法

3‑1.Web UI(少量データ)でのインポート手順

手順 操作内容
Instapaper にサインアップ/ログイン
右上メニュー → SettingsImport
「Import from Pocket」ボタンをクリックし、先ほど取得した CSV(または HTML)ファイルを選択
アップロードが完了すると「Import started」の通知が表示され、数分後にインポート結果ページへ遷移

制限:1 回のアップロード上限は 5 MB(約10,000 件)です。これを超える場合はファイルを 4,500 件前後に分割して再度実行してください。


3‑2.公式 API を使ったバッチインポート

(1) 認証トークンの取得(OAuth 2.0)

Instapaper のシンプル認証は ユーザー名 + パスワードaccess_token が返ります。以下は cURL の例です。

レスポンス(JSON)

実装上のポイント
- grant_type=password は非推奨になる可能性があるため、将来的に「Authorization Code」フローへ移行することを検討してください。
- トークンは 1 時間で期限切れになるので、長時間バッチ処理を行う場合はリフレッシュトークンで再取得します。

(2) データインポート用エンドポイント

公式ドキュメントでは POST https://www.instapaper.com/api/1.1/import が推奨されています(※2026 年 4 月時点)。リクエストは multipart/form-data で CSV 全体を送信します。

注意
- CSV のヘッダーは url,title,folder,note(Instapaper が認識できる形)である必要があります。
- ファイルサイズ上限は 10 MB、1 リクエストあたり最大 5,000 行程度です。

(3) Python スクリプトでバッチ処理(行単位送信)

CSV を行ごとに分割して POST https://www.instapaper.com/api/add に送る方法です。大量データでもレートリミットを回避しやすくなります。

ポイントまとめ

項目 推奨設定
リクエスト間隔 100 件ごとに time.sleep(1)(Instapaper のレートリミットは 5 req/秒)
エラーハンドリング 失敗した行は別ファイル (failed.csv) に保存し、後で再送
ログ出力 標準出力に進捗とステータスコードを表示(CI 環境でも可視化)

タグ・ハイライト・コメントの変換例

Pocket の情報はすべてテキストデータとして扱う必要があります。以下は CSV 前処理 で行う典型的なマッピングです。

Pocket 項目 Instapaper への変換例
tags(カンマ区切り) folder にスラッシュ区切りで格納 (tech,python → tech/python)
excerpt(ハイライト・メモ) note カラムにプレフィックス付与
【ハイライト】<テキスト>
コメント(Pocket には別途保存できないが、excerpt に併記可能) 同上、【コメント】 を付加

CSV 前処理のサンプル(pandas)


インポート後の検証とトラブルシューティング

1. 成功・失敗件数の確認

方法 手順
Instapaper の Import Report Settings → Import → 「最近のインポート」から成功件数・エラー件数を閲覧
CSV と突き合わせ pandas の mergeurl が一致しない行を抽出し、failed.csv に保存

2. 重複チェック

Instapaper は同一 URL が既に保存されていると自動でスキップしますが、ローカル CSV でも drop_duplicates('url') しておくと API 呼び出し回数を削減できます。

3. リンク切れの検出

2026 年 2 月にリリースされた Link Checker 機能を活用します。

  1. Instapaper の Settings → Link Checker を開く
  2. 「Check all links」ボタンで全記事をスキャン
  3. 結果は画面上に一覧表示され、問題のある URL は個別に削除または再保存が可能

4. よくあるエラーと対処法

エラーコード 原因例 対策
400 Bad Request CSV の列名が不正、文字コードが UTF‑8 でない 列名を url,title,folder,note に統一し、エンコーディングを再確認
401 Unauthorized トークンの期限切れまたは取得ミス 再度 OAuth エンドポイントからアクセストークンを取得
413 Payload Too Large 1 回のインポートでファイルサイズが上限超過 ファイルを 4,000 行程度に分割して再実行
429 Too Many Requests 短時間にリクエストしすぎた time.sleep(1) 以上の待機時間を設ける

Instapaper の日常的な保存方法

手段 設定手順 メリット
ブラウザ拡張(Chrome / Edge) Chrome ウェブストアで「Instapaper」拡張をインストール → アカウント連携 → 任意のページでアイコンクリック ワンクリックで即保存、タグ付けも可能
ブックマークレット Settings → 「Bookmarklet」生成 → ブラウザのブックマークバーにドラッグ 拡張機能が使えない環境(社内 PC など)でも動作
モバイルアプリ(iOS / Android) App Store/Google Play から公式アプリをインストール → iOS の共有シート、Android の「共有」メニューから Instapaper を選択 スマホで読んだ記事も手軽に保存

ベストプラクティス
- 重要な記事はタグ(フォルダー)とともに 「Saved」 状態にしておくと、あとで検索しやすいです。
- 定期的に Export → CSV を取得し、ローカルバックアップを取っておくと万が一のサービス障害時にも安心です。


FAQ と参考リンク

質問 回答
Pocket のサービス停止は本当にあるの? 2026 年 5 月現在、公式に「2025 年 12 月終了」の発表はありません。リスクが指摘されているだけです。
Instapaper の API エンドポイントは変わる可能性がありますか? はい。実装前に必ず https://www.instapaper.com/api で最新情報を確認してください。
CSV の文字化け対策はどうすればいいですか? Excel で開く場合は「データ」→「テキスト/CSV から取得」→「ファイルの起動時に UTF‑8 を選択」します。
タグが多層構造になるときのマッピング方法は? Pocket の tags はカンマ区切りですので、Instapaper のフォルダーはスラッシュ区切りに変換すると階層表現できます(例: tech,python → tech/python)。
1 万件以上のインポートは可能ですか? Web UI の上限は 5 MBですが、API を利用すればバッチ処理で数十万件まで対応可能です。ただしレートリミットとトークン有効期限に注意してください。

参考リンク

  • Pocket ヘルプセンター(エクスポート手順): https://help.getpocket.com/article/1159-export-your-data
  • Instapaper 開発者向けドキュメント: https://www.instapaper.com/api/simple
  • UTF‑8 エンコーディング確認ツール: https://www.charset.org/utf8

まとめ
1. Pocket のデータは必ず CSV(UTF‑8)でエクスポートし、不要列や重複を削除。
2. Instapaper が要求する urltitle を中心に、タグはフォルダーへ、ハイライトは note に変換。
3. 少量なら Web UI、数千件以上は公式 API(/api/1.1/import または /api/add)でバッチ処理。
4. インポート後はレポートと CSV を突き合わせて失敗・重複を確認し、リンク切れは Link Checker で対策。

この手順に沿って作業すれば、Pocket のサービスが将来的に終了したとしても 記事・ハイライト・タグ情報を安全に保存 でき、Instapaper 上で快適な「あとで読む」体験を継続できます。

スポンサードリンク

-Instapaper