hatena.dummy@gmail.com

ShazamのMacOSX版とiOS版

 どうも検出精度が違いすぎる。
iOS版だと日本側のiTMSamazonにある曲はかなりの確率で出てくるし、
たまにiTMSでも売ってないものがヒットするんだけど、
Mac OSX版だとJpopはまず出てこない。

 通信内容を見てみたんだけど、
Mac OSX版の方はリクエストのJsonがちょっと簡素というか、
位置情報が抜けてるっぽい。
 デスクトップで位置情報拾えないからなのか、
あるいは最初からMac OSX版がこうなってるのかはよくわかんない。
 あと、曲のデータをPOSTしてるであろうドメインが微妙に違うんだよなあ。

サンプル曲:日本側iTMSで販売しているKIRINJIのネンネコ

Mac

Request URL:http://macct.shazam.com/shazam/v1/ja/JP/mac/-/recognise/FD8330D2-1366-4C0D-99CD-CAD076253932/9B2595D5-7DED-4284-8D6D-404041DABF77/activeforeground

Request JSON:
{
"timezone": "Asia\/Tokyo",
"signature": {
"uri": "data:audio\/vnd.shazam.sig;base64,mAYAAAW8mnj\/\/\/\/\/AAAAMAkACQ(中略)Gll\/HWw==",
"samplems": "12004"
},
"timestamp": "1470210420363",
"context": {
"ntp": {
"offset": "0.000000",
"timestamp": 0
},
"image": {},
"watermark": {
"mood": {
"messages":
}
}
},
"geolocation": {}
}

Response Json:
{
"intervalseconds": 20,
"sampleseconds": 12,
"stopseconds": 21600,
"matches":
}

iOS版
Mac OSX版と違って曲検索を開始する前に、
https://beacon.shazam.com/shazamencore/9.7.1/ja/JP/ios/iPad3%2C3/beacon/03261DCC-4634-4378-BB50-B4926E6E4812/userevent?clientcreationtimestamp=1470210304&clientbeaconuuid=73149030-05F8-4826-97C9-96540D5367CF&b10=C&spc=0&type=taggingstarted&location=(中略)%2C(中略)%2C(中略)%2C(中略)&ec=1&spcs=none&osversion=9.3.3&b9=A&screenname=mytags&amc=0&fbc=0&origin=primary&sessionid=C4F2E487-574A-4827-B3D6-161C556A4C25
こんな感じで位置情報や時間をサーバーに通知してる。
iOS版は検索結果の曲を日時を添えてタグ登録するんで、その準備じゃなかろうか。

Request URL:https://amp.shazam.com/discovery/v4/ja/JP/ipad/-/tag/03261DCC-4634-4378-BB50-B4926E6E4812/7CDB34BF-7748-44F2-A9E0-1E860F6CD85B?encore=true&sync=true

Request Json:
{
"timestamp": "1470210301330",
"timezone": "Asia\/Tokyo",
"geolocation": {
"longitude": (中略),
"latitude": (中略),
"altitude": (中略)
},
"context": {
"ntp": {
"offset": "0.000032",
"timestamp": 1470210301330
},
"watermark": {
"mood": {
"messages":
}
},
"image": {}
},
"signature": {
"uri": "data:audio\/vnd.shazam.sig;base64,mAIAAAW8mnj\/\/\/\/\/AgAAMB(中略)a2FwBSluEVAGDYdlD",
"samplems": "3181"
}
}

Response Json:
{
"matches": ,
"tagid": "7CDB34BF-7748-44F2-A9E0-1E860F6CD85B",
"retryms": 5000
}

Mac OSX版は何度も同じPOSTを続けてあきらめる。iOS版はすぐにサーバー側から返答が来る。


Mac OSX版はhttp://macct.shazam.com/shazam/v1/ja/JP/mac/-/recognise/以下に
iOS版はhttps://amp.shazam.com/discovery/v4/ja/JP/ipad/-/tag/以下にPOSTしてるんだけど
ここをCharles proxyあたりで書き換えれば動くかなあ??
ついでにリクエストのJsonにダミーの位置情報を添えて...
と言うところでめんどくさくて放置。

とりあえずShazamの開発元にはメール投げてあるけど、
目に留まってくれるといいな。