Contents
Pocket からデータをエクスポートする方法
Pocket に保存した記事は、サービスが終了した場合やバックアップのために CSV または HTML 形式で取得できます。本セクションでは公式設定画面から安全にエクスポートする手順と、エクスポート時に注意すべきポイントを解説します。エクスポートデータは後述の Instapaper へのインポートでもそのまま利用できるため、正しく取得しておくことが重要です。
CSV・HTML の取得手順
Pocket のデータエクスポートは次のステップで完了します。
- Pocket にログインし、右上の 設定 (Settings) をクリックします。
- 左側メニューから 「Export」 セクションを選択します。
- 「Export your data」ボタンを押すと、HTML と CSV の 2 ファイルが同時にダウンロードされます。
ポイント:CSV は各記事の URL・タイトル・保存日時・タグ情報がカンマ区切りで格納されています(タグ列はスペース区切りまたはカンマ区切りのどちらでも出力されることがあります)。Instapaper のインポート機能はこの形式をそのまま受け付けます。
エクスポート期間上限と注意点
- Pocket にはエクスポート対象に期間制限がありません。全記事を一括で取得できるため、バックアップや移行作業の際に追加設定は不要です。
- 現在の公式 UI では「タグごとのフィルタリング」機能は提供されていません(過去のヘルプページでも言及がなく、実装が確認できないため)。大量データでダウンロードが失敗した場合は、エクスポート後に CSV を自分で分割するか、タグ別に手動でエクスポートし直すことを検討してください。
- エクスポート後は必ずローカルまたはクラウドストレージへコピーし、データ消失リスクを低減しましょう。
Instapaper アカウント作成と基本設定
Instapaper は「あとで読む」サービスとして長年高い評価を受けており、Pocket からの移行もスムーズに行える点が魅力です。本セクションでは無料アカウント取得手順と、インポートや拡張機能設定へのアクセス方法を説明します。
無料アカウント登録手順
- 公式サイト https://www.instapaper.com/ にアクセスします。
- 「Sign up for free」 ボタンをクリックし、メールアドレスとパスワードを入力して登録します。
- 送信された認証メールのリンクを開き、アカウントを有効化します。
ポイント:無料プランでも月間最大 5,000 件 の記事をインポートでき、広告は表示されません(2024 年 10 月時点の公式プラン情報[^1])。
設定画面へのアクセス方法
- ログイン後、右上にあるユーザーアイコンをクリック → 「Settings」 を選択します。
- 左側メニューに 「Import」, 「Extensions」, 「Account」 などが表示されます。ここからインポート機能やブラウザ拡張子の設定画面へ遷移できます。
Instapaper へデータをインポートする方法
Pocket で取得した CSV/HTML を Instapaper に取り込む手順は Web UI の一括インポート と API 利用 の二通りがあります。まずは最もシンプルな Web UI からのインポートを紹介し、その後に自動化向け API の概要と注意点を解説します。
Web UI からの一括インポート手順
Web UI を使ったインポートは以下の流れで完了します。
- Instapaper の設定画面左メニューから 「Import」 を選択します。
- 「Import from a file (CSV/HTML)」欄の 「Choose File」 ボタンをクリックし、Pocket でエクスポートした CSV または HTML ファイルを指定します。
- 「Start Import」 を押すとインポートが開始され、画面下部に進捗がリアルタイムで表示されます。
対応フォーマットと件数制限
| フォーマット | 内容の概要 | 1 回あたりの最大件数 |
|---|---|---|
| CSV | URL・タイトル・保存日時・タグをカンマ区切り | 5,000 件 (無料プラン) |
| HTML | Pocket がそのまま出力した HTML | 5,000 件 (無料プラン) |
- 重複エントリ が検出された場合は自動的にスキップされます。インポート完了後、Instapaper の「All」ビューで件数が期待通りか確認してください。
- 5,000 件を超えるデータを移行したい場合は、CSV/HTML を 2 ファイル以上に分割し、複数回に分けてインポートするとエラーが減ります。
API を使った自動インポートとスクリプト例
大量の記事や定期的な同期を行う場合は Instapaper が提供する REST API が便利です。以下では公式ドキュメントに基づくレートリミット・インポート上限の根拠、そして Python 実装サンプルを紹介します。
API のレートリミットとインポート上限
- レートリミット:Instapaper API は 1 分間に最大 60 リクエスト(公式ドキュメント[^2])が許容されます。
- インポート上限:無料プランでは月間 5,000 件、有料プラン (Premium) では無制限に近い件数を登録可能です(2024 年 10 月時点のプラン比較[^1])。
※ 上記数字は執筆時点の情報であり、将来的に変更される可能性があります。利用前に公式ページをご確認ください。
Instapaper API キー取得手順
- 設定画面左メニューの 「Extensions」 → 「API Access」 を開く。
- 「Generate New Token」 ボタンをクリックし、表示された Consumer Key と Consumer Secret をコピーして安全に保管する。
- API 呼び出し時は OAuth 1.0a 認証が必須です(Python の
requests_oauthlibが手軽です)。
Python スクリプトサンプル
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import csv import time from requests_oauthlib import OAuth1Session # -------------------- 設定項目 -------------------- CONSUMER_KEY = 'YOUR_CONSUMER_KEY' # Instapaper から取得したキー CONSUMER_SECRET = 'YOUR_CONSUMER_SECRET' # Instapaper から取得したシークレット CSV_PATH = 'pocket_export.csv' # Pocket エクスポート CSV のパス SLEEP_INTERVAL = 1.0 # 1 リクエストあたりの待機秒数(60 req/分に合わせる) # ------------------------------------------------- insta = OAuth1Session(CONSUMER_KEY, client_secret=CONSUMER_SECRET) def import_url(url: str, title: str | None = None) -> int: """Instapaper に 1 件の URL を登録し、ステータスコードを返す""" endpoint = 'https://www.instapaper.com/api/add' payload = {'url': url} if title: payload['title'] = title response = insta.post(endpoint, data=payload) return response.status_code, response.headers def main() -> None: with open(CSV_PATH, newline='', encoding='utf-8') as f: reader = csv.DictReader(f) for i, row in enumerate(reader, start=1): status, headers = import_url(row['url'], row.get('title')) if status == 201: # 成功 print(f'[{i}] Imported') elif status == 429: # レートリミット超過 wait = int(headers.get('Retry-After', 60)) print(f'Rate limit hit. Waiting {wait}s...') time.sleep(wait) continue # 同じ行を再試行 else: print(f'[{i}] Error {status}') time.sleep(SLEEP_INTERVAL) # レートリミット回避用スリープ if __name__ == '__main__': main() |
ポイント解説
- レートリミット回避策:
SLEEP_INTERVALを 1 秒に設定し、1 分間のリクエスト数が 60 件以内になるよう調整しています。429 (Too Many Requests) が返された場合はRetry-Afterヘッダーで指示された秒数だけ待機します。 - エラーハンドリング:ステータスコード 201 が成功、その他はコンソールに出力して処理を続行します。必要に応じてログファイルへ書き出すとトラブルシュートが容易です。
移行後の整理・検証とよくあるトラブル対処
データ移行が完了したら、タグやフォルダ(旧称: コレクション)の整合性を確認し、ブラウザ拡張機能が正しく動作するかテストします。本セクションでは主要なチェックリストと、よくあるエラーへの対処法をまとめました。
主要ブラウザ拡張機能のインストールと切替設定
Instapaper は Chrome・Edge・Firefox・Safari 向けに公式拡張機能が提供されています。以下の表は各ブラウザでの入手方法と、Pocket から Instapaper へ保存先を切り替える手順です。
| ブラウザ | 入手先 | インストール手順 | 保存先切替 |
|---|---|---|---|
| Chrome | Chrome ウェブストア(Instapaper) | Chrome メニュー → 「拡張機能」→「Chrome ウェブストアで管理」→検索して追加 | 拡張設定画面で 保存先 を「Pocket」から「Instapaper」に変更 |
| Edge | Microsoft Store(Instapaper) | Edge の右上メニュー → 「拡張機能」→「Microsoft Store から取得」→インストール | 同上 |
| Firefox | Mozilla アドオン(Instapaper) | メニューボタン → 「アドオンとテーマ」→検索して追加 | 同上 |
| Safari | App Store(Instapaper Extension) | Safari のメニュー →「Safari 拡張機能」→App Storeで入手 | 同上 |
注意:拡張機能を有効化した後は、ブラウザの再起動が必要になることがあります。特に Edge では設定変更が反映されないケースが報告されていますので、必ず再起動して確認してください。
よくあるエラーと対処法
| エラー | 原因例 | 推奨対策 |
|---|---|---|
| 拡張機能が反応しない | ブラウザ側で拡張が無効化されている、またはキャッシュが古い | 拡張管理画面で「Instapaper」を有効化 → 一度無効にしてから再有効化 → ブラウザを再起動 |
| 429(レートリミット) | API 呼び出しが短時間に集中した | スクリプトの SLEEP_INTERVAL を調整、または Retry-After ヘッダーで待機 |
| タグが欠落する | CSV の tags 列がスペース区切りの場合、Instapaper がカンマのみ認識 | CSV 編集時にタグ列をカンマ区切りに統一し再インポート、もしくはインポート後に手動で追加 |
| インポート件数が不足 | ファイルサイズが大きすぎてタイムアウトした | CSV を 2,000 件程度の小分けファイルに分割し、順次インポート |
タグ・コレクションのマッピング方法
- Pocket の tags 列 はスペース区切りまたはカンマ区切りで保存されます。移行前に自分が使いやすい形(例: カンマ区切り)へ統一しておくと、Instapaper 側での自動認識率が上がります。
- Instapaper では 「Folder」 が単一階層です。主要なタグをフォルダ名に変換し、サブタグは記事詳細画面から手動で付与すると管理が楽になります。
- 大量の記事の場合は、インポート後の 検索バー で特定タグを検索し、結果一覧から同一フォルダへドラッグ&ドロップすると一括整理できます。
データ検証チェックリスト
- [ ] エクスポートした CSV/HTML の行数が Pocket の保存件数と一致しているか確認する。
- [ ] Instapaper の「All」ビューでインポートされた記事数が期待通り(5,000 件以内)であることをチェックする。
- [ ] 重要なタグ/フォルダが正しくマッピングされているか、ランダムに数件開いて目視確認する。
- [ ] ブラウザ拡張機能から保存した新規記事が Instapaper に即時反映されることをテストする。
- [ ] 429 エラーや重複エントリのログが残っていないか、スクリプト実行結果をレビューする。
上記項目をすべてクリアできれば、Pocket から Instapaper への移行は完了です。データが安全に保管されたことを確認したら、広告なし・快適な読書体験を存分にお楽しみください。
参考情報
[^1]: Instapaper 公式プラン比較ページ(2024 年 10 月閲覧)。https://www.instapaper.com/plan
[^2]: Instapaper API ドキュメント – Rate Limits セクション。https://www.instapaper.com/api