Tuesday, January 8, 2008

YouTube - Jazz Service

YouTube - Jazz

YouTube - Jazz Service : http://www.cemkozinoglu.com/youtube/

Summary:

This search tool is created to test the effects of dynamically created navigators on YouTube's search experience.
My intention is to create categories within the search results, which would enable users to find what they are looking for without the need of typing more queries. This creates a contextually aware front-end so that the user is not left on his/her own. Using drilling up/down by filters, users can filter in/out their result sets. To ignore natural language crossovers between entities, I focused search on Jazz.


Technology used:

* Entities: Stored in mySQL DB [entity, type]
* Search API: Zend GData YouTube objects are used to retrieve data from YouTube (PHP)
* Front-end: Using JavaScript and Ajax calls to retrieve HTML & JSON objects for navigators from backend(PHP)
* Design: Taken from YouTube official site / CSS is edited & Logo changed
* Auto Completion: Using YUI JavaScript Framework's autocompletion module.


What really happens?

When the user types a query:

1) Front-end sends a query to DB using XHR to a serverside PHP script, which queries mySQL.
2) PHP script return a JSON object with the matching entities.
3) Using YUI Frameworks Auto Completion module, queries suggested to the user from the incoming results.


When the user sends a query:

1) Front-end sends 15+1 async requests to YouTube search api (due to limitations, one can only pull 50 results at a time)
2) 15 * 50 = 750 results are then compared as they come to mySQL DB which have entities, and found matches are merged to navigators.
3) This creates the counting up effect while navigators are loading.
4) Once 15 requests are completed, merged navigators are enabled along with filters and users can drill down.

No comments: