Google Search by Image API

Google hasn’t officially released its new search by image API so I thought of researching and writing a small article on how one can use this searching technique in their custom web, desktop and mobile apps.

Here’s a quick analysis first. Basically you replicate what the browser does for you and scrape the response.

Search Location: http://www.google.co.in/searchbyimage/upload

Request Headers:
Host: www.google.co.in
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.google.co.in/imghp?hl=en&tab=ii
Cookie: PREF=ID=1d7bc4ff2a5d8bc6:U=1d37ba5a518b9be1:FF=4:LD=en:TM=1300950025:LM=1302071720:S=rkk0IbbhxUIgpTyA; NID=51=uNq6mZ385WlV1UTfXsiWkSgnsa6PdjH4l9ph-vSQRszBHRcKW3VRJclZLd2XUEdZtxiCtl5hpbJiS3SpEV7670w_x738h75akcO6Viw47MUlpCZfy4KZ2vLT4tcleeiW; SID=DQAAAMEAAACoYm-3B2aiLKf0cRU8spJuiNjiXEQRyxsUZqKf8UXZXS55movrnTmfEcM6FYn-gALmyMPNRIwLDBojINzkv8doX69rUQ9-

You can ignore most of the above and use standard HTTP headers of a normal browser or CURL it.

What’s important is the multipart form data which gets posted to the Search Location Above:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

The HTML form below posts everything for you, results of which you could scrap and use it for your app.

<html>
<body>
<form action = “http://www.google.co.in/searchbyimage/upload” METHOD=”POST” enctype=”multipart/form-data”>
<input type =”file” name = “encoded_image”>
<input type=”Submit” name = “Search” value = “Search”>
<input type = “hidden” name = “h1″ value =”en”>
<input type = “hidden” name = “safe” value =”off”>
<input type = “hidden” name = “bih” value =”800″>
<input type = “hidden” name = “biw” value =”1280″>
<input type = “hidden” name = “image_content” value =”">
<input type = “hidden” name = “filename” value =”">
</form>
</body>
</html>