「読んだ本」をObsidianで管理する
先日、以下の記事を書きました。
この中で、「読み終えた本の読書メモをノートとして記録する」ときに、AmazonのPA-API(Product Advertising API)というAPIを使っていると紹介しました。
具体的に、どのようにしてページを生成しているのかについて解説します。
PA-APIとは
PA-APIはAmazonで販売されている商品について、その情報を取得できるAPIです。APIはApplication Programming Interfaceの略で、プログラムから既存のライブラリを使うときに、そのライブラリを呼び出すインターフェイスのことです。
PA-APIの場合、Amazonが販売している商品の情報を取得するライブラリがAmazon側にあり、そのライブラリを使うときにどのようにしてパラメータを渡せばよいのか、という情報が公開されているのです。
そして、それをさまざまなプログラミング言語から呼び出すためのSDK(Software Development Kit)も提供されています。
利用者としては、上記のサイトに書かれている内容に沿って、自分の好きなプログラミング言語でAmazonのライブラリを呼び出すことで、Amazonで販売されている商品の情報を取得できます。
取得できる情報
では、具体的にどのような情報が取得できるのでしょうか?
たとえば、書籍のISBNを指定して情報を取得すると、プログラミング言語としてPHPを使った場合は、以下のような結果が得られます。
Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\ItemInfo Object
(
[container:protected] => Array
(
[byLineInfo] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\ByLineInfo Object
(
[container:protected] => Array
(
[brand] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\SingleStringValuedAttribute Object
(
[container:protected] => Array
(
[displayValue] => 翔泳社
[label] => Brand
[locale] => ja_JP
)
)
[contributors] => Array
(
[0] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\Contributor Object
(
[container:protected] => Array
(
[locale] => ja_JP
[name] => 増井 敏克
[role] => 著
[roleType] => author
)
)
)
[manufacturer] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\SingleStringValuedAttribute Object
(
[container:protected] => Array
(
[displayValue] => 翔泳社
[label] => Manufacturer
[locale] => ja_JP
)
)
)
)
[classifications] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\Classifications Object
(
[container:protected] => Array
(
[binding] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\SingleStringValuedAttribute Object
(
[container:protected] => Array
(
[displayValue] => 単行本(ソフトカバー)
[label] => Binding
[locale] => ja_JP
)
)
[productGroup] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\SingleStringValuedAttribute Object
(
[container:protected] => Array
(
[displayValue] => 本
[label] => ProductGroup
[locale] => ja_JP
)
)
)
)
[contentInfo] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\ContentInfo Object
(
[container:protected] => Array
(
[edition] =>
[languages] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\Languages Object
(
[container:protected] => Array
(
[displayValues] => Array
(
[0] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\LanguageType Object
(
[container:protected] => Array
(
[displayValue] => 日本語
[type] => 発行済み
)
)
)
[label] => Language
[locale] => ja_JP
)
)
[pagesCount] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\SingleIntegerValuedAttribute Object
(
[container:protected] => Array
(
[displayValue] => 296
[label] => NumberOfPages
[locale] => en_US
)
)
[publicationDate] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\SingleStringValuedAttribute Object
(
[container:protected] => Array
(
[displayValue] => 2019-05-13T00:00:01Z
[label] => PublicationDate
[locale] => en_US
)
)
)
)
[contentRating] =>
[externalIds] =>
[features] =>
[manufactureInfo] =>
[productInfo] =>
[technicalInfo] =>
[title] => Amazon\ProductAdvertisingAPI\v1\com\amazon\paapi5\v1\SingleStringValuedAttribute Object
(
[container:protected] => Array
(
[displayValue] => IT用語図鑑 ビジネスで使える厳選キーワード256
[label] => Title
[locale] => ja_JP
)
)
[tradeInInfo] =>
)
)
これは、以下の本の情報を取得した場合です。
少し長いですが、「出版社」や「著者」、「ページ数」、「発行日」、「タイトル」などが取得できていることがわかります。
また、他にも書影のURLやAmazonでの売れ筋ランキングなど、Amazonのページ内で取得できるような情報をプログラムから取得できます。
Obsidianでノートを生成する
あとは、上記の情報を使って、Obsidianで管理するようなノートを生成するプログラムを作成します。ISBNを指定して実行するだけで、Obsidian用のMarkdownファイルを生成するのです。
私の場合は、生成するファイル名としてISBNを使っています。これは、同じタイトルでファイルが重複することを避けるためです。
ただし、ISBNだけだと、どの本なのかパッとみてわかりません。そこで、Obsidianが備える「エイリアス」の機能を使います。
また、あわせて本の情報をタグで管理しています。たとえば、上記の『IT用語図鑑』の場合は、次のようなファイルを「4798160016.md」というファイル名で生成します。
---
tags: ["書籍/著者/増井敏克", "書籍/出版社/翔泳社", "書籍/発売日/2019/05"]
aliases: ["IT用語図鑑 ビジネスで使える厳選キーワード256"]
---
# IT用語図鑑 ビジネスで使える厳選キーワード256
## 書籍情報
- 著者など
- 増井敏克(著)
- 出版社:翔泳社
- 発売日:2019-05-13
- ページ数:296
![書影](https://m.media-amazon.com/images/I/515mtH16KIL._SL500_.jpg)
先頭のフロントマター部分の「tags」でタグを指定することで、同じ著者の本や同じ出版社の本を管理できますし、発売日が近い本を調べることもできます。
「aliases」でエイリアスを指定しているため、Obsidianのクイックスイッチャーで本のタイトルの一部(たとえば「図鑑」)と入力するだけで、その文字が含まれているノートの一覧に表示されます。もちろん、他のノートからリンクするときも、補完候補として表示されるのです。
読書メモを追記して管理する
本を管理するとき、書籍の情報だけでなく、読書メモなどを記録したい場合もあります。
このときも、Markdownで管理しているObsidianは便利です。具体的には、上記で生成したページ内にいくらでも情報を追記できるのです。
購入した日や読んだ日を書いてもいいですし、読んだ感想を書いても問題ありません。一般的な書籍管理ツールで機能が不足していても、Obsidianならさまざまな工夫ができるのです。
もちろん、上記ではページ数は単純なテキストですが、ObsidianのDataviewプラグインを使って集計することもできます(ページ数の部分をInline fieldなどにしておく)。これにより、これまでに読んだページ数の合計などを簡単に集計できるのです。
こうなると、単純な読書メモというよりも、データベースというイメージで使えます。
ぜひいろいろ試してみてください。
この記事が気に入ったらサポートをしてみませんか?