Shelfari から Goodreads へ:ステップバイステップ移行ガイド

Shelfari と Goodreads はどちらも蔵書管理用のオンラインツールです。両サイトとも「読んだ本」「読みたい本」のリスト作成、レビュー記入、友達からのおすすめ共有などを提供します。以前「4 Great Ways To Keep Track Of Your Expanding Book Collection」で両者を取り上げましたし、Goodreads の詳細レビューも別途あります。
私は最初 Goodreads を使い始め、その後 Shelfari の視覚的なレイアウトと Amazon 連携の利便性から移行しました。しかしリソース消費の多さやモバイルアプリ/API の欠如が問題となり、最近 Goodreads に戻る決断をしました。
既に Shelfari に数百冊のデータが蓄積されている方が多いはずです。本記事では、移行時にできる限り多くのデータを保持して Goodreads に持っていくための手順を、日本語でわかりやすく解説します。
準備事項
事前に以下を確認してください。
- Goodreads のアカウントを作成済みであること。
- スプレッドシート編集ソフトが使えること(Microsoft Excel、iWork Numbers、LibreOffice、Google スプレッドシート等)。
- スプレッドシートが TSV(タブ区切り)を読み込み、カスタム日付書式を扱い、CSV(カンマ区切り)で書き出せること。
本ガイドは OS に依存しない方法として Google スプレッドシートを使用します。手順はやや多いですが、ブラウザだけで完了します。
重要: 元データのバックアップを必ず取ってください。元ファイルを別フォルダに保存しておくと、失敗したときに元に戻せます。
1. Shelfari からデータをエクスポート
Shelfari ではデータのエクスポートが可能です。Shelfari にログインして画面右上の「account settings(アカウント設定)」を選び、「Shelf」タブを開きます。
ページ下部に、すべての本、評価、読了日などを含むタブ区切りファイル(TSV)をダウンロードするリンクがあります。これをダウンロードしてください。
2. Google スプレッドシートに読み込む
Google Drive にログインして新しいスプレッドシートを作成します(Google アカウントが必要)。
メニューの「ファイル -> インポート」を選択して、先ほどダウンロードした TSV ファイルをアップロードします。インポートオプションで『スプレッドシートを置き換える(Replace spreadsheet)』を選び、取り込みを実行します。取り込みに成功すると、Shelfari のデータがスプレッドシート上に表示されます。
注意: 文字コードや改行が原因で列が正しく分離されない場合は、インポート時のオプションで区切り文字を「タブ」に手動設定してください。
3. 書棚(Shelves)データを移す
最初に取り込んだとき、すべての本が『読んだ(read)』として登録されてしまうことがあります。Shelfari の書棚情報を Goodreads の Bookshelves カラムに移す手順を説明します。
3.1 Bookshelves 列を作る
Google スプレッドシートで、任意の位置に新しい列を挿入します(挿入 -> 列右)。一行目のヘッダに「Bookshelves」と入力してください。
3.2 フィルタで抽出し、タグを追加
Shelfari のデータには複数の真偽値(TRUE/FALSE)で書棚情報が入っています。たとえば「I plan to read list」列は、読みたい本が TRUE になっています。
- 対象の列を選択して「データ -> フィルタ」を有効にします。
- 列見出しのドロップダウンから TRUE のみをチェックし、表示されている行すべてに書棚タグを追加します。Bookshelves 列に「to-read」と入力してください。
- フィルタを解除し、同様に他の書棚について繰り返します。複数タグを同じセルに入れる場合はスペースで区切ります(例: to-read favorite)。
対応表(例):
- I plan to read list –> to-read
- I’ve read –> read
Goodreads にネイティブサポートされていないタグ(お気に入り、ウィッシュリスト等)も Bookshelves 列に入れることはできますが、Goodreads 側での振る舞いが限定的である点に注意してください。
4. 列見出し(ヘッダ)を Goodreads 対応へ変更
Goodreads のインポートは特定の列名を期待します。元のエクスポートに含まれる列名を Goodreads の期待列名に合わせます。以下を検索して、ヘッダ行を次のように変更してください。
- Author –> Author l-f
- Edition Author –> Author
- Rating –> My Rating
- PublicationYear –> Year Published
- Note –> Private Notes
(元データにない列があれば追加は不要です。逆に Goodreads が不要な列はこの後削除します。)
5. 日付の整形(YYYY/MM/DD)
Goodreads は通常 YYYY/MM/DD のような日付形式を受け付けます。Google スプレッドシートで日付を整える方法を説明します。
新しい列を作り、ヘッダに「Date Read」などと入力します。元の Shelfari の DateRead 列を参照して、日付があるときだけ変換する式を入れます。例:
=IF(NOT(ISBLANK(number)),TEXT(number,"YYYY/MM/DD"),)ここで number は元の DateRead 列の該当セル参照(例: C2)に置き換えてください。同様に他の日付列も以下の名前で作成します。
- DateRead –> Date Read
- DateAdded –> Date Added
- DatePurchased –> Original Purchase Date
補足: Google スプレッドシートのロケール設定が日本の場合、日付関数や表示が異なる可能性があります。表示がおかしいときはセルの書式設定で日付を指定するか、TEXT 関数のフォーマットを適宜調整してください。
6. 計算式を値に変換(スタティック化)
前の手順で作った日付列は関数で生成されています。Goodreads に渡す CSV には計算式ではなく実際の値を入れる必要があるため、列全体を選択してコピーし、右クリック -> 「形式を指定して貼り付け -> 値のみ貼り付け」を選んで値に変換してください。
7. 不要列の削除
Goodreads は認識しない列を無視しますが、混乱を避けるために不要列は削除しておくとよいです。列ヘッダを右クリックして「列を削除」を選びます。少なくとも以下は削除して問題ありません。
- EditionId
- ASIN
- DateRead(元の未加工列)
- DateAdded(元の未加工列)
- Favorites list
- I plan to read list
- Wish list
- I’ve read list
- I own list
- I’m reading list
削除後、最終的な列順やヘッダ名を一度確認してください。Goodreads のサンプルテンプレートに合わせておくとインポート後のマッピングがスムーズです。
8. CSV にエクスポートして Goodreads にアップロード
完成したスプレッドシートを「ファイル -> ダウンロード -> カンマ区切り(CSV)」でエクスポートします。
Goodreads の「My Books -> add books -> import」ページに行き、CSV ファイルをアップロードします。処理には数分かかる場合があります。処理が完了すると、読み込まれた本が My Books に反映されます。
お疲れさまでした。これで基本的な移行は完了です。
よくあるトラブルと対処法
書名が一致せず重複する
- 同じ書名・別版・別表記のために Goodreads が本を正しく識別できない場合があります。ISBN や ASIN を元に照合できる列があれば優先して使うと精度が上がります。ISBN が欠けている場合は手動マージが必要です。
日付が読み込まれない/形式エラー
- スプレッドシートのセルが文字列扱いになっていると解析に失敗します。値を選択して日付形式に変換するか、TEXT 関数で確実に YYYY/MM/DD 文字列にしてから CSV に出力してください。
Goodreads が Bookshelves を正しく認識しない
- Goodreads のインポートは限定的な棚名しかサポートしないことがあります。最低限『to-read』『read』は認識しますが、独自タグは後から手動で整理する必要があります。
代替アプローチ(状況別)
- 少数(数十冊程度)であれば手作業で GoodReads 上の「Add book」から個別追加するのが確実です。
- 複数のサービスや端末を統合したい場合は Calibre を使い、メタデータを一括管理してからエクスポートする手もあります(ただし Calibre の学習コストがあります)。
- API や自動化ツールを使える環境(技術者がいる)であれば、カスタムスクリプトで TSV を Goodreads API に投げる方法が早いですが、非公式のスクリプトは仕様変更で壊れるリスクがあります。
小さな意思決定モデル(どう判断するか)
- データ量が少ない(<100冊)→ 手動またはスプレッドシートで簡単に移行
- データ量が中程度(100〜1000冊)→ 本手順(TSV→Google Sheets→CSV)がおすすめ
- データ量が大規模(>1000冊)→ バッチ処理やカスタムスクリプト、またはプロの手を借りる検討
ロール別チェックリスト
カジュアルユーザー(個人)
- Goodreads アカウント作成
- Shelfari から TSV をダウンロード
- Google スプレッドシートへインポート
- 必要な列を編集して CSV 出力
- Goodreads にアップロード
パワーユーザー(大量・詳細データ)
- ISBN や ASIN の有無を確認
- 書誌データの正規化(表記ゆれの修正)
- 重複チェックとマージ
- 自動化スクリプトのテスト実行
管理者・チームリード
- バックアップポリシー(元データ保管場所)を決める
- 失敗時のロールバック手順をドキュメント化
- 移行対象と優先順位を一覧化
移行受け入れ基準(チェック項目)
- 主要なメタデータ(著者、タイトル、年、評価)が正しくインポートされている
- 読了日/購入日が YYYY/MM/DD で表示される
- 主要な書棚(to-read、read)が正しく割り当てられている
- 重要な書籍(上位 n 冊)の ISBN/表記が一致している
テストケース/受け入れテスト
- 単一レコードテスト
- 小さな CSV(1 件)を作成しインポート。タイトル・著者・日付が期待通りか確認。
- 複数書棚テスト
- 同一著作を複数のタグ(to-read, favorite)で登録し、Bookshelves のスペース区切りが反映されるか確認。
- 日付無しレコード
- 日付が空の行がエラーにならないことを確認。
- 文字化けテスト
- 日本語タイトルや全角文字を含む行で文字化けが起きないか確認。
リスクマトリクスと緩和策
- データ喪失(中)→ 元ファイルのバックアップを 2 箇所に保存。CSV 出力前にプルーフを取る。
- 表記ゆれによる重複(中)→ 正規化ルール(全角↔半角、スペース除去)を事前に適用。
- 大量レコードのインポート失敗(低〜中)→ 分割して小さなファイルでテストインポートを行う。
ローカル特有の注意点(日本向け)
- 日本語タイトルやルビ、括弧の全角・半角違いで重複扱いになりやすいです。CSV に出す前に全角/半角の統一、不要な全角スペース削除を行ってください。
- Google スプレッドシートのロケールを日本にしていると、日付や小数点の扱いが異なる場合があります。必要ならロケールを一時的に『United States』に変更してからエクスポートすると安定することがあります。
小さなテンプレート(移行 SOP の例)
- 元データをダウンロードして raw_backup フォルダに保存
- Google スプレッドシートにインポート
- Bookshelves 列を作成し、フィルタでタグを移行
- ヘッダ名を Goodreads に合わせる
- 日付列を TEXT で YYYY/MM/DD に変換
- 計算式を値に変換
- 不要列を削除
- CSV エクスポート -> Goodreads インポート
- 10 件程度のサンプリングチェック
- 問題がなければ元ファイルをアーカイブ
マイグレーション後にやると良いこと
- Goodreads 上で「おすすめの友達」を設定し直す(Shelfari 経由のつながりは引き継がれないことがあります)。
- 重要なコレクションは手動で表示の調整を行う(カバーフロー等の見た目設定)。
1行用語集
- TSV: タブ区切りテキストファイル
- CSV: カンマ区切りテキストファイル
- Bookshelves: Goodreads 側の書棚を示す列
マーメイドの意思決定チャート
flowchart TD
A[データ量の確認] -->|<100| B[手動で追加]
A -->|100-1000| C[スプレッドシートで移行]
A -->|>1000| D[スクリプトまたは専門家]
C --> E[CSVに変換してインポート]
D --> Eまとめ
Shelfari から Goodreads への移行は、エクスポート → スプレッドシートで整形 → CSV にしてインポート、という流れが基本です。日付フォーマットや書棚タグ、ヘッダ名の変換に注意すれば、多くのメタデータを保持したまま移行できます。移行前のバックアップと移行後のサンプリングチェックを忘れずに行ってください。
重要: 移行で困った点や特定のケース(ISBN がほとんどない、数千冊ある等)があれば、この記事の下のコメントで状況を書いてください。可能な範囲で追加アドバイスをします。