KDP(電子出版)のメモ 急急如律令

Amazon Kindleダイレクト・パブリッシングでの電子出版や電子書籍の作成販売について、文章やイラストの作成や編集方法について書いています。

いろいろなキンドルのセール

 いろいろなキンドルのセール品をまとめてみました。出版社名から、本の傾向がなかなか予想がつかない事が多い。電子書籍になってから、新興の電子専門の出版社に本を委託する著者が増えてきている。

 そのために有名な本であっても聞いたことがないような出版社から出ることがある。

 

 

星海社11円セールとか50%オフ他

https://kyukyunyorituryo.github.io/kindle_sale/html/星海社.html

 

グループ・ゼロ、6円から11円セール

https://kyukyunyorituryo.github.io/kindle_sale/html/グループ・ゼロ.html

 

ナンバーナイン、11円セール

https://kyukyunyorituryo.github.io/kindle_sale/html/ナンバーナイン.html

 

フリーハンド、極!合本シリーズ、99円セール

https://kyukyunyorituryo.github.io/kindle_sale/html/フリーハンド.html

 

ゴマブックス、55、77、99、110円セール

https://kyukyunyorituryo.github.io/kindle_sale/html/ゴマブックス.html

キンドルの発売日から本の検索

 キンドルの発売日情報を取りたかったので色々やってみた。商業作品だったらISBNみていれば、発売されるかどうかはわかる。KDPによる個人の出版などは、アマゾンから情報を取るしかない。PAAPIというアマゾンから情報を取れるAPIもあったが、多く情報を取ろうとするとアマゾンのページを示されるだけだった。

 結論から言うと5月7日発売のキンドルの本は下のリンクから取れます。「&field-date=20200507」URLの末尾につけると日付を指定できる。

https://www.amazon.co.jp/s?i=digital-text&bbn=2275256051&rh=n%3A2250738051%2Cn%3A2275256051%2Cp_n_date%3A20200507&dc&page=2&qid=1588859923&ref=sr_pg_2

 

これは検索結果の2ページ目だけの表示になっている。このままではURLエンコードされていて見づらいので、デコードします。なぜ2ページ目から書いているかというと1ページめを指定するとpage=の部分が削除されるから。i=digital-textはキンドルを指している。n:から続く数字はBrowseNodeを示している。簡単に言うとカテゴリーのコードです。

https://www.amazon.co.jp/s?i=digital-text&bbn=2275256051&rh=n:2250738051,n:2275256051,p_n_date:20200507&dc&page=2&qid=1588859923&ref=sr_pg_2

 

 デコードすると多少は見やすくなりました。この様になると検索条件の予想がつくと思う。

 

 これで何をするかというと、単純にキンドルの本のASINを取得に利用する。

 

99nyorituryo.hatenablog.com

  ここで触れたのだけど、上のアドレスのページで、F12キーを押してコンソールを選んで、コンソール画面で下のように貼り付けると、クリップボードに表示された本のasinがコピーされる。

table=document.querySelectorAll("h2.a-size-mini > a")
asin=//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}

copy(asin)

 

 これをスクレイピングツールなんかで利用すると一括して本のasinが取得できる。それをPAAPIでasinから書誌情報を取得するとアフィリエイト用の画像やURLを得られる。

 

99nyorituryo.hatenablog.com

 

ただ、問題は大量の期間限定無料本や分冊版や単話が引っかかる。期間限定無料本は毎日のように大量に重複しているので検索ではゴミでしかない。アマゾンもそれらを除外した、紙の本と同時発売された本だけを集めた分類枠を作っている。けれど、それではKDP作品がとれない。

 

 そうやってキンドルの新刊データを集めてできたのがこのサイト。

kyukyunyorituryo.github.io

 

 

 参考にしたサイト。

kindou.info

blog.hitsujin.jp

paperwhiteを初期化した

 使い始めて8年ぐらい経っていて、何故かダウンロードした本が開かなくなっていた。その他に動作がもっさり気味にもなっていたので一旦リセットしてみよう。どうも開くのに時間がかかるし、読み込みにも時間がかかる。中のファイルを見るといっぱいあるようで全体を検索しているのだろうか。

 不具合の原因は色々思いつくのだけど、多すぎて判別がつかなかった。EPUBを作っては実験を繰り返していたので不具合の原因の想定が多すぎる。

 

 初期化の手順は

www.amazon.co.jp

  1. ホーム画面でメニューを選択します。
  2. 設定を選択します。
  3. メニューを再度選択し、リセットを選択します。

とあったが、登録まで行くとフリーズした。そのために強制再起動を行った。電源ボタン長押しで、再起動するかが聞いてくる。

 

 

版元ドットコムとアマゾンから新刊情報を取得する

 版元ドットコムの新刊情報からISBNだけをとてみようと書いてみた。openBDからでも取れるかと思ったけど、新刊情報はややとりにくそうだった。どうしてもISBNなので電子書籍の新刊が取得できないという問題が有る。

 

 

www.hanmoto.com

新しい本からテキストで表示を選んでから。F12でコンソールを表示して、

table=document.getElementsByTagName('table')[0].children[0].children
isbn=;//配列宣言
for (let i = 0; i < table.length; i++) {
isbn[i]=table[i].children[2].children[0].innerText
isbn[i]=isbn[i].replace( /\s|&nbsp;/g , '' )
}
copy(isbn)

とコピペして実行すると、ISBNが100ぐらい取得できる。

 

www.amazon.co.jp

amazonのページからキンドルのASINだけを取りたいときは。

 1ページ目の場合

table=document.getElementsByClassName("s-color-twister-title-link")
asin=;//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}

 2ページ目以降

table=document.querySelectorAll("h2.a-size-mini > a")
asin=//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}

 2つを切り替えるのが面倒だからif文で切り替えて。

if(document.querySelectorAll("h2.a-size-mini > a")[0] != null){
table=document.querySelectorAll("h2.a-size-mini > a")
asin=//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}
}
else{
table=document.getElementsByClassName("s-color-twister-title-link")
asin=[]//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}
}

asin

するとASINが16個取得できる。あとはこれにpa-apiをつなげると、HTMLの出力まで自動化できるかな。

["B084GP19N7", "B085G163PB", "B084QBQDZ3", "B085FZ6ZWM", "B0834SM8FB", "B085H8PW12", "B0832DQP55", "B084JP4NFT", "B0855LZPD3", "B082W598JG", "B0847LF6Z1", "B07PCNK1T7", "B084ZCRMD3", "B0848KGZT4", "B0848XCZBG", "B084YYQB4M"]

 

 

 

 

 

 

 

 

 

薬屋のひとりごと 9 (ヒーロー文庫)

薬屋のひとりごと 9 (ヒーロー文庫)

  • 作者:日向夏
  • 発売日: 2020/02/28
  • メディア: Kindle版
 

 

PA APIで新刊チェックを試みる。

 PA APIが取得できたのだしとりあえず、新刊情報だけでも取得してみるかと思って、少年漫画で検索してみました。ただ、新刊は書影が見つからず、価格も取得できないので、文字とリンクだけになってしまった。発売直前になれば表紙画像も取れるのだろうけど。

  キンドルの本のカテゴリの取得はGetBrowseNodesでやるようだ。そこからSearchItemsでBrowseNodesを指定して検索するといいみたい。

 

 

{ "BrowseNodesResult": { "BrowseNodes": [ { "Ancestor": { "Ancestor": { "ContextFreeName": "Kindleストア", "DisplayName": "Kindleストア", "Id": "2250738051" }, "ContextFreeName": "Kindleストア", "DisplayName": "カテゴリー別", "Id": "2250739051" }, "Children": [ { "ContextFreeName": "文学・評論", "DisplayName": "文学・評論", "Id": "2292699051" }, { "ContextFreeName": "人文・思想", "DisplayName": "人文・思想", "Id": "2292095051" }, { "ContextFreeName": "社会・政治", "DisplayName": "社会・政治", "Id": "2293149051" }, { "ContextFreeName": "ノンフィクション", "DisplayName": "ノンフィクション", "Id": "2291791051" }, { "ContextFreeName": "歴史・地理", "DisplayName": "歴史・地理", "Id": "2293076051" }, { "ContextFreeName": "ビジネス・経済", "DisplayName": "ビジネス・経済", "Id": "2291905051" }, { "ContextFreeName": "投資・金融・会社経営", "DisplayName": "投資・金融・会社経営", "Id": "2292576051" }, { "ContextFreeName": "科学・テクノロジー", "DisplayName": "科学・テクノロジー", "Id": "2293263051" }, { "ContextFreeName": "医学・薬学", "DisplayName": "医学・薬学", "Id": "2292340051" }, { "ContextFreeName": "コンピュータ・IT", "DisplayName": "コンピュータ・IT", "Id": "2291657051" }, { "ContextFreeName": "アート・建築・デザイン", "DisplayName": "アート・建築・デザイン", "Id": "2291481051" }, { "ContextFreeName": "実用・ホビー", "DisplayName": "趣味・実用", "Id": "2292479051" }, { "ContextFreeName": "スポーツ・アウトドア", "DisplayName": "スポーツ・アウトドア", "Id": "2292480051" }, { "ContextFreeName": "資格・検定", "DisplayName": "資格・検定・就職", "Id": "2293536051" }, { "ContextFreeName": "暮らし・健康・子育て", "DisplayName": "暮らし・健康・子育て", "Id": "2292803051" }, { "ContextFreeName": "旅行ガイド・マップ", "DisplayName": "旅行ガイド・マップ", "Id": "2292799051" }, { "ContextFreeName": "語学・辞事典・年鑑", "DisplayName": "語学・辞事典・年鑑", "Id": "2293396051" }, { "ContextFreeName": "教育・学参・受験", "DisplayName": "教育・学参・受験", "Id": "2292600051" }, { "ContextFreeName": "絵本・児童書", "DisplayName": "絵本・児童書", "Id": "2293363051" }, { "ContextFreeName": "Kindle マンガ", "DisplayName": "マンガ", "Id": "2293143051" }, { "ContextFreeName": "ライトノベル", "DisplayName": "ライトノベル", "Id": "2410280051" }, { "ContextFreeName": "ボーイズラブ", "DisplayName": "ボーイズラブ", "Id": "2450063051" }, { "ContextFreeName": "ティーンズラブ", "DisplayName": "ティーンズラブ", "Id": "3432431051" }, { "ContextFreeName": "タレント写真集", "DisplayName": "タレント写真集", "Id": "2291790051" }, { "ContextFreeName": "エンターテイメント", "DisplayName": "エンターテイメント", "Id": "2291568051" }, { "ContextFreeName": "楽譜・スコア・音楽書", "DisplayName": "楽譜・スコア・音楽書", "Id": "2293031051" }, { "ContextFreeName": "雑誌", "DisplayName": "雑誌", "Id": "2275257051" }, { "ContextFreeName": "アダルト", "DisplayName": "アダルト", "Id": "2291476051" } ], "ContextFreeName": "Kindle本", "DisplayName": "Kindle本", "Id": "2275256051", "IsRoot": false } ] } }

 

{ "BrowseNodesResult": { "BrowseNodes": [ { "Ancestor": { "Ancestor": { "Ancestor": { "ContextFreeName": "Kindleストア", "DisplayName": "Kindleストア", "Id": "2250738051" }, "ContextFreeName": "Kindleストア", "DisplayName": "カテゴリー別", "Id": "2250739051" }, "ContextFreeName": "Kindle本", "DisplayName": "Kindle本", "Id": "2275256051" }, "Children": [ { "ContextFreeName": "少年マンガ", "DisplayName": "少年マンガ", "Id": "2430812051" }, { "ContextFreeName": "青年マンガ", "DisplayName": "青年マンガ", "Id": "2430869051" }, { "ContextFreeName": "少女マンガ", "DisplayName": "少女マンガ", "Id": "2430765051" }, { "ContextFreeName": "女性マンガ", "DisplayName": "女性マンガ", "Id": "2430737051" }, { "ContextFreeName": "4コマまんが", "DisplayName": "4コマまんが", "Id": "2430727051" }, { "ContextFreeName": "イラスト集・オフィシャルブック", "DisplayName": "イラスト集・オフィシャルブック", "Id": "2293144051" }, { "ContextFreeName": "マンガ雑誌", "DisplayName": "マンガ雑誌", "Id": "3418785051" }, { "ContextFreeName": "ファンタジーマンガ", "DisplayName": "ファンタジー", "Id": "3686132051" }, { "ContextFreeName": "歴史マンガ", "DisplayName": "歴史", "Id": "3686134051" }, { "ContextFreeName": "ホラーマンガ", "DisplayName": "ホラー", "Id": "3686135051" }, { "ContextFreeName": "格闘技マンガ", "DisplayName": "格闘技", "Id": "3686137051" }, { "ContextFreeName": "メディアミックスマンガ", "DisplayName": "メディアミックス", "Id": "3686138051" }, { "ContextFreeName": "ミステリーマンガ", "DisplayName": "ミステリー", "Id": "3686139051" }, { "ContextFreeName": "ノンフィクションマンガ", "DisplayName": "ノンフィクション", "Id": "3686140051" }, { "ContextFreeName": "ロマンスマンガ", "DisplayName": "ロマンス", "Id": "3686141051" }, { "ContextFreeName": "SFマンガ", "DisplayName": "SF", "Id": "3686142051" }, { "ContextFreeName": "スポーツマンガ", "DisplayName": "スポーツ", "Id": "3686143051" } ], "ContextFreeName": "Kindle マンガ", "DisplayName": "マンガ", "Id": "2293143051", "IsRoot": false } ] } }

 SearchItemsのBrowseNodeが2430812051で検索した結果。SortBy NewestArraivalの設定なので、新着順に並べ替えをした。

{ "SearchResult": { "Items": [ { "ASIN": "B0858Z2R37", "DetailPageURL": "https://www.amazon.co.jp/dp/B0858Z2R37?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-27T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "鶴野くんは恩返しができない 1巻 (デジタル版Gファンタジーコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B0859842KQ", "DetailPageURL": "https://www.amazon.co.jp/dp/B0859842KQ?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-27T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "SCARS 1巻 (デジタル版Gファンタジーコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B085951265", "DetailPageURL": "https://www.amazon.co.jp/dp/B085951265?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "薬屋のひとりごと 6巻 (デジタル版ビッグガンガンコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B0859D548F", "DetailPageURL": "https://www.amazon.co.jp/dp/B0859D548F?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "魔法少女特殊戦あすか 12巻 (デジタル版ビッグガンガンコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B08591SVGL", "DetailPageURL": "https://www.amazon.co.jp/dp/B08591SVGL?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "BADON 2巻 (デジタル版ビッグガンガンコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B08597R1ZW", "DetailPageURL": "https://www.amazon.co.jp/dp/B08597R1ZW?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "やはり俺の青春ラブコメはまちがっている。-妄言録- 16巻 (デジタル版ビッグガンガンコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B0859BNLWX", "DetailPageURL": "https://www.amazon.co.jp/dp/B0859BNLWX?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "君死ニタマフ事ナカレ 9巻 (デジタル版ビッグガンガンコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B085941V5K", "DetailPageURL": "https://www.amazon.co.jp/dp/B085941V5K?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "シノハユ 12巻 (デジタル版ビッグガンガンコミックスSUPER)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B08593VG7Z", "DetailPageURL": "https://www.amazon.co.jp/dp/B08593VG7Z?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "怜-Toki- 6巻 (デジタル版ビッグガンガンコミックス)", "Label": "Title", "Locale": "ja_JP" } } }, { "ASIN": "B0858YDRDL", "DetailPageURL": "https://www.amazon.co.jp/dp/B0858YDRDL?tag=99hatena-22&linkCode=osi&th=1&psc=1", "ItemInfo": { "ProductInfo": { "IsAdultProduct": { "DisplayValue": false, "Label": "IsAdultProduct", "Locale": "en_US" }, "ReleaseDate": { "DisplayValue": "2020-03-25T00:00:00.000Z", "Label": "ReleaseDate", "Locale": "en_US" } }, "Title": { "DisplayValue": "君のお母さんを僕に下さい! 2巻 (デジタル版ガンガンコミックスUP!)", "Label": "Title", "Locale": "ja_JP" } } } ], "SearchURL": "https://www.amazon.co.jp/s?rh=n%3A2430812051%2Cp_n_availability%3A-1&tag=99hatena-22&linkCode=osi", "TotalResultCount": 38764 } }