メディアマーカーからブクログへの移行 その2

前回は、CSVデータをメディアマーカーからダウンロードするところまで進みました。

ぶっちゃけ、そのままそれをスプレッドシートか何かで管理するのも手だと思いますが、とりあえずはブクログへの移行です。

前回の課題は、ダウンロードしたファイルの形式とブクログで受け付けてくれる形式が異なるので、それをどげんとしなきゃいかん、ということでした。

当初は、何かしらコードを書いて処理しようと思っていたら、もう、ありました。

メディアマーカーの CSV をブクログ形式にするやつ

rubyが使えればOKなようです。Macならターミナルからそのまま使えます。

ここで、急に分かれてしまうでしょう。「えっ、簡単じゃん」「えっ、難しそう」。

はい、わかります。わかりますよ。なんといっても僕も後者の方ですからね。とりま、やってみます。

ファイル準備

まず、コードの処理を見てみると、処理するデータはすべての項目が含まれているようです。前回は使いそうなものを選択しましたが、このコードでは余計なものを省いてくれるもよう。よって、メディアマーカーから全項目のデータを取得し直します。

コメントに”coding: utf-8″とあったので、UTF-8形式です。

で、それをどこかフォルダに入れておきます。

コード準備

次にコードです。

メディアマーカーの CSV をブクログ形式にするやつ

のコードを、テキストエディタにでも貼り付けて、保存します。名前は、mm2bl.rb。ファイルは先ほどと同じフォルダにします。

これで準備ができました。

いざ実行

ターミナルアプリを立ち上げます。

cdコマンドで、ファイルを保存してあるフォルダに移動します。

cd mm

一応lsで中身を覗いておきましょう。

ls

[参照:【保存版】Macでターミナルで使える基本のコマンド8選]

無事、目的としているファイルがありました。あとは、rubyを実行するだけ。

コードの書き方はメディアマーカーの CSV をブクログ形式にするやつに書いてありますが、ファイルが同じフォルダ内にあるので、若干書き方は変わります。

ruby mm2bl.rb MediaMarkerExport.csv > output.csv

はい、無事完成です。

このoutput.csvを、「まとめて登録 (CSV)」に投げ込めばOKですね。

で、アイテムが取得できなかったものがいくつかありましたが、とりあえず、無事完了しました。

rashitaの本棚 (rashita) – ブクログ

インポートした分が「登録数」に反映されていませんが、細かいことは気にしないでおきましょう。2000以上のアイテムを手作業で移行させる手間に比べたら、小さいことです。

これで以降は、ブクログを使っていけそうです。

躓いたエラー

というのは、実はかなり編集が入っていまして、途中でいくつか引っかかりました。

“`encode’: U+301C from UTF-8 to Windows-31J (Encoding::UndefinedConversionError)”

みたいなエラーが出てうまく変換できなかったのです。

で、上は、「おい、この文字はうまく変換できんぞ!」というエラーなので、メディアマーカーからダウンロードしたもとファイルをテキストファイルで編集すれば大丈夫です。

引っかかった文字は、「〜」「²」「−」の三つ。これを「削除」「2」「−」に置換して事なきを得ました。多少コメントの中身が変わってしまっていますが、2000以上のアイテムを手作業で(以下略

逆に、そういう文字が本文に入っていなければ、たぶん大丈夫なのではないかと思います。

とりあえずエラーが出たら、エラー文でググるのが吉です。

ちなみに、文字コード周りは以下を参照しました。

Unicode一覧 – Wikipedia
変換できない全角マイナス – 4D
Unicode Character ‘MINUS SIGN’ (U+2212)
String#encodeが変換できそうで変換できない文字 – ネットの海の片隅で

さいごに

今回は、「メディアマーカーの CSV をブクログ形式にするやつ」のコードをお借りして、メディアマーカーからブクログへの移行を完了させました。

文字コード周りのエラーがなかったら、たぶん2分くらいで終了したと思います。お手軽です。しかし、これまで一切rubyを触ったことがない方には、若干敷居が高いでしょう。

ExcelやNumbersでCSVを編集すれば簡単なのですが、そうすると””が消えてしまいます。厄介です。もちろん、それを置換で補う方法もあります。

ExcelでCSVを作成するとなぜかダブルクォーテーションで囲ってくれないのでその対処法 – モンキーレンチ

どちらにせよ一手間は必要なようです。

とりあえず、ポイントは、

・サービスID, アイテムID, 13桁ISBN, カテゴリ, 評価, 読書状況, レビュー, タグ, 読書メモ(非公開), 登録日時, 読了日、の並びのCSVデータを作ること。

・各項目は””で括られていること

・サービスIDは、Amazon.co.jpなら1を入れること

・アイテムIDは、ASINコードを入れること

で、これを押さえておけばどんなルートを辿っても大丈夫です。

あと、細かい情報は別にいいから本だけは移行したい、という場合は、

まとめて登録 (ISBN)

を使う手もあります。メディアマーカーからISBNだけを出力させ、100ごとにコピペして登録していくわけです。冊数が2000冊でも20回程度の登録作業で済みますね。

と、思いつくかぎりの手法を紹介してみました。皆様の移行がうまく進めばよいのですが。

▼こんな一冊も:

ソーシャル時代のハイブリッド読書術
C&R研究所 (2016-04-21)
売り上げランキング: 105,939