### PlayStation Title Info Checker v1.3.2 by kood (@kood_infothief) ###

http://kood.info/pstic/
[PS1/PS2/PS3/PS4/PSP/PSVITA] のコンテンツの [タイトルID/コンテンツID/PSストアの製品ページのURL] から知る事の出来る情報を表示します。
※XXXXYYYYYの形のタイトルIDだけでなく、ハイフンがあるタイトルID(XXXX-YYYYY)や末尾に_00があるタイトルIDも認識します。
※コンテンツIDを入力するとそこからタイトルIDが、URLを入力するとそこからコンテンツIDとタイトルIDが抜き出されそれらを使用する処理が行われます。
※更新履歴はchangelog.htmlにまとめています。(最新は v1.3.2 - 2020/06/04)

### チェック (※各チェックで取得された情報は後に続くチェックで使用される事があります) ###

  • Media Check (タイトルIDで)
  • Region/Rights Check (物理メディアのタイトルIDで)
  • Type Check (物理メディアのタイトルIDで)
  • Region/Rights Check (PSVitaのタイトルID(PCSx)で)
  • Region Check (PSMのタイトルIDで)
  • Region Check (PS3/PSPのDL版のタイトルID(NPxx)で)
  • Rights/Type Check (PS3/PSPのDL版のタイトルID(NPxx)で)
  • Region Check (PS4のコンテンツIDで)
  • OfficialPage/GameFAQs Check (PS4/PSVitaの物理メディアのタイトルIDで)
  • OfficialPage Check (PS1/PS2のタイトルIDで)
  • OfficialPage Check (PS3/PSPのコンテンツID/物理メディアのタイトルIDで)
  • OfficialPage Check (PSVitaのコンテンツIDで)
  • Tmdb Check (PS1/PS2のタイトルID(SLUS)で、PS3のタイトルIDで)
  • Tmdb Check (PS4のタイトルIDで)
  • Update Check (PS3のタイトルIDで)
  • Update Check (PS4のタイトルIDで)
  • Update Check (PSPのタイトルIDで)
  • Update Check (PSVitaのタイトルIDで)
  • Tid Cid Check (PS3/PS1アーカイブス/PSP/PSVitaのタイトルIDで)
  • Chihiro Check (PS4のタイトルIDで)
  • Chihiro Check (コンテンツIDで(PS Video含む))
  • Tumbler Search (Chihiro Checkに失敗した場合)
  • Redump Check (PS1/PS2のタイトルIDで、PS3の物理メディアのタイトルIDで)
  • PSXDatacenter Check (PS1/PS2のタイトルIDで)
  • ### URLのパラメータ ###

    以下のパラメータを使用可能です。複数のパラメータを使用する場合は&で繋げてください。
    ※「PlayStation Title Info Checker」部分をダブルクリックすると、その時の状態のパラメータを付与したURLがコンソールに出力&クリップボードにコピーされます。 例)

    ### Resetボタン ###

    一度チェックを実行するとResetボタンが表示されます。Resetボタンはグローバル変数のリセットとテキストボックス/表示のクリアを行います。
    チェックボックスにチェックを入れる際、変数に格納されている内容によってはそのままそのチェックが実行されるため、それを避けたい場合は押してください。
    通常は押さなくても構いません。テキストボックスに新たなタイトルID/コンテンツID/URLを入力した場合も変数のリセットと表示のクリアが行われます。

    ### Tid Cid Check ###

    PS3/PS1アーカイブス/PSP/PSVitaのタイトルIDとコンテンツIDを対応付けたjsonからコンテンツIDを取得します。
    コンテンツIDが必要な場合に実行されます。(全てのタイトルIDとコンテンツIDが登録されているわけではありません)
    (NPSのtsvを拝借し、タイトルIDとコンテンツIDのみのjsonに変換しました)
    ps3_psp_psv_psx_tid_cid.json

    ### OfficialPage/GameFAQs Check ###

    PS4/PSVitaの物理メディアのタイトルIDでGoogle検索してソニーのゲーム紹介ページかGameFAQsのリリース情報ページを探し、そのページから他の
    チェックに必要なタイトルID(PS4の場合はCUSA、PSVitaの場合はPCSx)を探すと同時に、他の情報も取得/表示します。
    PS4/PSVitaの物理メディアのタイトルIDを検出した場合は必ずこのチェックが実行されます。
    ソニーのページとGameFAQsのページの両方が見つかった場合、前者が優先され、目的であるタイトルIDが見つからなかった場合にはGameFAQsから
    タイトルIDを探すようにしています。目的であるタイトルIDが見つからなかった場合、他のチェックは出来ないのでそこで処理は終了です。
    ※ゲーム紹介ページ関連の処理はリージョンが日本だと判定された場合のみ実行されます。
    ※単純なスクレイピングなのでGoogleからは429エラーが返って来る可能性があります。
    ※Google検索で何らかのエラーが発生した場合はYahoo検索を行います。
    取得/表示する情報(OfficialPage) 取得/表示する情報(GameFAQs)

    ### OfficialPage Check ###

    PS1/PS2/PS3/PSP/PSVitaのタイトルID/コンテンツIDでソニーのゲーム紹介ページのURLを作成し、そこから情報を取得/表示します。
    取得する情報はOfficial/GameFAQs Checkの場合と同じです。
    このチェックは後述するChihiro CheckとTumbler Searchの後に実行されます。仮にそれらに失敗し、このチェックでコンテンツIDやTumbler Searchに
    必要な新しいタイトル名が見つかった場合、再度Chihiro CheckやTumbler Searchが実行されます。
    Official(JP)のチェックボックスにチェックが入っている場合のみ実行されます。また、リージョンが日本だと判定された場合のみ実行されます。
    デフォルトでPS3/PSP/PSVitaを対象外にしているのは、紹介ページの情報表示に需要があるのかどうかが分からないためです。
    Chihiro CheckやTumbler Searchの成功率を上げたい場合はセレクトボックスを変更してください。
    PS1/PS2タイトルの場合、ページにアーカイブスの案内があればコンテンツIDが取得出来るので、PS1/PS2のタイトルIDからアーカイブスのChihiroの
    jsonに到達出来る可能性があります。その処理が嫌な場合はChihiroのチェックボックスのチェックを外してください。

    ### Tmdb Check ###

    PS1/PS2/PS3/PS4のタイトルIDから、ゲームのメタデータを記したTmdbのxml(PS2/PS3)/json(PS4)のURLを導出し、そこから情報を取得/表示します。
    Tmdbのチェックボックスにチェックが入っている場合のみ実行されます。
    ※PS1/PS2タイトルではタイトルIDがSLUSの場合のみ実行されます。(PS3用にTmdbが用意されているのだと思います)
    ※全てのゲームに対してTmdbのxml/jsonが存在するわけでは無いようです。
    ※データが存在しない場合には "404" と表示されます。
    URL例) 取得/表示する情報 (PS2/PS3) 取得/表示する情報 (PS4)

    ### Update Check ###

    PS3/PS4/PSP/PSVitaのタイトルIDから、ゲームの更新データの情報を記したxmlのURLを導出し、そこから情報を取得/表示します。
    Updateのチェックボックスにチェックが入っている場合のみ実行されます。
    ※データが存在しない場合には "404" と表示されます。
    URL例) 取得/表示する情報 (PSP/PS3) 取得/表示する情報 (PSVita) 取得/表示する情報 (PS4)

    ### Chihiro Check ###

    PS Storeの製品情報を記したjsonのURLを作成し、そこから情報を取得/一部を表示します。
    Chihiroのチェックボックスにチェックが入っている場合のみ実行されます。
    ※データが存在しない場合には "404" と表示されます。
    URL例) 私が把握している製品情報のjsonのURLのフォーマットは以下の4種です。
    CheckerではcontainerとtitlecontainerのURLの作成を採用しています。
    titlecontainerはPS4タイトルでのみ(?)有効っぽく、異なるリージョンのjson取得にも対応しているようです。
    CUSA06027(日本版MHW)を例にすると、国コード/言語コードがjp/jaだとCUSA06027のjsonが取得出来、us/enだと北米版MHWであるCUSA07713のjsonが取得出来ます。

    CheckerではDLCやテーマのjson取得も考慮し、titlecontainerで済むPS4のゲーム本編(PS4のタイトルID入力)以外はcontainerのURLを作成するようにしています。
    containerはコンテンツIDが必要なため、PS4以外のタイトルIDを入力した場合は、Update Check, Tid Cid Check, Tumbler Search, OfficialPage Checkで取得したコンテンツIDで
    URLを作成して情報の取得を試みます。データが存在しない場合には "404" と表示されます。Tid Cid Check, Tumbler Search はChihiro Checkに組み込まれています。
    Tid Cid Checkが失敗した場合、他のチェックで取得したタイトル名を用いてPS StoreのAPIであるValkyrieの検索機能tumbler-searchのURLを作成し、コンテンツIDを探します。
    (tumbler-searchのjsonからコンテンツIDを探す処理をCheckerではTumbler Searchと表記しています)

    国コードと言語コードに関しては、Chihiroのセレクトボックスが"default"の場合、6通りの国コードと言語コードの組み合わせから、他のチェックで判別したリージョン情報をもとに
    決定します。("jp/ja","us/en","gb/en","kr/ko","hk/zh","hk/en")(リージョンが判別出来ていない場合、リージョンをUSと見なし、国コードと言語コードは"us/en"になります。)
    セレクトボックスが"default"かつPS StoreのURLを入力してチェックを開始した場合は、URL中の国コードと言語コードを使用するようにしています。
    国コードと言語コードの組み合わせは94通り存在するため、PS StoreのURLを入力してチェックを開始しない限り、データが存在しない無効なURLが作成される可能性があります。
    その事と、PS4タイトルの別リージョンのjsonを取得したい場合を考慮し、セレクトボックスで国コードと言語コードを選択出来るようにしています。
    セレクトボックスで"default"以外を選択すると、選択した国コードと言語コードを用いたURLが作成されます。

    取得/表示する情報 コンテンツのサイズは、Checkerは1024B=1KBで計算しますが、PS Storeは1000B=1KBで計算するようなので結果は異なります。
    Eligibilitiesは、おそらく、所持している場合は購入可能/不可になる製品の情報が格納された配列です。
    おそらく、operatorがtrueの製品を所持していると購入可能となり、falseの製品を所持していると購入不可となります。
    CheckerではIDとoperatorの情報を表示します。他の情報は役割が不明なので表示するようにはしていません。
    IDがコンテンツIDの場合は、クリックするとそのIDでChihiro Checkを実行出来るようにしています。
    Entitlementsは、おそらく、購入する事で実際に得られる製品の情報が格納された配列です。
    通常は1つで、バンドル製品の場合に複数の製品の情報が格納されています。Checkerでは複数件登録されている場合に表示します。(タイトル、ID、サイズ)
    Discount/Rewardは、Checkerでは、セール/Plus限定価格/EAAccess限定価格、の情報が存在する場合に表示します。
    rewardsという配列に格納されており、内容が分かりやすいようにCheckerではDiscount/Rewardと表記しています。
    サイズ、Eligibilities、Entitlements、rewardsはdefault_skuという製品情報のオブジェクトから取得しています。
    default_skuの他にskusという製品情報の配列が存在し、default_skuの内容を含め複数件登録されている場合があります。
    通常はdefault_skuと同内容の物のみですが、私が把握している限りではdefault_skuのoperatorがfalseの場合に購入不可ではなく製品内容を変更したい場合に複数件登録されています。
    (バレットガールズ2のDLCでのみ確認。バレットガールズ2のDLCは、バレットガールズの同名のDLCを所持している場合に無料になる(それをoperatorで判定している?))
    複数件登録されている場合、CheckerではNon default skuとして表示します。(ID、価格、Eligibilities、Entitlements、Discount/Reward)

    テスト不足ですが、PS VideoのコンテンツIDを用いたChihiro Checkにも対応しています。
    取得/表示する情報 (PS Video)

    ### Tumbler Search ###

    Chihiro Checkで有効なURLが作成されなかった場合に、PS StoreのAPIであるValkyrieの検索機能tumbler-searchのURLを作成し、コンテンツIDを探します。
    URLの作成では他のチェックで取得したタイトル名を使用します。(検索結果を増やすため、検索結果を減らす可能性がある文字以降を取り除いた文字列でURLを作成します)
    (検索結果から無駄を省くため、"platform=vita" のようにして検索結果を対象のハードに絞ります)
    tumbler-searchのjsonから、以下に該当する製品のコンテンツIDを探します。 コンテンツIDの末尾16文字はゲームの開発者が自由に設定可能な文字列です。そのため、全く別の製品と一致してしまう可能性があります。

    ### Redump Check ###

    PS1/PS2/PSPのタイトルIDをRedumpの検索機能に投げ、Redumpから情報を取得/表示します。
    Redumpのチェックボックスにチェックが入っている場合のみ実行されます。
    取得/表示する情報

    ### PSXDatacenter Check ###

    PS1/PS2のタイトルIDからPSXDatacenterのURLを探し、PSXDatacenterから情報を取得/表示します。
    URLはCheckerが持つ ps1_ps2_psxdatacenter.json から探します。
    PSXDatacenterのチェックボックスにチェックが入っている場合のみ実行されます。
    テスト不足であり、また需要があるかどうか分からないため、デフォでは無効にしています。
    取得/表示する情報

    ### Download ###

    ご自身のWebサーバ環境で使用したい場合は以下からダウンロードしてください。
    PlayStationTitleInfoChecker v1.3.2.zip
    スクレイピングに使用するajax.phpとredump.phpではリファラーの判定を行っています。
    "http://localhost/" 以外で使用する場合は、11行目のコメント(//)を外してから使用してください。

    ### Credits ###