Patent Publication Number: US-8117193-B2

Title: Tunersphere

Description:
RELATED APPLICATIONS 
     This application is a Continuation-in-Part (CIP) of U.S. patent application Ser. No. 11/963,050, entitled METHOD AND SYSTEM FOR GENERATING MEDIA RECOMMENDATIONS IN A DISTRIBUTED ENVIRONMENT BASED ON TAGGING PLAY HISTORY INFORMATION WITH POSITION INFORMATION, which was filed on Dec. 21, 2007 and is herby incorporated herein by reference in its entirety. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to discovery of media content based on geographic location. 
     BACKGROUND OF THE INVENTION 
     Systems for sharing and generating playlists are known. For example, Gracenote Playlist™ by Gracenote® of Emeryville, Calif., offers playlist generation technology for automatically generating digital music playlists that works in offline devices, including portable MP3 players, as well as desktop applications. 
     Gracenote Playlist Plus™ allows a user to generate a More Like This™ playlist by selecting one or more songs, albums, or artists as seeds. Gracenote Playlist then returns a mix of music that contains music from related artists and genres. This is accomplished by Gracenote Playlist Plus analyzing text data available in file tags, called metadata, and filenames of the music to link the music to an internal database of music information. Gracenote Playlist Plus uses Gracenote&#39;s proprietary metadata types, which include a genre system that has more than 1600 individual genre categories and associated relational data. The system lets Gracenote Playlist Plus find relationships between songs that may be missed by simpler systems. For example, a “Punk Pop” song may be more similar to a “Ska Revival” song than it might be to one belonging to another “Punk” sub-category, such as “Hardcore Punk.” 
     Last.fm Ltd. is a UK-based internet radio and music community website. Using a music recommendation system called “Audioscrobbler”, Last.fm™ builds a profile of each user&#39;s musical taste by recording details of all the songs the user listens to, either on streamed radio stations or on the user&#39;s own computer or music player. This information is transferred to Last.fm&#39;s database (“Scrobbled”) via a plugin installed into the user&#39;s music player. The profile data is displayed on the user&#39;s Last.fm profile page for others to see. The site offers numerous social networking features and can recommend and play artists similar to the user&#39;s favorites. Users can create custom radio stations and playlists from any of the audio tracks in Last.fm&#39;s music library. A user can embed a playlist in their profile page to which others can listen, but the playlist needs to have at least 15 streamable tracks, each from different artists. 
     Similarly, U.S. Pat. No. 7,035,871 entitled “Method and Apparatus for Intelligent and Automatic Preference Detection of Media Content” provides a system for listening to music online by creating a preference profile for a user. When the user signs up for the service and provides details reflecting his preferences and his play history, a preference profile is generated and stored in a preference database. The system analyses the stored profiles in the database and learns from the patterns it detects. The system recommends music to the user with attributes similar to the user&#39;s play history. 
     U.S. Patent Application Publication No. 2006/0143236 entitled “Interactive Music Playlist Sharing System and Methods” describes a community media playlist sharing system, where system users upload media playlists in real-time, which are automatically converted to a standardized format and shared with other users of the community. A playlist search interface module browses the database of media playlists and returns similar playlists of system users based on similarity of one or more of the following inputs from a system user: media identification information, media category information, media relations information, user information, or matching a plurality of media items on respective playlists. Based on the results of the playlist search interface module, the system returns a list of recommended playlists to the user. 
     Although conventional systems for generating playlists perform for their intended purposes, conventional systems suffer disadvantages that may render the results overbroad for the user&#39;s tastes. One disadvantage is that although conventional systems may take into account the playlists of other users, conventional systems fail to analyze the playlists of a specific group of users, and fail to consider peer group influences. For example, the music that a particular teenager listens to may be highly influenced by the music listened to by a group of the teenager&#39;s peers, such as his or her friends. A further disadvantage is that conventional systems fail to take into account the fact that the music tastes of a user may be influenced by his or her geographic location when generating playlists. 
     SUMMARY OF THE INVENTION 
     The present invention relates to identifying one or more media items played within a geographic area selected by a user. In one embodiment, a media service tracks play histories for a number of users registered with the media service, where each play history identifies media items played by the corresponding user as well as the locations at which at least a subset of the media items were played by the corresponding user. The media service enables a requesting user to select or otherwise define one or more geographic areas of interest. Then, based on the play histories, the media service identifies one or more media items played within the one or more geographic areas of interest. The media service then provides data reflecting the one or more media items played within the one or more geographic areas of interest to a device of the requesting user. The data includes one or more of: information identifying the one or more media items played within the one or more geographic areas of interest and the media items played within the one or more geographic areas of interest. 
     In another embodiment, each play history maintained by the media service also includes information identifying times at which at least a subset of the media items identified in the play history were played by the corresponding user. As such, in addition to defining the one or more geographic areas of interest, the requesting user may also define a time window of interest. Then, the media service may identify one or more media items that were played within the one or more geographic areas of interest during the time window defined by the requesting user. Once the one or more media items are identified, the media service provides the data reflecting the one or more media items to the device of the requesting user. 
     In yet another embodiment, the requesting user may additionally define one or more user-based criteria, one or more content-based criteria, or both. Then, the media service identifies media items that were played within the one or more geographic areas of interest, optionally played within a defined time window, and that satisfy the one or more user-based criteria and/or the one or more content-based criteria. The media service then provides the data reflecting the one or more media items to the device of the requesting user. 
     Those skilled in the art will appreciate the scope of the present invention and realize additional aspects thereof after reading the following detailed description of the preferred embodiments in association with the accompanying drawing figures. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWING FIGURES 
       The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the invention, and together with the description serve to explain the principles of the invention. 
         FIG. 1  illustrates a system for identifying media items played within one or more geographic areas of interest to a user according to one embodiment of the present invention; 
         FIG. 2  illustrates the operation of the system of  FIG. 1  according to one embodiment of the present invention; 
         FIG. 3  is a flow chart illustrating a more detailed process for identifying media items played within one or more geographic areas of interest according to one embodiment of the present invention; 
         FIG. 4  is a flow chart illustrating a more detailed process for identifying media items played within one or more geographic areas of interest according to another embodiment of the present invention; 
         FIG. 5  illustrates an exemplary Graphical User Interface (GUI) enabling a user to define one or more media channels according to one embodiment of the present invention; 
         FIGS. 6A through 6I  graphically illustrate an exemplary process by which a user defines multiple media channels and receives corresponding results according to one embodiment of the present invention; 
         FIG. 7  is a block diagram of the central server of  FIG. 1  according to one embodiment of the present invention; and 
         FIG. 8  is a block diagram of one of the devices of  FIG. 1  according to one embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The embodiments set forth below represent the necessary information to enable those skilled in the art to practice the invention and illustrate the best mode of practicing the invention. Upon reading the following description in light of the accompanying drawing figures, those skilled in the art will understand the concepts of the invention and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims. 
       FIG. 1  illustrates a system  10  for identifying media items played within one or more geographic areas of interest to a user according to one embodiment of the present invention. In general, the system  10  includes a media service  12  and a number of devices  14 - 1  through  14 -N having associated users  16 - 1  through  16 -N. The devices  14 - 1  through  14 -N are enabled to communicate with the media service  12  via a network  18  such as, but not limited to, the Internet. The media service  12  includes at least one central server  20  connected to the network  18 , a user accounts repository  22 , and a content repository  24 . Note that each of the user accounts repository  22  and the content repository  24  may alternatively be hosted by the central server  20 . 
     The central server  20  includes a tunersphere function  26 , which may be implemented in software, hardware, or a combination thereof. In general, the tunersphere function  26  includes a playback tracking function  28 , a channel definition function  30 , and a request processor  32 . The playback tracking function  28  operates to track playback of media items by the users  16 - 1  through  16 -N at the devices  14 - 1  through  14 -N. Preferably, the playback tracking function  28  maintains a play history for each of the users  16 - 1  through  16 -N. Using the user  16 - 1  as an example, the play history of the user  16 - 1  includes an entry for each media item played by the user  16 - 1 . Each entry includes information identifying the corresponding media item played by the user  16 - 1  such as, for example, a Globally Unique Identifier (GUID) of the media item, a fingerprint of the media item, a title of the media item, or the like. In addition, for at least a portion of the media items played by the user  16 - 1 , the corresponding entries in the play history of the user  16 - 1  include information identifying locations at which the media items were played by the user  16 - 1 . The information identifying the locations at which the media items were played by the user  16 - 1  may be, for example, latitude and longitude coordinates, a street address, a zip code, an area code, or the like. Still further, for at least a portion of the media items played by the user, the corresponding entries in the play history of the user  16 - 1  may include time stamps identifying times at which the corresponding media items were played by the user  16 - 1 . In one embodiment, a time stamp may indicate a date on which the corresponding media item was played by the user  16 - 1  and a time of day. For example, a time stamp may be Jul. 23, 2008 at 11:17 A.M. EST. 
     In order to track the play histories of the users  16 - 1  through  16 -N, the playback tracking function  28  obtains the play histories of the users  16 - 1  through  16 -N from the devices  14 - 1  through  14 -N. More specifically, in one embodiment, the devices  14 - 1  through  14 -N provide playback information to the playback tracking function  28  automatically in response to playback of media items. Using the device  14 - 1  as an example, when the device  14 - 1  plays a media item for the user  16 - 1 , the device  14 - 1  may automatically provide playback information including information identifying the media item, a current location of the device  14 - 1  which is the location at which the media item is played, and a time stamp. The device  14 - 1  may automatically provide the playback information once playback of the media item has been initiated, after a threshold amount of the media item has been played, or at the completion of playback of the media item. 
     In another embodiment, the devices  14 - 1  through  14 -N automatically provide playback information to the playback tracking function  28  in a batch type process. Using the device  14 - 1  as an example, the device  14 - 1  may periodically provide playback information to the playback tracking function  28  for a number of media items played by device  14 - 1  since the device  14 - 1  last provided playback information to the playback tracking function  28 . In this embodiment, the playback information includes information identifying the media items played by the device  14 - 1  since playback information was last sent, locations at which the media items were played, and time stamps identifying times at which the media items were played. 
     In yet another embodiment, the playback tracking function  28  may request playback information from the devices  14 - 1  through  14 -N periodically or as otherwise desired. Again, using the device  14 - 1  as an example, the playback tracking function  28  may request playback information from the device  14 - 1 . In response, the device  14 - 1  returns playback information for a number of media items played by the device  14 - 1  since the playback tracking function  28  last requested playback information from the device  14 - 1 . Alternatively, the request from the playback tracking function  28  may define a time period such that the response from the device  14 - 1  includes playback information for media items played by the device  14 - 1  during that time period. Alternatively, the device  14 - 1  may return its entire play history to the playback tracking function  28  in response to the request. 
     The channel definition function  30  enables the users  16 - 1  through  16 -N to define media channels for discovering media items played in defined geographic areas of interest to the users  16 - 1  through  16 -N. Using the user  16 - 1  as an example, the channel definition function  30  enables the user  16 - 1  to define a media channel by selecting or otherwise defining one or more geographic areas of interest to the user  16 - 1 . In addition, the user  16 - 1  may define a desired time window, one or more user-based criteria, one or more content-based criteria, or the like. 
     The request processor  32  generally operates to process media requests from the devices  14 - 1  through  14 -N of the users  16 - 1  through  16 -N. Continuing the example above, after the user  16 - 1  has defined the media channel, the user  16 - 1  may initiate a media request. Alternatively, the device  14 - 1  may automatically generate and send the media request to the media service  12 . In response, the request processor  32  identifies one or more media items satisfying the media channel definition and provides a response to the device  14 - 1  of the user  16 - 1 . In one embodiment, the response is a streaming media channel including the media items identified by the request processor  32 . In another embodiment, the response is a list of media recommendations recommending the identified media items to the user  16 - 1 . A media recommendation may include, for example, information identifying the recommended media item, the recommended media item, a preview of the recommended media item, a reference (e.g., URL) to the recommended media item, a reference (e.g., URL) to a preview of the recommended media item, or the like. 
     The user account repository  22  includes a user account  34  for each of the users  16 - 1  through  16 -N. Using the user  16 - 1  as an example, the user account  34  of the user  16 - 1  includes the play history of the user  16 - 1  as maintained by the playback tracking function  28 . Note that if the user  16 - 1  has access to multiple devices  14 - 1 , then a separate play history may be maintained for the user  16 - 1  for each of the multiple devices  14 - 1  or a single aggregate play history may be maintained for the user  16 - 1  for all of the multiple devices  14 - 1 . In this embodiment, the user account  34  of the user  16 - 1  also includes a media channel definition for each of one or more media channels defined by the user  16 - 1 . A media channel definition includes information defining one or more geographic areas of interest. In addition, the media channel definition may include a desired time window, one or more user-based criteria, one or more content-based criteria, or any combination thereof. However, in an alternative embodiment, the media channel definitions may be stored at the device  14 - 1  of the user  16 - 1  and provided to the media service  12  in association with corresponding media requests. 
     The user account  34  of the user  16 - 1  may also include user preferences of the user  16 - 1 , an online status of the user  16 - 1 , collection information for the user  16 - 1 , a friends list of the user  16 - 1 , a group list of the user  16 - 1 , and a user profile of the user  16 - 1 . The user preferences may be defined by the user at, for example, the device  14 - 1  of the user  16 - 1  and then uploaded to the central server  20 . Alternatively, the user  16 - 1  may interact with the central server  20  via, for example, a web interface such as a web browser on the device  14 - 1  to define his user preferences at the central server  20 . As discussed below, the user preferences of the user  16 - 1  may be used to order or sort lists of media items for the user  16 - 1  based on expected desirability. For instance, media items identified by the request processor  32  may be scored based on the user preferences of the user  16 - 1  to provide a sorted list of media items. The user preferences of the user may include, for example, a weight or priority assigned to each of a number of categories such as user, genre, decade of release, and location/availability and each of a number of possible attributes of each of the categories. For an exemplary process for scoring media items based on user preferences defined as category weights and attribute weights, the interested reader is directed to U.S. Patent Application Publication No. 2008/0016205 entitled “P2P Network For Providing Real Time Media Recommendations,” which is hereby incorporated herein by reference in its entirety. 
     The online status of the user  16 - 1  may be used to store information indicating whether the user  16 - 1  is currently online and logged into the media service  12 . The collection information may include a record of media items in a media collection of the user  16 - 1  stored on the device  14 - 1 . Note that in another embodiment, the user  16 - 1  may be associated with multiple devices  14 - 1  (e.g., home computer, work computer, portable media player, mobile smart phone, or the like), where each of the multiple devices  14 - 1  stores a different media collection of the user  16 - 1 . As such, the collection information in the user account  34  of the user  16 - 1  may include a record of media items in each of the media collections of the user  16 - 1 . 
     The friends list of the user  16 - 1  is a list of users with which the user  16 - 1  has a direct relationship in a contact list or buddy list, a list of users with which the user  16 - 1  has a direct or indirect relationship in a social network, or the like. The group list of the user  16 - 1  may define grouping of the users identified in the friends list of the user  16 - 1  (e.g., family, co-workers, friends, or the like). 
     The user profile of the user  16 - 1  may include demographic information describing the user  16 - 1  such as, for example, age, income level, gender, marital status, or the like. In addition, the user profile of the user  16 - 1  may include statistics about the media collection(s) of the user  16 - 1  such as, for example, an artist distribution, a genre distribution, and release year distribution. The artist distribution may include, for example, a number or percentage of media items in the media collection(s) of the user  16 - 1  performed by each of a number of artists. Likewise, the genre distribution may include, for example, a number or percentage of media items in the media collection(s) of the user  16 - 1  in each of a number of genres (e.g., music genres or video genres). The release year distribution may include, for example, a number or percentage of media items in the media collection(s) of the user  16 - 1  released in each of a number of years or range of years. 
     In this embodiment, the content repository  24  may include a number of media items known by the central server  20  and/or content descriptors for each of the number of media items known by the central server  20 . The media items may be audio items such as songs, audio books, audio clips, or similar audio content; video items such as movies, television programs, music videos, video clips, or similar video content; or the like. The content descriptors may contain information identifying each media item known by the central server  20 . For each media item, the content repository  24  may include one or more content descriptors such as, for example, a media fingerprint of the media item, a GUID of the media item, metadata for the media item, a reference (e.g., URL) to the media item in local or remote storage, or the like. Using a song as an example, the metadata for the song may include, for example, a title of the song, an artist of the song, an album on which the song was released, a date on which the song was released, a genre of the song, or the like. 
     Each of the devices  14 - 1  through  14 -N may be, for example, a personal computer, a mobile smart phone having media playback capabilities, a portable media player having network capabilities, a gaming console having network and media playback capabilities, a set-top box, or the like. The device  14 - 1  includes a media player  36 - 1 , a location determination function  38 - 1 , and a content requestor  40 - 1 , each of which may be implemented in software, hardware, or a combination thereof. The media player  36 - 1  operates to play media items from a media collection  42 - 1  of the user  16 - 1  stored locally at the device  14 - 1  or media items streamed to the device  14 - 1  from the media service  12 . 
     Either the media player  36 - 1  or the content requestor  40 - 1  provide playback information to the playback tracking function  28  of the tunersphere function  26  identifying media items played by the user  16 - 1  and locations at which the media items were played. In addition, the playback information may include timestamps defining times at which the media items were played. In one embodiment, in response to playback of a media item by the media player  36 - 1 , the media player  36 - 1  or the content requestor  40 - 1  automatically provides corresponding playback information to the media service  12 . In another embodiment, the media player  36 - 1  or the content requester  40 - 1  periodically provides playback information to the media service  12  for media items played by the media player  36 - 1  in the time period since playback information was last sent to the media service  12 . As a final example, the playback tracking function  28  may periodically request playback information from the device  14 - 1 . 
     The location determination function  38 - 1  generally operates to obtain the location of the device  14 - 1 , where the location of the device  14 - 1  is then included in the playback information provided to the media service  12  as discussed above. In general, the location determination function  38 - 1  may be any software and/or hardware application enabled to determine or otherwise obtain the location of the device  14 - 1 . As an example, the location determination function  38 - 1  may be a Global Positioning System (GPS) receiver. As another example, the device  14 - 1  may be a mobile telephone where mobile base station triangulation is utilized to determine the location of the device  14 - 1 . The location determination function  38 - 1  may then obtain the location of the device  14 - 1  from the mobile telecommunications network periodically or as needed. 
     In this embodiment, the content requestor  40 - 1  interacts with the channel definition function  30  of the tunersphere function  26  to enable the user  16 - 1  to define one or more media channels. In addition, either automatically or when initiated by the user  16 - 1 , the content requestor  40 - 1  issues a media request for a media channel to the tunersphere function  26  of the media service  12 . The content requester  40 - 1  may also operate to process responses received from the request processor  32  of the tunersphere function  26  in response to media requests. In this embodiment, the content requestor  40 - 1  may be implemented as, for example, a standard web browser having web access to the tunersphere function  26 , a plug-in for a web browser, a stand-alone application, or the like. 
     It should be noted that in an alternative embodiment, some of the functionality of the tunersphere function  26  may be implemented on the devices  14 - 1  through  14 -N. For example, the channel definition function  30  may alternatively be implemented at the device  14 - 1  as part of, for example, the content requestor  40 - 1 . The media channel definitions may then be stored locally at the device  14 - 1  and provided to the media service  12  as part of corresponding media requests or in association with corresponding media requests. Alternatively, the media channel definitions may be uploaded to the central server  20  and stored in the user account  34  of the user  16 - 1  where media requests issued by the content requester  40 - 1  may reference the corresponding media channel definition. 
     Like the device  14 - 1 , the devices  14 - 2  through  14 -N include media players  36 - 2  through  36 -N, location determination functions  38 - 2  through  38 -N, content requesters  40 - 2  through  40 -N, and media collections  42 - 2  through  42 -N, respectively. The media players  36 - 2  through  36 -N, the location determination functions  38 - 2  through  38 -N, the content requestors  40 - 2  through  40 -N, and the media collections  42 - 2  through  42 -N are substantially the same as the corresponding elements of the device  14 - 1 . As such, the details regarding the media players  36 - 2  through  36 -N, the location determination functions  38 - 2  through  38 -N, the content requesters  40 - 2  through  40 -N, and the media collections  42 - 2  through  42 -N are not repeated. 
       FIG. 2  illustrates the operation of the system  10  of  FIG. 1  according to one embodiment of the present invention. First, the devices  14 - 1  through  14 -N provide the play histories of the users  16 - 1  through  16 -N to the central server  20  (steps  100 - 1  through  100 -N). As discussed above, the play histories of the users  16 - 1  through  16 -N identify media items played by the users  16 - 1  through  16 -N, locations at which the users  16 - 1  through  16 -N played the media items, and, in some embodiments, times at which the users  16 - 1  through  16 -N played the media items. 
     In this example, via the device  14 - 1 , the user  16 - 1  interacts with the channel definition function  30  of the tunersphere function  26  hosted by the central server  20  to define a media channel (step  102 ). Again, the user  16 - 1  generally defines the media channel by selecting or otherwise defining one or more geographic areas of interest for the media channel. In addition, the user  16 - 1  may define a time window of interest, one or more user-based criteria, one or more content-based criteria, or any combination thereof. The media channel definition is then stored by the central server  20  in the user account  34  of the user  16 - 1  (step  104 ). 
     Next, the content requestor  40 - 1  of the device  14 - 1  sends a media request for the media channel to the central server  20  (step  106 ). In response, the request processor  32  obtains the media channel definition from the user account  34  of the user  16 - 1  and processes the play histories of the other users  16 - 2  through  16 -N, or some select subset thereof, to identify one or more media items that were played within the one or more geographic areas of interest for the media channel and that satisfy any additional criteria for the media channel (step  108 ). In general, the request processor  32  identifies the one or more media items based on the media channel definition which includes information defining one or more geographic areas of interest and, optionally, one or more of the following: a time window, one or more user-based criteria, and one or more content-based criteria. More specifically, in a first exemplary embodiment, the media channel is defined by one or more geographic areas of interest. As such, the request processor  32  may process the play histories of all of the other users  16 - 2  through  16 -N to identify one or more media items that were played at locations within the one or more geographic areas of interest for the media channel. 
     In a second exemplary embodiment, the media channel definition includes information defining one or more geographic areas of interest and a time window. As such, the request processor  32  may process the play histories of the other users  16 - 2  through  16 -N to identify one or more media items that were played at locations within the one or more geographic areas of interest for the media channel during the defined time window for the media channel. The time window may be relative to a current time. For example, the time window may be “within the last 30 days” or “within the last 1 hour.” The time window may alternatively be a static time window. For example, the static time window may be “the year 2008” or “June of 2008.” 
     In a third exemplary embodiment, the media channel definition includes information defining one or more geographic areas of interest and one or more user-based criteria. As such, the request processor  32  may process the play histories of at least a subset of the other users  16 - 2  through  16 -N to identify one or more media items that were played at locations within the one or more geographic areas of interest for the media channel by users satisfying the one or more user-based criteria. The user-based criteria may include, for example, a friends list of the user  16 - 1 , a group of friends of the user  16 - 1 , one or more profile matching criteria, a social distance criterion, a status criterion, one or more keyword criteria, or the like. The friends list may be used by the request processor  32  such that the one or more identified media items are media items played at locations within the one or more geographic areas of interest for the media channel by other users in the friends list of the user  16 - 1 . Similarly, the group of friends may be used by the request processor  32  such that the one or more identified media items are media items played at locations within the one or more geographic areas of interest for the media channel by other users in the group of friends of the user  16 - 1 . 
     The profile matching criteria may be defined such that media items played by users having user profiles that match the user profile of the user  16 - 1  at least to a defined degree are selected. The profile matching criteria may, for example, define one or more user profile elements that must match or match at least to a defined degree, define a threshold number of user profile elements that must match or at least match to a defined degree before two user profiles are determined to be matching, or the like. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel by other users having user profiles that match the user profile of the user  16 - 1  at least to a defined degree. 
     The social distance criterion may define a maximum social distance (e.g., maximum degree of separation) such that media items played by other users within the maximum social network distance from the user  16 - 1  in a social network are selected. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel by other users located within the maximum social distance from the user  16 - 1  in the social network. 
     The status criterion may be defined such that media items played by other users that are currently online are selected. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel by other users that are currently online. 
     In one embodiment, users such as the users  16 - 1  through  16 -N may be enabled to tag other users with keywords. As such, one or more keyword criteria may be defined such that media items played by users tagged with keywords that satisfy the keyword criteria are selected. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel by users that have been tagged with keywords that satisfy the one or more keyword criteria. 
     In a fourth exemplary embodiment, the media channel definition includes information defining one or more geographic areas of interest and one or more content-based criteria. As such, the request processor  32  may process the play histories of at least a subset of the other users  16 - 2  through  16 -N to identify one or more media items that were played at locations within the one or more geographic areas of interest for the media channel and that satisfy the one or more content-based criteria. The content-based criteria may include, for example, seed media item information, a performance criterion, a creator criterion, one or more metadata criteria, an age criterion, one or more keyword criteria, one or more feature criteria, a usage criterion, or the like. 
     The seed media item criteria may be information describing a seed media item. For example, if the seed media item is a seed song, the information describing the seed song may be metadata for the seed song such as an artist of the seed song, an album on which the seed song was released, a year of release of the seed song, a decade of release of the seed song, a genre of the seed song, one or more keywords appearing in the title and/or lyrics of the seed song, or the like. In addition or alternatively, the information describing the seed song may be one or more features of the seed song such as, for example, a tempo of the seed song, beats-per-minute of the seed song, or the like. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel and that match the information describing the seed media item at least to a defined degree. 
     The performance criterion may be defined such that the one or more media items identified by the request processor  32  having a live performance location (e.g., upcoming concert or live performance location) within a defined proximity of a current location of the user  16 - 1  are selected. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel and that have upcoming live performance locations within the defined proximity of the user  16 - 1 . 
     The creator criterion selects media items having artists or other persons that created the media items if the artists or other persons that created the media items are located within a defined proximity of a current location of the user  16 - 1 . The creator of a media item is in proximity to the user  16 - 1  if the creator is within a defined geographic distance from the user  16 - 1 . 
     The one or more metadata criteria may be defined such that media items having metadata that satisfies the metadata criteria are selected. For songs, the metadata criteria may define, for example, one or more desired music genres, one or more desired artists, one or more desired dates of release, one or more desired decades of release, one or more music genres that are not desired, one or more artists that are not desired, one or more dates of release that are not desired, one or more decades of release that are not desired, or the like. Likewise, similar metadata criteria may be defined for other types of audio and video media items. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel and that have metadata that satisfies the one or more metadata criteria. 
     The age criterion may be defined such that media items that have a time lapse since the media items were last played that matches the age criterion are selected. The age criterion may be a time window relative to the current time such as, for example, “last played within previous hour.” The age criterion may alternatively define a time-window relative to a static time such as, for example, “last played after Jul. 22, 2008.” As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel and that satisfy the age criterion. 
     In one embodiment, users such as the users  16 - 1  through  16 -N may be enabled to tag media items with keywords. As such, one or more keyword criteria may be defined such that media items that have been tagged with keywords satisfying the keyword criteria are selected. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel and that have been tagged with keywords that satisfy the one or more keyword criteria. 
     The one or more feature criteria may be defined such that media items having metadata that satisfies the feature criteria are selected. Using features of a song as an example, the feature criteria may define, for example, one or more desired tempos, one or more desired beats-per-minute values, one or more tempos that are not desired, one or more beats-per-minute values that are not desired, or the like. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel and that have metadata that satisfies the one or more feature criteria. 
     The usage criterion may be defined such that media items played more than a threshold number of times within the one or more geographic areas of interest or more than a threshold number of times by a particular user are selected. As such, the one or more media items identified by the request processor  32  are media items played at locations within the one or more geographic areas of interest for the media channel and that satisfy the usage criterion. 
     Once the one or more media items for the media channel are identified, the request processor  32  of the tunersphere function  26  hosted by the central server  20  sends a response to the media request to the device  14 - 1  of the user  16 - 1  (step  110 ). In one embodiment, the response is a streaming media channel including the one or more media items identified by the request processor  32 . In another embodiment, the response is a list of media recommendations identifying the one or more media items identified by the request processor  32 . Again, a media recommendation may include, for example, information identifying the recommended media item, the recommended media item, a preview of the recommended media item, a reference (e.g., URL) to the recommended media item, a reference (e.g., URL) to a preview of the recommended media item, or the like. 
     Note that, in one embodiment, once a media request has been issued, the request processor  32  may continually update the response. More specifically, as the play histories of the other users  16 - 2  through  16 -N are updated, the request processor  32  may update the response provided to the device  14 - 1  of the user  16 - 1  to include any additional media items played by the other users  16 - 2  through  16 -N that satisfy the requirements of the media channel. As an example, if the response provided by the request processor  32  is a streaming media channel, the streaming media channel may be continually or periodically updated to add media items to the media channel that have been played in the one or more geographic areas of interest for the media channel and that satisfy any additional criteria for the media channel. As another example, if the response provided by the request processor  32  is a list of media recommendations, the request processor  32  may continually or periodically update the list of media recommendations to include media recommendations for additional media items that have been played in the one or more geographic areas of interest for the media channel and that satisfy any additional criteria for the media channel. 
       FIG. 3  is a more detailed flow chart illustrating step  108  of  FIG. 2  according to one embodiment of the present invention. In this example, the media channel definition includes information defining one or more geographic areas of interest, a time window, one or more user-based criteria, and one or more content-based criteria. However, as discussed above, the present invention is not limited thereto. First, the request processor  32  of the tunersphere function  26  hosted by the central server  20  identifies users from the other users known to the media service  12 , which for this example are the other users  16 - 2  through  16 -N, that satisfy the one or more user-based criteria (step  200 ). Next, the request processor  32  processes the play histories of the users that satisfy the user-based criteria to identify media items played in the one or more geographic areas of interest for the media channel during the defined time window (step  202 ). The request processor  32  then filters the identified media items based on the one or more content-based criteria to identify the one or more media items for the media channel (step  204 ). 
     Optionally, the request processor  32  may score the one or more media items identified for the media channel based on the user preferences of the requesting user, which in this example is the user  16 - 1  (step  206 ). In addition, as discussed below, the scores of the media items may further be a function of weights assigned to the one or more geographic areas of interest. The scores may then be used to prioritize the media items identified for the media channel when generating and sending the response to the device  14 - 1  of the user  16 - 1 . For example, if the response is a streaming media channel, the media items may be provided in the streaming media channel in an order defined by the scores of the media items. As another example, if the response is a list of media recommendations, the scores may be provided in association with the media recommendations as an indication of an expected desirability of the media items to the user  16 - 1 . 
       FIG. 4  is a more detailed flow chart illustrating step  108  of  FIG. 2  according to another embodiment of the present invention. In this example, the media channel definition includes information defining one or more geographic areas of interest, a time window, one or more user-based criteria, and one or more content-based criteria. However, as discussed above, the present invention is not limited thereto. First, the request processor  32  processes the play histories of the users known to the media service  12  to identify media items played in the one or more geographic areas of interest for the media channel during the defined time window (step  300 ). Next, the request processor  32  of the tunersphere function  26  hosted by the central server  20  filters the identified media items based on the one or more user-based criteria and the one or more content-based criteria to identify the one or more media items for the media channel (step  302 ). 
     Optionally, the request processor  32  may score the one or more media items identified for the media channel based on the user preferences of the requesting user, which in this example is the user  16 - 1  (step  304 ). In addition, as discussed below, the scores of the media items may further be a function of weights assigned to the one or more geographic areas of interest. Again, the scores may then be used to prioritize the media items identified for the media channel when generating and sending the response to the device  14 - 1  of the user  16 - 1 . For example, if the response is a streaming media channel, the media items may be provided in the streaming media channel in an order defined by the scores of the media items. As another example, if the response is a list of media recommendations, the scores may be provided in association with the media recommendations as an indication of an expected desirability of the media items to the user  16 - 1 . 
       FIG. 5  illustrates an exemplary Graphical User Interface (GUI)  44  enabling a user to define one or more media channels according to one embodiment of the present invention. In general, the GUI  44  includes a geographic area selection tool  46 . In this example, the geographic area selection tool  46  includes a map of an overall geographic area from which the user may select, which in this case is a map of the Earth. In addition, the map is segmented into a number of cells, which in this example are hexagons. The user may then select one or more geographic areas of interest for the media channel by selecting corresponding cells on the map. In this example, the user has selected four geographic areas. Specifically, the user has selected cell A as a first geographic area, cell B as a second geographic area, cell C as a third geographic area, and cell D as a fourth geographic area. Note that in this example, each of the geographic areas is defined by a single cell. However, the present invention is not limited thereto. Each geographic area may be defined by one or more cells. 
     In addition to the geographic area selection tool  46 , the GUI  44  includes criteria selection tools  48  through  54  enabling the user to select additional criteria for the media channel for each of the defined geographic areas. In this example, the criteria selection tool  48  enables the user to select one or more music genres to be filtered or removed when identifying media items for the media channel. So, for instance, when identifying media items for the media channel, songs from the Pop, Reggae, Folk, Country, Bluegrass, and Hair Metal genres that were played in the geographic area defined by cell A are not selected for the media channel. However, in other embodiment, the criteria selection tools  48  through  54  may enable the user to select other types of content-based criteria or user-based criteria and/or a time window for the media channel. 
     The GUI  44  may also enable the user to assign weights to each of the geographic areas for the media channel. In this example, slider bars  56  through  62  enable the user to assign weights to the geographic areas defined by cells A through D, respectively. In one embodiment, the weights assigned to the geographic areas as well as user preferences of the user may be used to score the media items identified by the request processor  32  for the media channel. The media items may then be prioritized based on their scores, media items having scores less than a threshold may be filtered, or the like. In another embodiment, the weights assigned to the geographic areas may be used to determine a number of media items selected for each of the geographic areas such that more media items are selected for geographic areas having higher weights. 
       FIGS. 6A through 6I  graphically illustrate the operation of the system  10  of  FIG. 1  according to an exemplary embodiment of the present invention.  FIG. 6A  illustrates a GUI  64  enabling a user to define one or more media channels and receive a response from the media service regarding one or more media items identified for the one or more media channels. The GUI  64  includes a toolbar  66 , which includes a number of tools  68  through  92 . A home tool  68  takes the user to a base screen, which in this example is a full view of a map  69  of the Earth. More specifically, in this example, the map  69  is a globe of the Earth. A globe tool  70  enables the user to select among multiple views of the map  69  of the Earth such as a satellite view, an abstracted view, a political boundaries view, or the like. The globe tool  70  may also enable the user to save a favorite view. A hexagon tool  72  toggles a hexagon overlay on or off in order to enable the user to select desired geographic areas by selecting corresponding hexagons overlaid onto the map  69 . The hexagon tool  72  may also enable the user to set a size of the hexagons relative to a current zoom level on the map  69 . Note that hexagons are exemplary; other shapes may be used. 
     A hand tool  74  enables the user to grab and rotate the map  69 , or globe, of the Earth. A hand pointer tool  76  enables the user to select desired geographic areas by, for example, selecting corresponding hexagons overlaid onto the map  69 , by drawing arbitrary shapes on the map  69 , or the like. A pointer tool  78  enables the user to click and drag selections between the multiple sections of the GUI  64 . A magnifier tool  80  enables the user to magnify the map  69  independently from zooming in or out of the map  69  using a zoom tool  81 . A shopping cart tool  82  enables the user to select discovered media items for subsequent purchase. A notes tool  84  enables the user to attach comments to media items and/or media channels. A chat tool  86  enables the user to initiate a chat session with other users of the media service  12 . A transmit tool  88  enables the user to enable or disable sharing of his play history. A log-in tool  90  enables the user to login to and logout of the media service  12 . A trash tool  92  is a general purpose trash function that enables the user to discard media channels, selected geographic areas in a media channel, criteria defined for a media channel, or the like. 
     In this example, the GUI  64  includes a first section  94 , which includes the map  69  of the Earth. The GUI  64  also includes a second section  96 , which enables the user to define and access a number of media channels defined by the user. More specifically, in this example, the user is currently viewing a “Rome Alternative” media channel previously defined by the user. The user may select a forward button  98  or a reverse button  100  to browse through additional media channels. Once the user has browsed to a last or first media channel, the user may select the forward button  98  or the reverse button  100 , respectively, to cause the creation of a new media channel. 
     In this example, the “Rome Alternative” media channel has a defined geographic area  102  and a number of criteria  104 . While the criteria may include a time window, one or more user-based criteria, and/or one or more content-based criteria, in this example, the criteria  104  include a number of content-based criteria which are more specifically a number of music genres. Further, for each music genre, the user has defined a corresponding weight using slider bars  106  through  124 . Note that in this example, rather than selecting which music genres to include or exclude as was done in the exemplary embodiment of  FIG. 5 , the user is enabled to defined weights for each of the music genres. Then, in order to filter media items played within the geographic area  102 , the media items may be scored as a function of the weights set by the slider bars  106  through  124 . Media items having scores less than a threshold may then be filtered. Alternatively, the weights assigned to the music genres may control a number or percentage of the media items identified for the media channel for each genre or a maximum number or percentage of the media items identified for the media channel for each genre. 
     The GUI  64  also includes a third section  126 , which is used to display a list  128  of the one or more media items identified by the request processor  32  of the tunersphere function  26  for the selected media channel. In addition, if scores are generated for the media items, the list  128  may also include the scores of the media items. As discussed above, in one embodiment, the response from the request processor  32  of the tunersphere function  26  is a streaming media channel. As such, the list  128  may include a list of media items included in the streaming media channel. The user may be enabled to skip forward or backward in the stream by selecting corresponding media items from the list  128 . If the user desires to add one of the media items to his shopping cart, the user may drag the corresponding entry from the list  128  to the shopping cart tool  82 . In another embodiment, the list  128  is a list of media recommendations provided for the media channel. The user may add desired media items from the list  128  to his shopping cart using the shopping cart tool  82 . 
       FIG. 6B  illustrates a situation where the user is defining a new media channel, which in this example is a “Detroit Rock” media channel. The user has already defined weights for a number of music genres for the “Detroit Rock” media channel and is in the process of selecting a geographic area of interest for the “Detroit Rock” media channel. The user has rotated the map  69  and zoomed in on North America. The user has then activated the magnifier tool  80 . Note that the magnification of the magnifier tool  80  is set independently from the zoom level set by the zoom tool  81 . The magnifier tool  80  may also enable the user to set a desired view for the zoom tool  81  such as, for example, realistic (i.e., satellite), abstract, hybrid, or custom view. The user may also be enabled to set a filter to “current” or “custom.” When the filter for the magnifier tool  80  is set to “current,” then the magnifier tool  80  shows the positions of users that have played media items satisfying the current criteria for the “Detroit Rock” media channel or locations at which media items satisfying the current criteria for the “Detroit Rock” media channel have been played. Alternatively, the user may define a “custom” filter such that the magnifier tool  80  shows the positions of users that have played media items satisfying the custom filter or locations at which media items satisfying the custom filter have been played. 
       FIG. 6C  illustrates the scenario where the user has further zoomed in on a geographic area. Then, in this example, the user activates the hexagon tool  72  such that hexagons are overlaid on the map  69  as shown in  FIG. 6D . The user may then activate the hand pointer tool  76  and select one or more of the hexagons overlaid on the map  69  in order to select a desired geographic area of interest as shown in  FIG. 6E . Once the geographic area of interest has been selected, the user may drag and drop the selected geographic area into the second section  96  of the GUI  64  as shown in  FIG. 6F , thereby associating the selected geographic area with the “Detroit Rock” media channel. In this example, a media request is then automatically sent to the media service  12 . In response, the request processor  32  identifies one or more media items for the media channel and returns a response. The response may be a streaming media channel including the identified media items, a list of recommended media items, or the like. As such, in this example, a list  130  of the identified media items is presented in the third section  126  of the GUI  64 . 
       FIGS. 6G and 6H  illustrate a scenario where the user defines a new “Rome/Detroit Rock” media channel. The user may initialize the “Rome/Detroit Rock” media channel using the “Rome Alternative” media channel definition of  FIG. 6A . The user may then open a window  132  for the “Detroit Rock” media channel and add the geographic area selected for the “Detroit Rock” media channel to the “Rome/Detroit Rock” media channel using a drag and drop process. Optionally, particularly when a media channel has more than one geographic area, the user may be enabled to assign a weight to each of the geographic areas as illustrated in  FIG. 6I . As discussed above, the weights assigned to the geographic areas may be used during identification and selection of media items for the media channel. 
     With regard to weighting and scoring, in one embodiment, weights are assigned to the geographic areas of interest, user-based criteria, and content-based criteria for the media channel. As such, the request processor  32  may identify all media items played within the one or more geographic areas of interest during any defined time window. The identified media items may then be scored as a function of the weights assigned to the geographic areas of interest, the weights assigned to the user-based criteria, the weights assigned to the content-based criteria and, optionally, the user preferences of the user. The media items having scores less than a threshold may then be filtered. 
       FIG. 7  is a block diagram of the device  14 - 1  of  FIG. 1  according to one embodiment of the present invention. This discussion is equally applicable to the other devices  14 - 2  through  14 -N. In general, the device  14 - 1  includes a control system  134  having associated memory  136 . In this example, the media player  36 - 1  and the content requestor  40 - 1  are each implemented in software and stored in the memory  136 . However, the present invention is not limited thereto. Each of the media player  36 - 1  and the content requestor  40 - 1  may be implemented in software, hardware, or a combination thereof. In this example, the location determination function  38 - 1  is implemented in hardware and connected to the control system  134 . For example, the location determination function  38 - 1  may be a GPS receiver. However, the present invention is not limited thereto. The location determination function  38 - 1  may be implemented in software, hardware, or a combination thereof. The device  14 - 1  may also include one or more digital storage devices  138  such as, for example, one or more hard disk drives, one or more internal or removable memory units, or the like. The media collection  42 - 1  ( FIG. 1 ) may be stored in the one or more digital storage devices  138 , the memory  136 , or a combination thereof. The device  14 - 1  also includes a communication interface  140  enabling the device  14 - 1  to connect to the network  18  ( FIG. 1 ). Lastly, the device  14 - 1  also includes a user interface  142  including components such as, for example, a display, one or more user input devices, a speaker, or the like. 
       FIG. 8  is a block diagram of the central server  20  of  FIG. 1  according to one embodiment of the present invention. In general, the central server  20  includes a control system  144  having associated memory  146 . In this example, the tunersphere function  26  is implemented in software and stored in the memory  146 . However, the present invention is not limited thereto. The tunersphere function  26  may be implemented in software, hardware, or a combination thereof. The central server  20  may also include one or more digital storage devices  148  such as, for example, one or more hard disk drives. In one embodiment, the user account repository  22  and/or the content repository  24  ( FIG. 1 ) are stored in the one or more digital storage devices  148 . The central server  20  also includes a communication interface  150  communicatively coupling the central server  20  to the network  18  ( FIG. 1 ). Lastly, the central server  20  may include a user interface  152 , which may include components such as, for example, a display, one or more user input devices, or the like. 
     Those skilled in the art will recognize improvements and modifications to the preferred embodiments of the present invention. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.