The present invention relates to discovery of media content based on geographic location.
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'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's musical taste by recording details of all the songs the user listens to, either on streamed radio stations or on the user's own computer or music player. This information is transferred to Last.fm's database (“Scrobbled”) via a plugin installed into the user's music player. The profile data is displayed on the user'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's favorites. Users can create custom radio stations and playlists from any of the audio tracks in Last.fm'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'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'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'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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
Number | Date | Country | |
---|---|---|---|
Parent | 11963050 | Dec 2007 | US |
Child | 12192682 | US |