2020年3月29日日曜日

Publish API のMethod: photos.listでデータ取得

Publish API のMethod: photos.listでデータ取得

filterは必須じゃないので空欄でもEXECUTE可能です。pageSizeの最大値は200ですが、pageTokenを使えば、続きのデータを取得可能です。最初に200個のデータを取得すると、最後に"nextPageToken"があるので、その文字列をpageTokenに貼り付けると次のデータを取得可能になります。

pageSizeを4→5→8→10と少しずつ増やしてみると、拒否された写真のデータが返って来ないことが分かりました。10個要求しても8個しか返って来ません。400個まで取得してみると395個しか返って来ないので、拒否されている枚数と一致です。1322個まで取得可能でしたが、累計で1307個しか返って来ないことが分かりました。15枚の不足です。現在拒否としてリストアップしているのが5枚、それ以外に5枚は拒否を確認出来ているのですが、あと5枚不明な写真があるようです。探すのが面倒だな。
宇賀神社、すずめ地獄が2枚、通潤橋、乗用車内の5枚と最近拒否を確認した5枚、後5枚が分からない。

EXECUTEした結果は下記の様にツリーを折りたたんだ状態で全てを選択してコピーすると楽です。

テキストエディタ等にペーストすれば内容を見ることが可能です。JSONエディタ等で開くとツリー表示と切り替えて見ることが出来ます。今回は日本語対応の「J_and_E」を使ってみました。
J and EでJSONファイルをツリー表示した様子
pageSizeを10とし、10個だけ取得した例です。0番目の一部を開いています。
9番目の後にnextPageTokenがあります。

私の場合は1,300枚ほどなので、200枚×7回で全データを得ることが出来ますが、枚数が多い人は自動化しないと面倒でしょうね。

☆JSONデータからphotoIdの値だけ抽出する方法(Windows10)
コマンドプロンプトでjqコマンドを使うと簡単に抽出出来ます。
※jq-win64.exeをjq.exeにファイル名を変えて使ってます。
c:\>type file.json | jq .photos[].photoId.id > photoId.txt

jqに-rを付けるとダブルクォーテーション無しになります。
c:\>type file.json | jq -r .photos[].photoId.id > photoId.txt

閲覧数のみは下記で抽出可能です。
c:\>type photolist.json | jq -r .photos[].viewCount > view_count.txt

typeコマンドをパイプ「|」でつないで、リダイレクト「>」でファイルに書き込みます。
これでphotoIdだけのリストファイルが作成されます。
リダイレクトを「>>」として7回分を追加書き込みしてソートしておくと便利です。
週に一回photoIdリストを取得しておくと、不具合発生中の承認と拒否の推移が分かります。コマンドプロンプトで下記の様にすると同じフォルダーのファイルをアペンドします。
c:\>copy /b photolist_*.json photolist_all.json

定期的にlistを取得するとviewCountのみ変化する。この行は下記で削除可能。
※位置情報が変わるのでおかしい(末桁が四捨五入??)詳細は未調査
type photolist.json | jq "del(.photos[].viewCount)" > photolist_delview.json
※代替方法 エディタMeryの置換で「^.*viewCount.*\n」を検索し削除する。

正規表現を使用、置換後の文字列欄は空白に


placeIdは下記で抽出可能です。ソートの後に重複削除が必要です。
c:\>type file.json | jq -r .photos[].places[].placeId > placeId.txt

clipにパイプすると、クリップボードに書き込みます。
c:\>type file.json | jq -r .photos[].places[].placeId | clip

【Windows 10】「クリップボード履歴」を活用する

※コマンドプロンプトでファイル名・ディレクトリ名を補完する機能はTABキーです。

2 件のコメント:

  1. 情報ありがとうございます。
    photos.list試してみました。photoIdだけのリストを作成した所、360度写真の枚数も分かりました!1,000枚超えが当面の目標で、もうそろそろ超えていると思っていたのですが、枚数確認できて一安心です。

    返信削除
  2. この記事がお役に立ったようで良かったです。
    SVAの重複インポートが原因でダブった写真を削除したのですが、これがリストでは復活してます。
    この様な、ちょっとおかしなデータもあるようです。

    返信削除