WebブラウザでのKindle UnlimitedとPrime Readingの検索

Webブラウザ上のAmazonで Kindle Unlimited の本だけを検索することがうまくできなかったので少し調べた。また、Prime Reading も検索するページを少し調べた。動作確認のために、Amazon Kindle Unlimited と Prime Reading の検索ページを作成した。

以下の記述は、2019年10月14日の時点のものである。

参考にしたWeb

kindle unlimited検索を作ってみた」にURLについての調査の結果があり、Kindle Unlimited のみの検索をするページも用意されている。

URLのフィールドで分かりにくいところがあったので、もう少し検索すると次のStackOverflowに情報が少しあった。

What’s the meaning of Amazon’s URL?

また、Amazonで Prime Reading を探してその際のURLを調べてみた。

検索用URLの構造

2つのサイトの情報をまとめると以下のようになっているようだ。

k=検索語

「k=」の後に検索語を含める。複数の場合には「+」でつなぐ。

rh=

Kindle Unlimited や Prime Reading、検索対象のカテゴリを指定する。複数の指定がある場合には「,」で区切る。

Kindle Unlimited

「p_n_feature_nineteen_browse-bin:3169286051」でKindle Unlimited を指定するようだ。

Prime Reading

「p_n_special_merchandising_browse-bin:5304495051」でPrime Reading を指定するようだ。

カテゴリ

「n:2250738051」のようにしてkindle 本のカテゴリであることを示す。

カテゴリの指定はなくても検索できるが、カテゴリの指定がない場合にはAmazon全体からkindle unlimited を探すことになるようだ。

Kindle Unlimited の場合には、「n:2250738051」が指定されている。これで検索のカテゴリを Kindle 本に制限しないと、一時的に利用できない Kindle Unlimited の対象も表示されてしまうようである。

Prime Readingの場合には、ちょっと調べた範囲では、「n:2250738051,n:!2250739051,n:2275256051」が指定されていた。ただ、これを指定するとKindle本以外の商品が検索結果に含まれるようであり、正しくない気がする。

Kindle Unlimited だけを検索する

以上からもっとも単純にKindle Unlimited で「WordPress」を検索する場合には、次のようにすればよいようだ。

https://www.amazon.co.jp/s?k=WordPress&rh=p_n_feature_nineteen_browse-bin:3169286051

検索のカテゴリを Kindle 本に制限する場合には、次のようになる。

https://www.amazon.co.jp/s?k=WordPress&rh=p_n_feature_nineteen_browse-bin:3169286051,n:2250738051

Prime Reading だけを検索する

同様に、Prime Reading で「WordPress」を検索する場合には、次のようにすればよいようだ。ただし、Kindle Unlimited を契約しているためか Prime Readingが本当に有効なのか判然としない。

https://www.amazon.co.jp/s?k=WordPress&rh=p_n_special_merchandising_browse-bin:5304495051

検索のカテゴリを Kindle 本に制限する場合には、次のようになるはずだが、Kindle本以外も検索結果に含まれることがある。

https://www.amazon.co.jp/s?k=WordPress&rh=p_n_special_merchandising_browse-bin:5304495051,n:2250738051,n:!2250739051,n:2275256051

WordPress用ページ

Kindle Unlimited と Prime Readingの検索ページを次のURLに作成した。

Kindle Unlimited Prime Reading 検索カテゴリをKindle本に限定(Prime Reading...

ページの内容は以下の通り。

<input id="keywords" type="text" size="30" />
<input id="search" type="button" value="検索" />
<label for="unlimited"><input id="unlimited" type="radio" name="amazon" checked="checked" />Kindle Unlimited</label>
<label for="prime"><input id="prime" type="radio" name="amazon" />Prime Reading</label>

<label for="kindle"><input id="kindle" type="checkbox" checked="checked" />検索カテゴリをKindle本に限定(Prime ReadingではKindle以外も出力されるようになってしまいます)</label>
<label for="url">
    URL: <input id="url" size="30" type="text" />
</label>

<!--raw-->
<script type="text/javascript">
// <![CDATA[ 
    function search() {
        var words = document.getElementById('keywords').value; var encoded = encodeURIComponent(words);
        var url = 'https://www.amazon.co.jp/s?k=' + encoded + '&rh='

        var unlimited = document.getElementById('unlimited').checked;
        var prime = document.getElementById('prime').checked;
        var checked = document.getElementById('kindle').checked;
        if (unlimited) {
            url = url + "p_n_feature_nineteen_browse-bin:3169286051";
            if (checked) { url = url + ",n:2250738051" }
        } else if (prime) {
            url = url + "p_n_special_merchandising_browse-bin:5304495051";
            if (checked) { url = url + ",n:2250738051,n:!2250739051,n:2275256051" }
        }

        document.getElementById('url').value = url;
        window.open(url, '_blank');
    }

    function enter() {
        if (window.event.keyCode == 13) {
            search();
        }
    }

    window.onload = function () {
        document.getElementById('keywords').onkeypress = enter;
        document.getElementById('search').onclick = search;
    }
// ]]>
</script>
<!--/raw-->