« Previous Entries

Google Channels, Google Recommendations

Apr 20 2007

Back in December 2006 I sent in a reply to Google's "Big Idea Challenge";

What is Google's Next revolutionary product and why? We are looking for final year students and recent graduates who are creative and think differently. By answering the question posed above in the The Big Idea Challenge*, you have the opportunity to impress us and get a job at Google. Your answer can be in any format you choose; this might be a business plan, schematic diagram, presentation, or just some text. The top entrants will be invited to the Googleplex in London to meet the team and talk through their Big Idea.

Google responded with a phone call asking for details and they said they'd send me some information via email, I never heard from them again. With Google's latest spate of recommendation gadgets and their latest product change, "web history" (something I have been waiting for for a while because I was fed up of never being able to search my history – an offline version would be nice and more secure), it seems relevant to post what I submitted.

I called it Google Channels, for lack of better words and to embrace Google's brilliant naming tradition (see: Froogle's death, one of my favourite play on words). This was my pitch:

PDF Summary & Advert for Product

PDF Google Proposal

Google Channels
A free, automated, user specific and editable channel to facilitate the discovery of entertainment on the internet.

The Problem

Finding entertainment is very much a different process to an information search. For information, a user, for the most part, knows what he or she is looking for and creates an appropriate search query to find what they need. For current entertainment search processes, a user must know what they want to read, watch or listen to before beginning their search. This, in many respects, is contrary to the act of discovering fresh entertainment. In mature mediums there exist two paths – one for the acquirement of media and a second for its discovery. Internet search acts predominantly as the former similar to a cinema which shows a film you chose specifically to watch. Examples of the latter are television, radio and libraries; each provides a selection of entertainment services for the discovery of new quality content.

The internet today offers a unique worldwide medium for text, video and audio; it has quickly become the ultimate entertainment, communication and information hub. Google, with aims to organise the world's information, has made great strides in providing tools for finding information fast, and via Gmail and Google Talk (amongst others) online communication is being made easier. With the emergence of flash streaming and legal movie and music downloads it is now the entertainment aspects of the internet that must be addressed by Google. The first steps have already been taken with Google Video and YouTube. I believe Google's next big innovation should be to improve the accessibility and discovery processes for the wealth of quality content available on the internet, to match the second element of Google's aim: to make content universally accessible.

The closest the internet currently has to an entertainment discovery service is "StumbleUpon" a site that allows users to recommend web pages so that readers may stumble through the internet finding its hidden sweet spots. Other undertakings include; The "Venice Project", from Niklas Zennstrom and Janus Friis, creators of Skype, which sees their focused efforts in creating a recommendation driven Broadband TV service for quality video content delivery and discovery. Last.fm, a British based company, collates music listened to and generates free customised radio stations for discovery of new music. I believe now is the time for Google to begin developing a service in this field, as internet content begins to escape the confines of the PC box. Last.fm’s growing popularity and success is proof that there is a demand.

The Solution

For Google Channels to solve these entertainment search issues it needs to offer two things; first it must deliver interesting content and secondly this must suit the user’s tastes. Google already has a head-start with regards to content delivery; its extensive crawl index, video and book libraries present the essence of a solution (though to my knowledge no Google owned music or audio database currently exists). To show content that is relevant, knowledge of the users' tastes must be known and items must be grouped by similarity. Google Sets is already the foundation of these grouping functions – searching for television shows like “Family Guy” and “The Simpsons” yields “South Park” as a top suggestion. Knowledge of the user can be obtained through existing data or by user input.

Creating the Channel

Google's personalized search data can give an accurate portrayal of a user's tastes (e.g. top search terms), as does their rating trends, labelling actions and Google Talk's music trends. Collating this data with similar neighbours and data from Google Sets, a selection of materials matching the user's tastes is produced without needing search. Hence a user-specific recommendations channel is generated, creating the basics for a discovery driven internet service (an extension of the pre-existing personal homepage gadget "Interesting things for you"). With refinements through categorisation this channel can be split into genre specific bands.

The alternative approach is to ask the user for a few things they already enjoy – favourite music artists, websites, television shows and books may be key pointers. Using a grouping structure a list of recommendations can be generated, allowing relevant content from indexes (Books, Google Video, RSS feeds, etc) or established channels to be combined into a personalized channel. As Google Channels evolves the accuracy of recommendations will improve.

Channel Implementation

Implementation becomes the next question; channels may be video, audio or written, or an amalgamation. Video channels may be a generated stream of video not unlike television channels, with one recommended video continuing directly on from the previous – this stream may play live to multiple parties, play from a chosen point (e.g. select first video from a list), be skipped through or downloaded. Music channels may act like those on Last.fm, playing music similar to artists the user already knows, they could also be geared towards podcast discovery or online radio which may then be played in-browser. Reading lists would act much like existing feed aggregation services, however could contain a degree of useful automation and Google Book recommendations to inform users of literature, sites and news that interests them yet lies outside of their confined internet corner.

User Control

User editing adds significant benefits:

·        Remove subjects that are uninteresting.

·        Actions when viewing channels may include:

·        "add similar items to my channel"*,

·        "add this item to my channel",

·        "add items in this label to my channel",

·        "create new channel based on",

·        "label item/channel",

·        "ban items in this category",

·        "ban this item",

·        "blog this item/channel",

·        "share this item/channel",

·        "combine channels",

·        “recommend item/channel”

·        “invite user to chat”

·        “rate this item/channel”

·        Recommendations can evolve using rating systems that promote good content and ban bad content.

·       Complete control of channel could bring true "internet TV" to life.

* e.g. “add sites similar to Slashdot.org”, letting users find domains that match their normal reading materials without the trouble of building a specific search query to find them.

Once channels are created the next logical steps are sharing of channels, channel labels, recommended channels, RSS channel feeds, top channels lists, searchable channels database, public and private channels, embeddable channels, sponsored channels, channel collaboration, Google Talk integration for chat whilst viewing, content databases allowing creators to add their work directly to channels (much like the existing YouTube channels system), exclusive content or subscription channels.

Targeted Advertising

Revenue streams for Google and content creators are also instantly apparent. Google would know the full specifics of the 'now playing' content. Hence incorporation of Google Ads is only a stone's throw away. Video channel features can be interlinked by relevant video ads, and similarly for audio. For incentives to create channels owners may receive payments from a pay per click or impression initiative. The cost of displaying ads on a channel may also be proportional to the number of regular viewers or readers a channel has.

Creators of content (e.g. a television network) may wish to receive more return and have greater control of proceedings; a corporate control panel may be an option. Similarly an advertising control panel may be helpful to large advertising corporations that want to specifically control when and where their ads are shown.

Benefits Elsewhere

Other benefits to Google are the natural categorisation and sorting made by users of channel content, which will not only improve recommendation quality but also add to the usefulness of Google search results; for instance a fuzzy search that returns results matching the users search aims but not necessarily matching their query; particularly helpful for those having trouble refining search terms. 

Foobar Code Release Pack Version 0.2

Feb 20 2007

Many have asked for this, rather than rush out the first release I spent a while refining the code and commenting the various sections. Hopefully everything will be relatively understandable. All image sources are defined in variables at the top of the code, as are font sizes, colours and alignment variables. Please look at the readme.txt file which contains links and information about the required components, fonts and images. The code is in the new standard .pui format which should be placed in your “ C:\Documents and Settings\USER\Application Data\foobar2000\PanelsUI” folder and loaded through Foobar2000’s PanelsUI preferences dialogue.

The code has been released under the Creative Commons Attribution-NonCommercial-ShareAlike 2.5 license which allows derivative works. Please do not remove the link back to this website or the copyright information.

Download Version 0.2

I am now openly accepting feature requests and answering questions.
NOTE: For Single Column Playlist, Row Height: 17, Group Rows: 5
My Windows Visual Style is Inverso Reborn Balanced and a discussion and link can be found here. A good resource for downloading artist images is http://artists.trivialbeing.org

Components Required

Fonts

  • Bebas
  • Calibri – Comes with Windows Vista and cannot be redistributed (but you may find a site that has it)
  • BigNoodleTitling

PanelsUI – The next step in Foobar aesthetics

Feb 14 2007

Terrestrial has done it again, this time it is his third component, PanelsUI . Until now, all foobar menus, toolbars and panels were arranged using ColumnsUI in any desired grid format – these panels were distinguished by irremovable borders that were defined by Window's visual style, much to the distate of budding user interface designers everywhere. PanelsUI offers a clean new approach – using scripts (in the familiar trackinfo mod format) panels themselves can be absolutely positioned and played with. New "persisting variables" or PVARS allow these scripts to store and edit variables in memory using buttons (see function: $button). In combination a slew of exciting new opportunities are possible; tabbed panels without the need for tabs_ui, clickable pop-ups, scripted interaction between trackinfo's, SCPL and PanelsUI, amongst others. To explain in words the potential is proving difficult, so I will show you some early design animations:

Tabbed panels, changed by clicking the buttons on the bottom menu
The image

Pop-up playlist, this appears beneath when thin (as below) and to the side when wide.
The image

A pop-up menu, buttons and control panel
The image

Im sure I will think of some much more advanced uses of this integration in the near future. But for now I think this is exciting enough. For those interested, to get going, the code for tabbed panels in PanelsUI is:

$select($add($getpvar(display.mode),1),
$panel(Option1,Track Display,0,20,%_width%,140,)
,
$panel(Option2,Album list,0,20,%_width%,140,)
,
$panel(Option3,Console,0,20,%_width%,140,)
)
$button2(0,160,0,0,14,14,button text,button text,'PVAR:SET:display.mode:0',)
$button2(14,160,0,0,14,14,button text, button text,'PVAR:SET:display.mode:1',)
$button2(28,160,0,0,14,14, button text,button text ,'PVAR:SET:display.mode:2',)

This simple example (that needs the button text replaced with a $font()text code) is the basis for tabs, clicking the first button shows the track display, the second an album list, third a console.

Foobar SCPL Code Fix

Feb 3 2007

Just a quick note to say I have cleaned up my SCPL code and fixed all the known bugs, get the latest code here (the old one had a lot of code left over from a previous SCPL, all of which has now been removed):

http://host.trivialbeing.org/up/foobarfixed2.txt

– Fixed the crop issues related to selected and now playing songs
– Made the track title text area adaptive to the width of the window, so it crops only when it needs to
– Stopped album art showing for groups with only 1 track, as in this case the picture is ridiculously small.

Some images:
The image The image The image

Foobar SCPL Updates 2

Jan 30 2007

Well, it seems I am never satisfied with my foobar designs, so I spent some time last night refining it some more.

I decided to alter my SCPL to make things clearer. The code is here (note, this is a work in progress and the code still looks messy), row height = 17, group rows = 4: GROUP | ITEMS

Some things to note, the album art resizes to an optimum display size, so that albums of three tracks only can have art work displayed without all the other albums suffering from a small display size. The maximum image size is also easily defineable, so with one change I can make all the artwork scale up to 300px. The second image shows how Various Artist albums are handled.

I built the playcounts into a form of hotness rating, so that the more a track is played the deeper orange and brighter the track becomes. The ratings system is separate to this.

« Previous Entries