US20070244880A1 - Mediaset generation system - Google Patents

Mediaset generation system Download PDF

Info

Publication number
US20070244880A1
US20070244880A1 US11/513,495 US51349506A US2007244880A1 US 20070244880 A1 US20070244880 A1 US 20070244880A1 US 51349506 A US51349506 A US 51349506A US 2007244880 A1 US2007244880 A1 US 2007244880A1
Authority
US
United States
Prior art keywords
media
playlist
user
group
session
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/513,495
Inventor
Francisco Martin
Marc Torrens
Rick Hangartner
Guillermo Caudevilla-Laliena
David Bartolome
Craig Rowley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
MYSTRANDS Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/346,818 external-priority patent/US7734569B2/en
Application filed by MYSTRANDS Inc filed Critical MYSTRANDS Inc
Priority to US11/513,495 priority Critical patent/US20070244880A1/en
Publication of US20070244880A1 publication Critical patent/US20070244880A1/en
Assigned to MYSTRANDS, INC. reassignment MYSTRANDS, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: MUSICSTRANDS, INC.
Assigned to MUSICSTRANDS, INC. reassignment MUSICSTRANDS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MARTIN, FRANCISCO, BARTOLOME, DAVID DEL SER, CAUDEVILLA-LALIENA, GUILLERMO, HANGARTNER, RICK, TORRENS, MARC, ROWLEY, CRAIG
Assigned to STRANDS, INC. reassignment STRANDS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MYSTRANDS, INC.
Priority to US12/432,637 priority patent/US8583671B2/en
Assigned to COLWOOD TECHNOLOGY, LLC reassignment COLWOOD TECHNOLOGY, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: STRANDS, INC.
Assigned to APPLE INC. reassignment APPLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: COLWOOD TECHNOLOGY, LLC
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4825End-user interface for program selection using a list of items to be played back in a given order, e.g. playlists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/48Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4668Learning process for intelligent management, e.g. learning user preferences for recommending movies for recommending content, e.g. movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/163Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing by receiver means only

Definitions

  • FIG. 1 is a diagram of one embodiment of a system for synthesizing a user's taste by analyzing the user's playlist(s) and playcounts.
  • FIG. 2 is a diagram of one embodiment of a system for using taste analyses from a plurality of users to generate a plurality of recommended mediasets.
  • FIG. 3 is a diagram of one embodiment of a system for using recommended mediasets from a plurality of users to generate a recommended mediaset for a group of users.
  • FIG. 4 is a system diagram of a client-server embodiment of the invention.
  • FIG. 5 is a system diagram of a peer-to-peer embodiment of the invention.
  • FIG. 6 depicts the main functional components of a Device Manager according to one embodiment.
  • FIG. 7 depicts a Member Status screen of a Session Manager, which presents the relevant details of the data structures in the Session Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 8 is a top-level flow diagram of the operation of the Session Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 9 is a more detailed flow diagram of the “Prune Session Members” step in the Session Manager flow diagram of FIG. 8 .
  • FIG. 10 is a more detailed flow diagram of the “Update Session Members” step in the Session Manager flow diagram of FIG. 8 .
  • FIG. 11 is a more detailed flow diagram of the “Service Proxy Requests” step in the Session Manager flow diagram of FIG. 8 .
  • FIG. 12 depicts a Playlist Queue screen of a Playlist Manager, which presents the relevant details of the data structures in the Playlist Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 13 is a flow diagram showing the operation of the Playlist Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 14 is a flow diagram showing the operation of the Playlist Play subcomponent of the Playlist Manager of a Media Player Client embodiment.
  • FIG. 15 depicts the relevant data structures in one embodiment of the Media Player Client supporting the Playlist Builder component of the system.
  • FIG. 16 presents a conceptual diagram of the playlist building function of one embodiment.
  • FIG. 17 is a flow diagram of the operation of one embodiment of the Playlist Builder component of the system.
  • FIG. 18 is a diagram of a process for generating a list of media items that define a user taste.
  • FIG. 19 is a diagram of a process for computing aggregate playlist goals and a list of desired categories.
  • FIG. 20 is a diagram of a process for computing relevant media items for each user from total available media items.
  • FIG. 21 is a diagram of a process for categorizing relevant media items according to desired attributes.
  • FIG. 22 is a diagram of a process for computing the status of the current group playlist's achievement of compositional goals.
  • FIG. 23 is a diagram of a process for choosing a set of media items to add to a group playlist based on assessing needs according to compositional goal achievement assessment.
  • FIG. 24 represents a step of a user addition process for detecting new users.
  • FIG. 25 represents another step of a user addition process in which new users are added to the system and source device information is stored.
  • FIG. 26 is a diagram of a process for removing users from the system.
  • the term “media data item” is intended to encompass any media item or representation of a media item.
  • a “media item” is intended to encompass any type of media file which can be represented in a digital media format, such as a song, movie, picture, e-book, game, etc.
  • the term “media data item” encompass, for example, playable media item files (e.g., an MP3 file), as well as metadata that identifies a playable media file (e.g., metadata that identifies an MP3 file). It should therefore be apparent that in any embodiment providing a process, step, or system using “media items,” that process, step, or system may instead use a representation of a media item (such as metadata), and vice versa.
  • a system to provide recommendations of mediasets for a given group of users may comprise a mechanism to store playlists and/or playcounts of each member in a community of users. Playlists and playcounts may be used to define the taste of each user and may therefore be used in performing taste analyses for each of the respective users.
  • a mediaset recommender may be provided where the input is a set of media items, and the output is a mediaset of weighted media items.
  • Two illustrative methods for providing group recommendations of mediasets include: 1) building a common profile that expresses the taste of the group of users as a whole and applying that profile to the recommender; and 2) considering individual recommendations of each member taste, and aggregating the results.
  • Media players are typically capable of reproducing all types of media items and collecting playcounts and playlists.
  • Playcounts are the number of times a media item has been played in the media player.
  • Playlists are groupings of media items that users create to organize their libraries of media items.
  • a system e.g., a server
  • Playcounts and playlists of a user may be used to synthesize her or his taste or perform a taste analysis.
  • user's taste may be considered a collection of the most relevant taste data considering that user's playcounts and playlists.
  • the task of certain embodiments of this system is to recommend a mediaset for a group of users.
  • a mediaset recommendation for a group of users may be the result of an aggregation process of the different mediasets that are recommended to each user of the group.
  • some embodiments of this system may include a component that recommends a mediaset from another mediaset (by performing an analysis of the taste of each user, for example).
  • the aggregation process may apply, for example, a voting schema and/or an optimization schema.
  • Mediaset recommendations for a group of users may be useful in a variety of scenarios.
  • An example is a party where a group of people want to enjoy music together. Instead of playing the music that may be recommended to a particular individual in the group, it may be desirable to play the music that would be recommended to the group as a whole.
  • the system's task is to find a mediaset or playlist to be recommended to a group of users.
  • a recommender system may be composed of three main steps:
  • step of producing recommended mediasets for each user taste may be optional.
  • FIG. 1 depicts how the taste 108 of a user 100 may be built from the playcounts 104 and playlists 102 of that user 100 through a process 106 called Synthesize Taste.
  • Process 106 is one example of a taste analysis.
  • Process 106 produces a taste 108 , which may be encoded as a mediaset.
  • media items with higher playcounts and/or those that appear more in playlists may be selected.
  • the selected media items may include those that are played more often by the user and/or those that are used in more different contexts and situations (because they appear in many different playlists).
  • playcounts may also be associated with play dates. In such cases, the process may weigh the playcounts with the play dates and therefore give more relevance to recent playcounts than to older playcounts.
  • Process 106 may comprise a ranking process of the media items of a user where items with higher playcounts, more recent plays, and/or more playlist appearances get a higher ranking.
  • the process may select the top m ranked media items as the encoding of the user's taste 108 . Note that this process may produce different results over time for the same user. This may be a desirable feature in embodiments in which the goal is to encode the taste of a user as it evolves over time.
  • the system may provide individual mediaset recommendations. For example, with reference to FIG. 2 , given a group of n users 200 , 208 , and 216 , the system may compute the individual taste ( 202 , 210 , and 218 , respectively) for each user with, for example, the process described above. The system may provide a recommended mediaset for each user using a recommender engine ( 204 , 212 , and 220 , respectively) that processes user tastes (mediasets 202 , 210 , and 218 ) to produce recommended mediasets 206 , 214 , and 222 .
  • a recommender engine 204 , 212 , and 220 , respectively
  • a separate recommended engine may be used for each user (recommender engines 204 , 212 , and 220 ), as shown in FIG. 2 or, alternatively, a single recommender engine may be used for the entire group.
  • a single recommender engine may be used for the entire group.
  • the depicted system may compute n mediasets of m media items.
  • the system may also provide for aggregating individual recommended media sets into a group recommended mediaset or group playlist. For example, with reference to FIG. 3 , once the system has computed the n mediasets of m media items (one for each user 300 , 304 , 308 of the group), an aggregation step may be used to produce the final mediaset of p (p ⁇ n*m) media items 314 to be recommended to the group of users. As shown in FIG. 3 , the system may provide an aggregator 312 , which takes as input a recommended mediaset ( 302 , 306 , and 310 , respectively) from each of the users in the group and provides therefrom a group recommended mediaset 314 .
  • a recommended mediaset 302 , 306 , and 310 , respectively
  • the aggregation step may be performed, for example, by following different approaches that serve different goals.
  • the system may follow a) a voting schema; or b) an optimization schema.
  • a voting schema may serve the goal of finding a mediaset that the majority of users would be happy with, without considering the degree of dislike by the rest of the members of the group.
  • an optimization schema may produce a mediaset that minimizes the dislike (or maximizes the like) of all the members of the group.
  • the media items in the n recommended mediasets 302 , 306 , 310 may each be linked with an associated weight. The weight of a media item in a mediaset for a user may be used to indicate the relevance of that media item for the user.
  • the aggregation process may take the p media items that appear the most in the n mediasets. If there are items that appear the same number of times in the n mediasets (tie-break), then those items may be picked randomly.
  • Some recommender engines may produce mediasets having weighted media items.
  • the process may pick the media items with highest weights. For example, considering the following mediasets:
  • the media items for the recommended group mediaset would be selected in the following order: s 3 , s 4 , s 7 , s 10 , s 2 , s 8 .
  • Media items s 7 and s 10 are in a tie-break situation, so they could be ordered in accordance with their respective weights within their mediasets, if any. If the media items do not have associated weights, then the order of s 7 and s 10 may be randomized. The same would apply for items s 2 and s 8 .
  • the aggregation process may take the p media items that optimize some utility function considering all the users of the group, that is, considering all n mediasets 302 , 306 , 310 .
  • the media items in the n mediasets 302 , 306 , 310 may have an associated weight, for example, in the range from 0 to 1, where 0 means that the item is not relevant at all and 1 means that the item is the most relevant.
  • a media item i may therefore have a weight w(j,i). If a media item i is not in a mediaset j, then it may be considered to have a weight 0.
  • the following example illustrates the weights associated with media items for a collection of mediasets:
  • other utility functions may be employed, as will be apparent to one having ordinary skill in the art.
  • a recommender engine may be provided in some embodiments.
  • the mediasets that encode the user tastes may be directly aggregated to form the mediaset that would be recommended to the whole group of users.
  • a system using the recommender engine may propose mediasets to discover new music, whereas a system that does not provide a recommender engine may propose mediasets with media items already known by at least one of the users in the group.
  • the aforementioned systems and methods may produce mediaset recommendations for a group of n users so as to enable proposing a mediaset that can be enjoyed simultaneously by a group of users.
  • the system may analyze user tastes from playlists and/or playcounts, so as to allow the user tastes to be represented as mediasets. These n user tastes can be then the input of a recommender engine that may suggest another n mediasets.
  • An aggregation process that takes these mediasets and produces a single group mediaset may also be provided. Such a process can be done using, for example, a voting schema or an optimization schema. Similar systems may operate without a recommender engine. In such embodiments, the aggregation process may operate with the mediasets that represent the tastes of the n users, and the result may comprise a mediaset that can be recommended to the whole group of users.
  • composite playlists may be built of media items in individual libraries on multiple media devices in a common location and/or through a communication network.
  • the media devices in the group may include portable and/or non-portable devices.
  • a means for playing the composite playlist may step through the playlist in sequence and cause the media player with the indicated media item to stream it to one or more of the other players where possible.
  • Such embodiments may operate under, for example, a client-server architecture or a P 2 P distributed architecture.
  • These embodiments may therefore be used to coordinate a set of media players to transmit media items on the specified group playlist in streaming fashion to each of the individual media players, or to a specified subset of the media players, in the sequential order they are listed on the group playlist. This may be accomplished without transferring standalone copies of the media items between the various media players.
  • systems incorporating the features of one or more of the above-described embodiments may be realized as a collection of media devices whose design embodies the disclosed functional behavior, as a collection of layered protocols in the 7-level ISO Open Systems Interconnection Reference Model, or as an application task in media devices communicating using standard networking protocols.
  • the first component is a plurality of Session Managers which collectively coordinate the information needed to designate and manage the status of each media player with regard to a plurality of other media player devices engaged in a period of collaborative activity referred to as a “session”.
  • Session Managers may be associated with each media player device, although this need not be the case in all implementations.
  • the Session Managers may include means for verifying the eligibility of each device to join the session. This may be accomplished by virtue of the eligible users being subscribed to a service, which may provide legal access to the media items to be collectively enjoyed.
  • the second component of the aforementioned implementation is a Playlist Builder, which may reside, for example, on one of the media players, on a server, on a network access controller included in the system, or on a third-party server accessible to the media player devices through a communication network.
  • the Playlist Builder may use information, such as taste data, available about the users in the group, and the collective set of media items available to the media players, to build a group playlist compatible with the collective tastes of the group.
  • the third component of the aforementioned implementation is a plurality of Playlist Managers, one associated with each media player device, which collectively communicate with the Playlist Builder to provide the information needed to build the group playlist and to play the media items on the group playlist.
  • the Playlist Manager associated with each media player device may include functionality for communicating the availability of media items on the media player device, either in a local library or from a media streaming service accessible by a media player, for example.
  • the Playlist Manager may also include a Playlist Play subcomponent, which may work in coordination with the counterpart subcomponents on the other media players in the session to step through each item on the group playlist, and may be configured to cause the media player associated with a media item to stream it to one or more of the other players as each media item is encountered.
  • FIG. 4 is a system diagram of a client-server embodiment 400 and FIG. 5 is a system diagram of a peer-to-peer embodiment 500 . Both embodiments of the invention may have the same essential components. However, the client-server embodiment 400 of FIG. 4 will be described in greater detail herein than the peer-to-peer embodiment. Nevertheless, it should be understood that the disclosure provided herein may apply equally to the peer-to-peer system with the appropriate system organizational differences, as depicted in the figures.
  • the key components of a client-server embodiment 400 are the server functional unit 402 and one or more Media Player Device clients 404 .
  • the server 402 may include three basic functional components: 1) A Session Access Controller 408 , which may be used to grant permission for an individual media player to join the collaborative interaction between devices; 2) A Playlist Builder 410 , may be used to construct the list and sequence of media items to be played in the group playlist during the session; and 3) A Device Manager 406 for each Media Player Device 404 in the session, which may be used to control the session-related functions of the device.
  • the peer-to-peer embodiment 500 also includes a plurality of media player devices 504 .
  • Each of the media player devices 504 may include a device manager 506 .
  • a network access controller 502 may also be provided, which includes a session access controller 508 and a playlist builder 510 for receiving media item data from the plurality of media devices and for building a composite playlist of media data items from the media item data.
  • the device manager for each media player device may include a session manager and a playlist manager.
  • FIG. 6 depicts a device manager 602 having a session manager 604 and a playlist manager 606 .
  • Session manager 602 may be configured to manage the status of the media device with which it is associated.
  • FIG. 7 depicts a Member Status screen 702 that is associated with one embodiment of a session manager.
  • the session manager may track a series of categories of information for each of the media players in the session, such as ID, proxy, status, and time period information.
  • Playlist manager 606 may be configured to communicate with a playlist builder to send the media item data of the media device with which it is associated to the playlist builder and to play the media data items on the composite playlist on the media device with which it is associated.
  • each media player device 404 may have an associated instance of the device manager 602 of FIG. 6 .
  • the server 402 and network access controller 502 may include a single instance of the session access controller 408 , 508 and the playlist builder 410 , 510 .
  • the session access controller 408 , 508 may interact, as described in greater detail later, with the session manager 604 in the device manager 602 of each media device 404 in a system to define the set of media devices comprising a session, and to enable communications between them.
  • the playlist builder 410 , 510 may operate with the playlist manager 606 in the device manager 602 to define and perform a sequence of media items in a session.
  • FIG. 8 presents a top-level flow diagram of one embodiment of a session manager 604 in a device manager 602 .
  • the session manager of an individual media player device may be used to negotiate the introduction, operation, and departure of the device in a media playing session (henceforth “session”). This may include maintaining knowledge of all other media players devices in the session.
  • the session manager 604 may assume the presence of a single session access controller 408 on a server system 402 in the client-server configuration, or on a privileged peer-to-peer network access system 502 in the peer-to-peer configuration.
  • the network access system could be implemented on the system found in some peer-to-peer networks, which hosts network-level functions, while in other embodiments it could be implemented on one peer system in the network.
  • the session access controller's primary function in some embodiments is to serve a session sID code in response to a “request-to-enter” session message from devices seeking admission into a session as an indication permission has been granted to the device. In some embodiments, that permission may be granted if the media player mID code from the device supplied with the “request-to-enter” message is recognized as an mID eligible for admission to a session. In other embodiments, the session access controller may instead supply a dynamic mID back to the requesting media player device to serve as a unique identifier for the device in the context of the session along with the returned session sID code. In some embodiments, the session access controller may largely be functional in the networking protocol for the underlying communications network linking the media player devices, and the mID and sID may be codes derived from parameters in the network protocol that identify devices and communication sessions or transactions.
  • the session manager may include two major subfunctions 802 and 806 , as shown in FIG. 8 .
  • Subfunction 802 mediates the admission of the media player into a session while subfunction 806 implements the process by which the media player maintains cognizance of the other media players in the session via the communication network linking.
  • the starting step for the session manager flow diagram of FIG. 8 assumes the media player is not participating in a session.
  • the session manager broadcasts a “request-to-enter” message with an optional “mID” code. If the media device successfully communicates with a session access controller that grants the media player access to a session, the media player will receive an “enter-session-sID” message indicating that the media player has been granted permission to enter the session identified by the sID code. In embodiments having only one session, the sID code would be superfluous and may be omitted or a default value returned.
  • the session manager waits a random amount of time before transmitting another “request-to-enter” message.
  • the session manager may just wait a random amount of time after transmitting a “request-to-enter” message before transmitting another “request-to-enter” message if an “enter-session-sID” response is not received.
  • the session manager may wait a fixed amount of time after sending the “request-to-enter” message and then, if no “enter-session-sID” response is received, wait a random amount of time before transmitting the next “request-to-enter” message.
  • the session manager may wait until some external event occurs after sending the “request-to-enter” message, rather than receiving an “enter-session-sID”, and then wait a random amount of time before transmitting the next “request-to-enter” message.
  • the session manager Upon receipt of an “enter-session-sID” response from the session access controller, the session manager broadcasts the “in-session-mId-mId-status-sID” message, as indicated at 804 . By broadcasting this message, the session manager indicates its presence in the session to the session managers in all of the other devices in the session.
  • the parameters of this message are the mID of this media player device, the mID of another media player device in the session that knows about this device by proxy (set here to the mID of this media player device because no proxy is involved), the status of the playlist manager component 606 of the device manager 602 , and the session sID.
  • Subfunction 806 is a polling loop that maintains the information in a session manager state data structure, such as that shown in FIG. 7 .
  • the Device Manager 602 in each media player maintains a copy of the session manager state autonomously for each session, as identified by a unique sID, in which the media player is a participant.
  • This state information may include several elements for each of the other media players in the session known to the subject media player: One such element is the mID of the media player.
  • pmID the mID of the proxy media player in the session known to the subject media player, which knows the media player identified by mID is in the session, even if that media player is not known directly to the subject media player.
  • a third example is the status of the media player. Still another example is the amount of time since this media player was last affirmatively known to be in the current session by the subject media player.
  • the polling loop in Subfunction 806 may be executed a number of times “n” as determined by the implementation. This number is relatively arbitrary, and typically is selected to achieve a desired “liveliness” criteria for the session manager and the session maintenance protocol. “Liveliness” here refers to how often the subject media player indicates its presence in the session to the other media players in the session.
  • the session manager may broadcast an “in-session-mid-mid-status-sid” message to the other media players to indicate the subject media player is still active in the session and make its status known to those media players if the session manager state data table 702 includes entries for other media players. If the session manager state data table 702 is empty, the session manager may instead revert to searching for a session to join by initiating the session join subfunction 802 .
  • Subfunction 806 may maintain knowledge of the other media players in the session by repetitively executing the three processes 810 , 812 , and 814 shown in FIG, 8 , each of which are shown in greater detail in FIGS. 9-11 , respectively.
  • the “Prune Session Members” process 810 scans the session manager state data structure 702 and removes entries corresponding to media players from which the subject media player has not received an affirmative indication that they are still in the session, and therefore are inferred to have left the session.
  • the “Update Session Members” process 812 processes messages from other media players that are therefore inferred to have joined or remained in the session.
  • the “Service Proxy Requests” process 814 responds to requests from other media players if the session manager state data structure 702 includes an entry for a media player known directly to the subject media player that has been only known to another media player by proxy via the subject media player.
  • the “Prune Session Members” process 810 may perform one of the following three operations on the entry for each media player i in the session manager data structure 702 .
  • a “proxy-session-mID-sID” query is broadcast to request if the media player is still known to another media player in the session, and the media player entry status has been marked as “cued” (meaning that the media player was scheduled to perform a track by the Playlist Manager process described below), and if one of the two following conditions exist: a) If the time[i] that the media player was last affirmatively known to the subject media player exceeds an implementation specified cued timeout value, meaning that the subject media player did not receive an indication that the media player corresponding to the entry transmitted a state change out of the cued state; b) If the time[i] that the media player was last affirmatively known to the subject media player does not exceed an implementation specified cued timeout value, but the media player corresponding to the entry is only known to the subject media by proxy via another media player in the session. In this case, the subject media player would only learn of a state change by the media player corresponding to the entry if that state change is broadcast by the proxy media player in response to
  • the “Update Session Members” process 812 receives the “in-session-mID-pmID-status-sID” messages broadcast by the session manager and the “Service Proxy Requests” process 814 and updates the session manager state data structure 702 .
  • the process assumes that the protocol of the network over which the media players communicate buffers all “in-session-mID-pmID-status-sID” messages until they can be processed.
  • Each received message in which the message sID matches the ID of the session is processed in one of the five following ways:
  • the entry in the data table for the media player with mID may be updated with the proxy media player pmID and the status from the received “in-session-mID-pmID-status-sID” message if several conditions apply simultaneously: a) the received message is a proxy message (miID, pmID differ); b) the media player referenced by the message is currently known to the subject media by proxy (mID, pmID for the entry in the Session Manager state data structure differ) or the time since the media player with mID was last affirmatively known to the subject media player has exceeded an implementation timeout value; and c) the status of the referenced media player is unknown or the status in the message is idle. The time since the media player with mID was last affirmatively known to the subject media player may be reset to 0 seconds.
  • the entry in the data table for the media player with mID may be updated with just the proxy media player pmID from the received “in-session-mID-pmID-status-sID” message if several conditions apply simultaneously: a) the received message is a proxy message (miID, pmID differ); b) the media player referenced by the message is currently only known to the subject media by proxy (mID, pmID for the entry in the Session Manager state data structure differ) or the time since the media player with mID was last affirmatively known to the subject media player has exceeded an implementation timeout value; and c) the status of the referenced media player is known and the status in the message is not idle. The time since the media player with mID was last affirmatively known to the subject media player may be reset to 0 seconds.
  • the “Service Proxy Request” process 814 ( FIG. 11 ) provides information about any media players the subject media player affirmatively knows to the other media players in the session in response to the “proxy-session-mID-sID” request messages, which may have been broadcast by the “Prune Session Members” process 810 of any media player in the session identified by sID.
  • this process assumes that the protocol of the network over which the media players communicate buffers all “proxy-session-mID-sID” messages until they can be processed.
  • Each received “proxy-session-mID-sID” message in which the message sID matches the ID of the session may be processed in one of the four following ways:
  • the Playlist Manager of an individual media player device may consist of two major subfunctions: First, the “Playlist Queue Updater” process 1300 , as depicted in FIG. 13 , which negotiates the sharing of playlist information between the media playing devices in the session. And, second, the “Playlist Play Sequencer” process 1400 , as depicted in FIG. 14 , which controls performance of the media items by the subject media player.
  • the Playlist Manager 1200 ( FIG. 12 ) assumes the presence of a single Playlist Builder on a server system in the client-server configuration, or on a privileged peer-to-peer network access system in the peer-to-peer configuration.
  • the playlist builder could be implemented on the system found in some peer-to-peer networks, which hosts network-level functions, while in other embodiments it could be implemented on one peer system in the network.
  • the “Playlist Queue Updater” may provide the data from the media player to the Playlist Builder that is used in the playlist building process. The Playlist Builder will be described in detail subsequently.
  • the Playlist Manager 1200 also assumes that the media player makes available several data items relevant to the playlist building process depicted conceptually in FIG. 15 .
  • the media player device 1502 may store media items in a local library 1506 , and provide a mechanism for querying the local directory 1508 to determine whether a specific media item is available for performance by the media player.
  • the media player 1502 may download or stream media items from a remote service over a communication network on demand, and provide a mechanism for querying a directory 1504 of media items available from the remote service for performance by the media player.
  • 15 also depicts several other data items maintained by the media player relevant to the playlist building process, including indication 1510 of a media item that should be preemptively added to the playlist, and lists of items 1512 , 1514 , and 1516 of items that user does not want added, added preferentially, and added if at all possible, respectively, to the playlist.
  • FIG. 13 presents a top-level flow diagram of the “Playlist Queue Updater” process 1300 . As the figure illustrates, this may be a repetitive process performed ad infinitum.
  • the “Playlist Queue Updater” first determines if the user of the subject media player has requested that a particular media item be added to the playlist being built, and sends a “force-iid-pid-length-sid” message to the Playlist Builder if so. This message specifies the media item by iID, the pID of the media player (this is the same value as mID used by the Session Queue Updater described previously), the length in time units of the media item, and the sID for the session.
  • the “Playlist Queue Updater” After any user request that a specific media item be added to the playlist has been processed, the “Playlist Queue Updater” then checks if a “have-iID-sID” request message has been received from the Playlist Builder inquiring whether the subject media player can provide a specific media item for the playlist. The process assumes that the protocol of the network over which the media players communicate buffers all “have-iiD-sID” request messages until they can be processed. Each received message in which the message sID matches the ID of the session may be processed in one of three following ways:
  • a “have-iID-pID-length-sid” message is broadcast if the subject media player pID has access to the requested media item iiD with length “length” from a local library of media items.
  • a “have-iID-pID-length-sid” message is broadcast if the subject media player pID does not have access to the requested media item iiD with length “length” from a local library of media items, but does have access to the requested media item from a remote service.
  • the “Playlist Queue Updater” may take into account the user's preferences with regard to media items, as indicated by the lists 1512 , 1514 , and 1516 in determining whether to supply a “have-iID-pID-length-sid” message in response to a “have-iID-sID” request message. For example, the “Playlist Queue Updater” may not respond to the “have-iID-sID” message even if the requested item is in the catalog 1504 or 1506 of the device if it is also on the “no play” list 1512 . Similarly, the “Playlist Queue Updater” may respond optionally according to some statistical or other criteria if the item is on the “preferred” list 1514 . And the “Playlist Queue Updater” may always respond if the item is on the “must play” list 1514 .
  • the last step in an iteration of the “Playlist Queue Updater” flow diagram processes at least one “queue-iID-pID-length-sID” message from the Playlist Builder, if any have been received.
  • the process assumes that the protocol of the network over which the media players communicate buffers all “queue-iID-pID-length-sID” messages until they can be processed.
  • the “Playlist Queue Updater” may process only a single “queue-iID-pID-length-sID” message per iteration by adding an entry to the Playlist Queue data structure in the Playlist Manager, consisting of the iID, length, and pID items from the message. In other embodiments, it may process multiple or all pending “queue-iID-pID-length-sID” messages.
  • performance of the playlist is, in effect, directed by the Playlist Builder.
  • the Playlist Builder may broadcast a “queue-iId-pID-length-sid” message to all the media players in the session requesting that media item be added to the Playlist Queue data structure 1202 in the Playlist Manager 1200 .
  • the Playlist Builder sends this message at the actual time the media item should be performed and the media player accepts that message as a command to perform the specified media item.
  • the Playlist Builder may send this message just sufficiently before the time the media item should be performed to allow the media item to perform any processing required to initiate the performance by the time the performance is to start.
  • the “Playlist Play Sequencer” process 1400 of the Playlist Manager 1200 shown in FIG. 14 locally coordinates the performance of the items on the playlist that are actually performed by the subject media player with the performance of the other media items on the playlist by the appropriate media players.
  • All media players in the session may have a copy of the Playlist Queue 1202 . This copy may be imperfect: It could be missing items at the head of the queue that were put on the playlist before the subject media player joined the session, or in the middle of the queue due to communication failures.
  • the Playlist Play Sequencer may cause the subject media player to synchronize its performances of individual media items with the performance of media items by other media players in the session in the presence of these possible gaps in the playlist.
  • the “Playlist Play Sequencer” 1400 may be an iterative process which achieves the synchronized performance in the presence of gaps by processing the item at the head of the Playlist Queue 1202 in, for example, one of the three following ways:
  • the subject media player infers the media item has been performed when either a transition from played to idle is observed, or the value of the local playtime timer exceeds the performance length of the media item.
  • the “Playlist Play Sequencer” plays the media item.
  • the status of the subject media player is set to playing while the item is being performed, and then set back to idle after the performance is finished to signal the performance to the other media players in the session.
  • the Session Members state data structure 702 includes an entry for another media player with the status value playing, corresponding to the right branch of the flow diagram, the performance of the media item is postponed.
  • the “Playlist Play Sequencer” repeatedly traverses this branch of the flow diagram until no other media player has the status value cued, and then sets the status value for the subject media player to cued. On the next iteration the “Playlist Play Sequencer” takes the middle branch of the flow diagram and performs the media item as described above.
  • the Playlist Manager of the Device Manager in each media player device may assume the existence of an autonomous Playlist Builder on the server system in the client-server configuration, or on a privileged peer-to-peer network access system in the peer-to-peer configuration.
  • the playlist builder could be implemented on the system found in some peer-to-peer networks which hostsnetwork-level functions, while in other embodiments it could be implemented on one peer system in the network.
  • FIG. 16 depicts how the Playlist Builder 1606 draws on a knowledge base 1604 of information about media items to compose a playlist of media items in the playlist queue 1608 from the pool of media items 1602 available to the media playing devices in the session.
  • FIG. 17 is a flow diagram of the playlist builder 1606 process. The process assumes the availability of a method for generating the IDs of media items that are candidates for inclusion in the playlist. Candidates may be proposed based on many criteria, including information in the knowledge base 1604 , and knowledge of the preferences of the users whose media players are participating in the session.
  • the “Playlist Builder” may be an iterative process that adds a single media item to the playlist per iteration. Each iteration may include three steps:
  • a candidate media item with ciID is generated based on information in the knowledge base 1604 and/or other criteria.
  • a “who-has-ciID-sID” query is broadcast to all of the media players in the session to determine if any of them has access to the proposed media item.
  • Playlist Queue Manager of any of the media players in the session has previously broadcast an unprocessed “force-iID-pID-length-sID” message
  • the requested media item iID is added to the playlist 2108 .
  • the Playlist Builder may broadcast a “queue-iID-pID-length-sID” message to all of the media players in the session, directing that they each add the requested media item to their local playlist that their Playlist Queue Manager is maintaining.
  • the Playlist Builder may then broadcast a “queue-iID-pID-length-sID” message to all of the media players in the session directing that they each add the requested media item to their local playlist maintained by their Playlist Queue Manager 1100 .
  • steps 2) and 3) may be repeated a number of times limited by a timeout value to increase the responsiveness of the communications between the Playlist Builder and the media player devices.
  • the Playlist Builder iterations may be repeated ad infinitum.
  • the playlist is a non-terminating sequence of media items to be performed so long as there is at least one media player in the session.
  • some embodiments may support building playlists consisting solely of media items suggested by users of the media devices, and communicated to the Playlist Builder with the “force-iID-pID-length-sID” request message, by providing an option for setting a option flag to “false” so that the “auto build?” tests in the flow diagram fail.
  • playlists of selected media items may be dynamically built from a collection of media items based on the preferences of a temporally-defined group of users with media player devices. Compositional goals and the collection of media items available to meet those goals may be dynamically computed using, for example, the composite taste data for the group as a whole as individual users enter and leave the group.
  • Some embodiments therefore relate to methods for dynamically creating a playlist of media items responsive to the collective tastes of a temporally-defined group of individuals. Some embodiments also provide for dynamically diversifying the group playlist so that it does not in whole, or in part, unduly reflect the taste of a single member of the group, or a particular subgroup of users within the whole group.
  • Additional embodiments may provide for a system and method for dynamically building a playlist of media items by using the collective taste preferences of the members of a group to determine compositional goals of the playlist, and then building a group playlist that achieves those compositional goals.
  • the system may derive the compositional goals by analyzing the taste preferences of the current members of the group.
  • Media items available to achieve those goals are typically a subset of the media items that are identified in response to analyzing taste data and may be selected from a collection of media items available to the system.
  • the collection of available media items may be the aggregate of the sub-collections of media items provided by the users or, alternatively, may be a pre-existing set of media items stored, for example, in a central database.
  • the first process keeps track of users as they enter and/or leave the group by starting or ending communications with the system using, for example, individual networked communication devices.
  • Example embodiments include Bluetooth® devices and other devices communicating in an ad-hoc network of Internet or other network-connected devices using, for example, the Apple Bonjour protocol.
  • Users with individual communication devices may be added to and/or removed from the group by the system as they implicitly or explicitly connect and disconnect from the communication network, which links the individual devices to the computational means for building the group playlist.
  • the system may retrieve the user's taste data.
  • Taste data may be retrieved by, for example, accessing a database of taste data from users known to the system or by requesting taste data directly from the users' communication devices and adding it to the pool of taste data for the group.
  • the system may also be configured to remove that user's taste data from the pool of taste data for the group.
  • the system may maintain a pool of media items available for the current group.
  • the first process may derive compositional goals for the playlist, such as requiring that the values for the selected media items of a specific attribute have a specified distribution.
  • the first process may also involve selecting a subset of media items from the total pool of media items to be used to build the playlist. This may be accomplished using a media item recommender, such as that described in U.S. patent application Ser. No. 11/346,818 titled “Recommender System for Identifying a New Set of Media Items Responsive to an Input Set of Media Items and Knowledge Base Metrics,” which is incorporated herein by reference in its entirety.
  • the aforementioned media item recommender may be used to recommend media items responsive to an input set of media items.
  • the second process may build the composite playlist by selecting media items from the total pool of media items in a manner which causes the evolving playlist to more closely approximate the specified compositional goal as the selected items are added to the playlist.
  • Some implementations of the system may therefore be responsive to the constantly changing group membership.
  • the compositional goals and/or the pool of media items available to achieve those goals may continually change.
  • Some embodiments may remove media items from the dynamic playlist as users depart from the group, particularly in those situations where the group members actually contribute the media items to the pool. In such situations, the media items in the pool could be removed from the pool as users leave, such as by physically leaving a proximity or by logging out of a system. It should be understood, however, that such a feature is not necessary in all implementations, since a media item can be skipped if it is no longer available when it is to be performed.
  • the third process may involve diversifying the group playlist.
  • the diversification process may involve shuffling media items on the list as necessary to ensure that no segment of the playlist is dominated by media items representative of the taste of one or more group members.
  • additional information about aesthetic properties of the media items might be used to rearrange the order of the media items in the group playlist to achieve specific aesthetic goals.
  • some embodiments may replace some media items with additional media items. These additional or supplemental media items may not be provided by any of the members in the group, and may be selected according to a diversifying criteria to bring more variety to the group playlist.
  • One embodiment of the system may implement the processes detailed in FIGS. 18-20 .
  • This embodiment may be analogized to the automated evolution of a jukebox. Whereas a jukebox supplies local music and requires explicit user interaction from the user to pick desired music, these embodiments automatically build playlists based on previously collected data about users that are proximal (either physically or virtually) to the system.
  • a mechanism may be provided to allows for discovery/detection of proximal users.
  • a server process 2400 (as shown in FIG. 24 ) may be provided using, for example, Bluetooth® technology to allow users to “log in” to the system. Users who are “logged in” to the system are considered proximal users, regardless of their physical proximity to the other users or server. In some embodiments, all proximal users immediately begin to affect the playlist being constructed, which will be discussed in greater detail later.
  • Bluetooth® is just one of many data discovery/entry mechanisms that could be used to add users to the system.
  • Other embodiments may include explicit text entry from users, or even be a zero-configuration protocol such as Apple's BonJour protocol.
  • a Bluetooth® server with a predetermined service UUID Universally Unique Identifier
  • UUID Universally Unique Identifier
  • the Bluetooth® specification uses UUIDs to identify services uniquely across many devices. By using a UUID, a Bluetooth® client is able to detect a specific service on a remote server.
  • step 2 once a client Bluetooth® process has connected with the system's Bluetooth® server 2400 , the client transmits user information to the server process 2400 , as shown in FIG. 25 at 2500 .
  • the server process 2400 will then attempt to validate the user information, as indicated at 2501 . If the user validation process 2501 fails, then the user is rejected and is not added to the proximal user list 2503 or the proximal device list 2504 by the user list modification process 2502 . If the user validation process 2501 succeeds, then the user is added to the proximal user list 2503 and the user device is added to the proximal device list 2504 .
  • the means for entry of the user and the user device to the appropriate lists may vary, as would be understood by one of ordinary skill in the art.
  • the system preferably updates and maintains the contents of the proximal user list 2503 and proximal device list 2504 on a regular basis.
  • the system may be configured to reduce the chance that users are erroneously moved from either list.
  • These concerns may be addressed by using a User/Device Proximity Detection Process 2600 , as shown in FIG. 26 , to identify which users are proximal to the system.
  • Process 2600 may be implemented using Bluetooth® technology.
  • the system may be able to determine when users are no longer proximal by, for example, detecting proximal devices and mapping the proximal device list 2504 to the proximal user list 2503 .
  • a User/Device Inactivity Detection Process 2601 may be used to begin considering whether a user should be removed from the proximal user list 2503 and the user's device removed from the proximal device list 2504 .
  • the User Device User/Device Inactivity Detection Process 2601 may be implemented as a time-based process. The system may be configured to remember the time when a user first became classified as non-proximal.
  • the user may be removed from the proximal user list 2503 , along with the user's device from the proximal device list 2504 , by the User/Device Removal Process 2602 . If a user is found to be proximal by the User/Device Proximity Detection Process 2600 before the time limit of the User/Device Inactivity Detection Process 2601 is reached, then the user and their device will be left on the appropriate lists 2503 / 2504 . It will be apparent to one skilled in the art that specific implementations of the aforementioned system may, but need not, rely on the use of Bluetooth® or a time-based user removal strategy.
  • the Composite Playlist Builder process may rely on the User Addition/Removal processes described above in order to determine which users to which a playlist is to be narrowcasted.
  • the Composite Playlist Builder process may first generate a list of media items that define a user taste, and then repeat this step for all proximal users in the system.
  • the process of generating a list of media items that define user taste may be accomplished by examining the users 1800 logged into the system and using information—i.e., media item taste data—to synthesize user taste, as shown at 1802 .
  • the media item taste data may be gathered by the system contemporaneously or, alternatively, it may be compiled into a list or database from previously gathered media item taste data. Either of the foregoing may be represented by step 1801 in FIG. 18 .
  • a list of media items and/or media item metadata (collectively “media data items”) that contains information about the music that should be narrowcasted to user 1800 may then be generated, as indicated at 1803 .
  • Preconfigured goals can be used when no/few users or otherwise insufficient data is available to the system. This process may then be repeated for each user 1800 who is logged into the system.
  • the data in one embodiment may be cached to enable quick lookup.
  • the data which represents user taste may also provide the foundation from which other steps derive information.
  • user taste may be synthesized by first obtaining a set of the tracks that a user has listened to recently and/or those that a user has ranked highest.
  • synthesize user taste based on collected user taste data.
  • aggregate playlist goals may be computed based on results of the first process and/or on a list of desired categories. Note that there will be typically be one set of input media data items for each user.
  • each set of media items and/or metadata that indicates user taste 1900 , and/or a predetermined or computed set of categories of interest 1901 may be used as input to a User Taste Aggregation Process 1902 , as shown in FIG. 19 .
  • User Taste Aggregation Process 1902 may be used to create a set of optimal playlist characteristics 1903 for a group playlist that is intended to be narrowcasted to the proximal users.
  • media items and/or metadata that are representative of more than one user's taste may not be viewed as duplicative. This feature may allow media items and/or metadata that are common between multiple users to be given increased levels of importance by the User Taste Aggregation Process 1902 .
  • the User Taste Aggregation Process 1902 may accept both user taste 1900 and desired categories of interest 1901 as input. Categories of interest 1901 are often (but not required to be) metadata indicators that indicate the set of metadata to be used in computing the optimal playlist characteristics 1903 for a narrowcast playlist targeted at a particular group of users.
  • One embodiment uses a category set 1901 that comprises a genre.
  • a category set 1901 may compute the frequency distribution of genres in the play histories retrieved for each connected user. The percentage of each genre may then be used as the optimal genre distribution for the generated group playlist.
  • a genre is not the only category which could be used for generating a playlist.
  • a raw frequency distribution is not the only method for computing statistics about any given category.
  • Other similar implementations are not limited to, but could employ, a weighting strategy or voting strategy to determine desired levels of each feature.
  • relevant media items for a user may be selected from the pool of available media items. This process may then be repeated for each proximal user in the system.
  • the set of relevant media items 2002 that are associated with a given user may be computed/selected.
  • a process 2001 for each user may be executed.
  • Process 2001 may accept as input the set of media items and/or metadata that indicates a user's taste 1803 and/or the set of all available media items 2000 .
  • Process 2001 may also produce a subset of available media items that are relevant media items for a single user.
  • process 2001 may be implemented by using a media item recommender, such as those described in U.S. patent application Ser. No. 11/346,818 titled “Recommender System for Identifying a New Set of Media Items Responsive to an Input Set of Media Items and Knowledge Base Metrics,” which was previously incorporated by reference.
  • Process 2001 may also be augmented by providing the media item recommender with the complete scope of recommended media items from which to recommend a subset of media items. In practice, this may be used to make sure that the recommended media items are available for use by the composite playlist builder application. For example, if there are one-thousand available media items 2000 to choose from, process 2001 may ensure that the relevant media items 2002 are within the one-thousand available media items 2000 .
  • the media items may be categorized according to a set of desired attributes. For example, as shown in FIG. 21 , the relevant media items 2100 may be categorized via a categorization process 2101 according to the categories of interest 1901 used previously in the user taste aggregation process 1902 . Categorization process 2101 may be used to produce a categorized list of relevant media items 2102 . This list may enable the overall system to pick one or more media items based on one or more categories of interest 1901 .
  • a goal assessment process 2201 may be used, along with categorization process 2101 , to produce a prioritized list of goals needing to be fulfilled 2202 .
  • the categorization process 2101 may accept the current playlist 2200 and categories of interest 1901 as input.
  • the categorization process 2101 may use the categories of interest 1901 to categorize the media items on the current playlist 2200 .
  • the output of the categorization process 2101 may be sent to the goal assessment process 2201 that may be used to determine how close the current playlist 2200 characteristics are to the optimal playlist characteristics 1903 .
  • the output of the goal assessment process 2201 may be a prioritized list of goals needing to be fulfilled 2202 .
  • a frequency distribution of genres may be computed for the categorization process.
  • the goal assessment process may comprise subtracting the achieved genre percentages for the current playlist from the target percentages for the optimal playlist. It can then take the largest value difference as the needed upcoming genre for the playlist.
  • Other approaches can be used for computing playlist needs.
  • a set of tracks may be selected to add to the group playlist based on assessing current needs for the playlist according to the goal achievement assessment process previously performed. For example, with reference to FIG. 23 , a set of one or more media items 2301 are selected for addition to the current playlist 2200 by a playlist addition process 2302 .
  • the media item selection process 2300 may accept as input the prioritized list of goals needing fulfilled 2202 , the categorized list of relevant items 2102 , and the current playlist 2200 .
  • the media item selection process 2300 may attempt to fulfill the goals in a prioritized manner in some embodiments, such that the most important goal is fulfilled by picking a media item from the list of relevant items 2102 that best fulfills the goal. If multiple media items could help fulfill a goal, then a media item may be selected at random from the list or in another fashion, such as by some form of tiebreaker process.
  • the selected media item may also be subjected to a diversification step, which may be used to ensure that the media items being added to the playlist are not too similar to the current playlist contents.
  • the diversification step may comprise shuffling media items in the group playlist to diversify at least one segment of the group playlist that includes media data items that are overly representative of the tastes of one or more users.
  • the system may be configured such that, in response to determining that the group playlist is dominated by media items representative of the taste of one or more users, removing at least one media data item from the group playlist that corresponds with the taste of the one or more users.
  • the set of media items 2301 may be sent to a playlist addition process 2302 for addition to the active playlist.
  • the playlist addition process 2302 may have the capability of creating/updating the current playlist 2200 and, in some implementations, initiating playing the media items in the current playlist 2200 .
  • a media item may be selected from the most needed genre for the current playlist by choosing at random from relevant tracks categorized in the appropriate genre.
  • the diversification step may be used to ensure that no media item is repeated in the group playlist for a predetermined period of time.
  • the diversification step may also, or alternatively, be used to ensure that no subset of media items—such as artists, albums, genres, etc.—are repeated within a given subset of the group playlist.
  • the diversification step may be used to prevent media items from a particular artist from being repeated within a seven track window within the group playlist. If it is impossible to fulfill the requirements of the diversification process, then a media item may be chosen at random from all media items within the appropriate genre. If multiple genres are identified with equal priority, then the selected media item may be selected from any one of the identified genres, or by some other tie-breaking selection procedure.

Abstract

Disclosed are various embodiments of systems and methods for generating composite mediasets from mediasets, each comprising media items, associated with a plurality of users. In some embodiments, individual and/or group recommendations are provided for creating a group playlist by aggregating user taste data for a plurality of users in a group. In other embodiments, systems and methods are provided which allow for sharing and playing of a group playlist by users in a group, each of which has a media playback device. In still other embodiments, systems and methods are provided for dynamically building a composite playlist that may be updated as users enter and/or leave the group.

Description

    RELATED APPLICATIONS
  • This application is a continuation-in-part of application Ser. No. 11/346,818 filed Feb. 3, 2006 and titled “Recommender System for Identifying a New Set of Media Items Responsive to an Input Set of Media Items and Knowledge Base Metrics.” This application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No. 60/772,502 filed Feb. 10, 2006, and titled “System and Method for Building and Sharing a Composite Playlist from Collective Group Tastes on Multiple Media Playback Devices.” This application also claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No. 60/774,072 filed Feb. 15, 2006, and titled “Mediaset Recommendations for a Group of Users.” This application also claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent Application No. 60/796,724 filed May 1, 2006, and titled “Dynamically Building Composite Playlist for Merging Collective User Tastes.” Each of the foregoing applications is incorporated herein by specific reference.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Understanding that drawings depict only certain preferred embodiments of the invention and are therefore not to be considered limiting of its scope, the preferred embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
  • FIG. 1 is a diagram of one embodiment of a system for synthesizing a user's taste by analyzing the user's playlist(s) and playcounts.
  • FIG. 2 is a diagram of one embodiment of a system for using taste analyses from a plurality of users to generate a plurality of recommended mediasets.
  • FIG. 3 is a diagram of one embodiment of a system for using recommended mediasets from a plurality of users to generate a recommended mediaset for a group of users.
  • FIG. 4 is a system diagram of a client-server embodiment of the invention.
  • FIG. 5 is a system diagram of a peer-to-peer embodiment of the invention.
  • FIG. 6 depicts the main functional components of a Device Manager according to one embodiment.
  • FIG. 7 depicts a Member Status screen of a Session Manager, which presents the relevant details of the data structures in the Session Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 8 is a top-level flow diagram of the operation of the Session Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 9 is a more detailed flow diagram of the “Prune Session Members” step in the Session Manager flow diagram of FIG. 8.
  • FIG. 10 is a more detailed flow diagram of the “Update Session Members” step in the Session Manager flow diagram of FIG. 8.
  • FIG. 11 is a more detailed flow diagram of the “Service Proxy Requests” step in the Session Manager flow diagram of FIG. 8.
  • FIG. 12 depicts a Playlist Queue screen of a Playlist Manager, which presents the relevant details of the data structures in the Playlist Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 13 is a flow diagram showing the operation of the Playlist Manager subcomponent of the Device Manager of one embodiment.
  • FIG. 14 is a flow diagram showing the operation of the Playlist Play subcomponent of the Playlist Manager of a Media Player Client embodiment.
  • FIG. 15 depicts the relevant data structures in one embodiment of the Media Player Client supporting the Playlist Builder component of the system.
  • FIG. 16 presents a conceptual diagram of the playlist building function of one embodiment.
  • FIG. 17 is a flow diagram of the operation of one embodiment of the Playlist Builder component of the system.
  • FIG. 18 is a diagram of a process for generating a list of media items that define a user taste.
  • FIG. 19 is a diagram of a process for computing aggregate playlist goals and a list of desired categories.
  • FIG. 20 is a diagram of a process for computing relevant media items for each user from total available media items.
  • FIG. 21 is a diagram of a process for categorizing relevant media items according to desired attributes.
  • FIG. 22 is a diagram of a process for computing the status of the current group playlist's achievement of compositional goals.
  • FIG. 23 is a diagram of a process for choosing a set of media items to add to a group playlist based on assessing needs according to compositional goal achievement assessment.
  • FIG. 24 represents a step of a user addition process for detecting new users.
  • FIG. 25 represents another step of a user addition process in which new users are added to the system and source device information is stored.
  • FIG. 26 is a diagram of a process for removing users from the system.
  • DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
  • In the following description, certain specific details of programming, software modules, user selections, network transactions, database queries, database structures, etc., are provided for a thorough understanding of the specific preferred embodiments of the invention. However, those skilled in the art will recognize that embodiments can be practiced without one or more of the specific details, or with other methods, components, materials, etc.
  • In some cases, well-known structures, materials, or operations are not shown or described in detail in order to avoid obscuring aspects of the preferred embodiments. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in a variety of alternative embodiments. In some embodiments, the methodologies and systems described herein may be carried out using one or more digital processors, such as the types of microprocessors that are commonly found in PC's, laptops, PDA's and all manner of other desktop or portable electronic appliances.
  • Disclosed are embodiments of systems, methods, and apparatus for generating mediasets comprising a plurality of media data items. As used herein, the term “media data item” is intended to encompass any media item or representation of a media item. A “media item” is intended to encompass any type of media file which can be represented in a digital media format, such as a song, movie, picture, e-book, game, etc. Thus, it is intended that the term “media data item” encompass, for example, playable media item files (e.g., an MP3 file), as well as metadata that identifies a playable media file (e.g., metadata that identifies an MP3 file). It should therefore be apparent that in any embodiment providing a process, step, or system using “media items,” that process, step, or system may instead use a representation of a media item (such as metadata), and vice versa.
  • In one embodiment, a system to provide recommendations of mediasets for a given group of users is provided. Embodiments of such a system may comprise a mechanism to store playlists and/or playcounts of each member in a community of users. Playlists and playcounts may be used to define the taste of each user and may therefore be used in performing taste analyses for each of the respective users.
  • In accordance with the general principles set forth above, embodiments of the invention may be used to address the problem of recommending a mediaset or group playlist to a group of users in a community or network. In some embodiments, a mediaset recommender may be provided where the input is a set of media items, and the output is a mediaset of weighted media items. Two illustrative methods for providing group recommendations of mediasets include: 1) building a common profile that expresses the taste of the group of users as a whole and applying that profile to the recommender; and 2) considering individual recommendations of each member taste, and aggregating the results.
  • Media players are typically capable of reproducing all types of media items and collecting playcounts and playlists. Playcounts are the number of times a media item has been played in the media player. Playlists are groupings of media items that users create to organize their libraries of media items. A system (e.g., a server) may be used to collect playcounts and playlists of media items of a community of users.
  • Playcounts and playlists of a user may be used to synthesize her or his taste or perform a taste analysis. In that sense, user's taste may be considered a collection of the most relevant taste data considering that user's playcounts and playlists.
  • The task of certain embodiments of this system is to recommend a mediaset for a group of users. A mediaset recommendation for a group of users may be the result of an aggregation process of the different mediasets that are recommended to each user of the group. Thus, some embodiments of this system may include a component that recommends a mediaset from another mediaset (by performing an analysis of the taste of each user, for example). The aggregation process may apply, for example, a voting schema and/or an optimization schema.
  • Mediaset recommendations for a group of users may be useful in a variety of scenarios. An example is a party where a group of people want to enjoy music together. Instead of playing the music that may be recommended to a particular individual in the group, it may be desirable to play the music that would be recommended to the group as a whole.
  • As such, in certain embodiments, the system's task is to find a mediaset or playlist to be recommended to a group of users. In embodiments wherein the system is collecting playcounts and/or playlists from the users, such a recommender system may be composed of three main steps:
    • 1) Synthesizing user tastes;
    • 2) Producing recommended mediasets for each user taste; and
    • 3) Aggregating the set of recommended mediasets into a single mediaset to be recommended to the whole group of users.
  • It should be understood that numerous variations on the content, scope, and order of these steps are contemplated. For example, the step of producing recommended mediasets for each user taste may be optional.
  • FIG. 1 depicts how the taste 108 of a user 100 may be built from the playcounts 104 and playlists 102 of that user 100 through a process 106 called Synthesize Taste. It should be understood that process 106 is one example of a taste analysis. Process 106 produces a taste 108, which may be encoded as a mediaset. As part of process 106, media items with higher playcounts and/or those that appear more in playlists may be selected. The selected media items may include those that are played more often by the user and/or those that are used in more different contexts and situations (because they appear in many different playlists). In some embodiments, playcounts may also be associated with play dates. In such cases, the process may weigh the playcounts with the play dates and therefore give more relevance to recent playcounts than to older playcounts.
  • Process 106 may comprise a ranking process of the media items of a user where items with higher playcounts, more recent plays, and/or more playlist appearances get a higher ranking. The process may select the top m ranked media items as the encoding of the user's taste 108. Note that this process may produce different results over time for the same user. This may be a desirable feature in embodiments in which the goal is to encode the taste of a user as it evolves over time.
  • In some embodiments, the system may provide individual mediaset recommendations. For example, with reference to FIG. 2, given a group of n users 200, 208, and 216, the system may compute the individual taste (202, 210, and 218, respectively) for each user with, for example, the process described above. The system may provide a recommended mediaset for each user using a recommender engine (204, 212, and 220, respectively) that processes user tastes ( mediasets 202, 210, and 218) to produce recommended mediasets 206, 214, and 222. It should be understood that a separate recommended engine may be used for each user ( recommender engines 204, 212, and 220), as shown in FIG. 2 or, alternatively, a single recommender engine may be used for the entire group. Thus, in total the depicted system may compute n mediasets of m media items.
  • In some embodiments, the system may also provide for aggregating individual recommended media sets into a group recommended mediaset or group playlist. For example, with reference to FIG. 3, once the system has computed the n mediasets of m media items (one for each user 300, 304, 308 of the group), an aggregation step may be used to produce the final mediaset of p (p≦n*m) media items 314 to be recommended to the group of users. As shown in FIG. 3, the system may provide an aggregator 312, which takes as input a recommended mediaset (302, 306, and 310, respectively) from each of the users in the group and provides therefrom a group recommended mediaset 314.
  • The aggregation step may be performed, for example, by following different approaches that serve different goals. As previously mentioned, in two preferred embodiments, the system may follow a) a voting schema; or b) an optimization schema. A voting schema may serve the goal of finding a mediaset that the majority of users would be happy with, without considering the degree of dislike by the rest of the members of the group. On the other hand, an optimization schema may produce a mediaset that minimizes the dislike (or maximizes the like) of all the members of the group. In order to apply an optimization schema, the media items in the n recommended mediasets 302, 306, 310 may each be linked with an associated weight. The weight of a media item in a mediaset for a user may be used to indicate the relevance of that media item for the user.
  • With a voting schema, the aggregation process may take the p media items that appear the most in the n mediasets. If there are items that appear the same number of times in the n mediasets (tie-break), then those items may be picked randomly.
  • Some recommender engines may produce mediasets having weighted media items. In such embodiments, when a tie-break situation happens, instead of picking the items randomly, the process may pick the media items with highest weights. For example, considering the following mediasets:
    • msl={s3,s7,s8,s10}
    • ms2={s2,s3,s4,s10}
    • ms3={s3,s4,s7}
      then, following the voting schema described above, the media items (s#) in the mediasets (ms#) would be ranked as follows:
    • s1=0, s2=1, s3=3, s4=2, s5=0, s6=0, s7=2, s8=1, s9=0, s10=2
  • Thus, the media items for the recommended group mediaset would be selected in the following order: s3, s4, s7, s10, s2, s8. Media items s7 and s10 are in a tie-break situation, so they could be ordered in accordance with their respective weights within their mediasets, if any. If the media items do not have associated weights, then the order of s7 and s10 may be randomized. The same would apply for items s2 and s8.
  • With an aggregation schema, the aggregation process may take the p media items that optimize some utility function considering all the users of the group, that is, considering all n mediasets 302, 306, 310. In order to apply the optimization schema, the media items in the n mediasets 302, 306, 310 may have an associated weight, for example, in the range from 0 to 1, where 0 means that the item is not relevant at all and 1 means that the item is the most relevant. For a given mediaset j, a media item i may therefore have a weight w(j,i). If a media item i is not in a mediaset j, then it may be considered to have a weight 0. The following example illustrates the weights associated with media items for a collection of mediasets:
    • ms1={s3,s7,s8,s10}
    • ms2={s2,s3,s4,s7, s10}
    • ms3={s3,s4,s7}
    • w(1)=[0, 0, 0.1, 0, 0, 0, 0.3, 0.2, 0, 0.9]
    • w(2)=[0, 0.2, 0.5, 0.4, 0, 0, 0.3, 0, 0, 0.9]
    • w(3)=[0, 0, 0.1, 0.8, 0, 0, 0.3, 0, 0, 0.5]
  • A number of different utility functions may be chosen in order to aggregate the media items. For example, a utility function may be selected to maximize the sum for all p selected items of the highest weight in any of the n mediasets. If it is desired to select p=3 items in accordance with this utility function, s10, s4, and s3 would be selected. The sum of the highest weights for these items is 0.9+0.8+0.5=2.2, which is the maximum we can get with the above example.
  • Alternatively, a utility function may be selected to maximize the sum for all p selected items of the lowest weight in any of the n mediasets. If it is desired to select p=3 items in accordance with this utility function, s10, s7, and s3 would be selected. The sum of the lowest weights for these items is 0.5+0.3+0.1=0.9, which is the maximum we can get with the above example.
  • As still another alternative, a utility function may be selected to maximize the sum for all p selected items of the mean weight of all of the n mediasets. If it is desired to select p=3 items in accordance with this utility function, s10, s4, and s7 would be selected. The sum of the average of weights for these items is 2.3/3+1.2/3+0.9/3=1.16, which is the maximum we can get with the above example. Of course, other utility functions may be employed, as will be apparent to one having ordinary skill in the art.
  • A recommender engine may be provided in some embodiments. In embodiments that do not include a recommender engine, the mediasets that encode the user tastes may be directly aggregated to form the mediaset that would be recommended to the whole group of users.
  • A system using the recommender engine may propose mediasets to discover new music, whereas a system that does not provide a recommender engine may propose mediasets with media items already known by at least one of the users in the group.
  • As should be apparent, the aforementioned systems and methods may produce mediaset recommendations for a group of n users so as to enable proposing a mediaset that can be enjoyed simultaneously by a group of users. The system may analyze user tastes from playlists and/or playcounts, so as to allow the user tastes to be represented as mediasets. These n user tastes can be then the input of a recommender engine that may suggest another n mediasets. An aggregation process that takes these mediasets and produces a single group mediaset may also be provided. Such a process can be done using, for example, a voting schema or an optimization schema. Similar systems may operate without a recommender engine. In such embodiments, the aggregation process may operate with the mediasets that represent the tastes of the n users, and the result may comprise a mediaset that can be recommended to the whole group of users.
  • Additional embodiments are disclosed and described with reference to FIGS. 4-14. In some of these embodiments, composite playlists may be built of media items in individual libraries on multiple media devices in a common location and/or through a communication network. The media devices in the group may include portable and/or non-portable devices. A means for playing the composite playlist may step through the playlist in sequence and cause the media player with the indicated media item to stream it to one or more of the other players where possible. Such embodiments may operate under, for example, a client-server architecture or a P2P distributed architecture. These embodiments may therefore be used to coordinate a set of media players to transmit media items on the specified group playlist in streaming fashion to each of the individual media players, or to a specified subset of the media players, in the sequential order they are listed on the group playlist. This may be accomplished without transferring standalone copies of the media items between the various media players.
  • Those skilled in the art will recognize that systems incorporating the features of one or more of the above-described embodiments may be realized as a collection of media devices whose design embodies the disclosed functional behavior, as a collection of layered protocols in the 7-level ISO Open Systems Interconnection Reference Model, or as an application task in media devices communicating using standard networking protocols.
  • Some preferred implementations will consist of three major components. The first component is a plurality of Session Managers which collectively coordinate the information needed to designate and manage the status of each media player with regard to a plurality of other media player devices engaged in a period of collaborative activity referred to as a “session”. In a preferred implementation, one Session Manager may be associated with each media player device, although this need not be the case in all implementations. The Session Managers may include means for verifying the eligibility of each device to join the session. This may be accomplished by virtue of the eligible users being subscribed to a service, which may provide legal access to the media items to be collectively enjoyed.
  • The second component of the aforementioned implementation is a Playlist Builder, which may reside, for example, on one of the media players, on a server, on a network access controller included in the system, or on a third-party server accessible to the media player devices through a communication network. The Playlist Builder may use information, such as taste data, available about the users in the group, and the collective set of media items available to the media players, to build a group playlist compatible with the collective tastes of the group.
  • The third component of the aforementioned implementation is a plurality of Playlist Managers, one associated with each media player device, which collectively communicate with the Playlist Builder to provide the information needed to build the group playlist and to play the media items on the group playlist. The Playlist Manager associated with each media player device may include functionality for communicating the availability of media items on the media player device, either in a local library or from a media streaming service accessible by a media player, for example. The Playlist Manager may also include a Playlist Play subcomponent, which may work in coordination with the counterpart subcomponents on the other media players in the session to step through each item on the group playlist, and may be configured to cause the media player associated with a media item to stream it to one or more of the other players as each media item is encountered.
  • With reference again to the drawings, further aspects of certain embodiments will now be described in greater detail. Two such alternative embodiments are shown in FIGS. 4 and 5. FIG. 4 is a system diagram of a client-server embodiment 400 and FIG. 5 is a system diagram of a peer-to-peer embodiment 500. Both embodiments of the invention may have the same essential components. However, the client-server embodiment 400 of FIG. 4 will be described in greater detail herein than the peer-to-peer embodiment. Nevertheless, It should be understood that the disclosure provided herein may apply equally to the peer-to-peer system with the appropriate system organizational differences, as depicted in the figures.
  • The key components of a client-server embodiment 400 are the server functional unit 402 and one or more Media Player Device clients 404. The server 402 may include three basic functional components: 1) A Session Access Controller 408, which may be used to grant permission for an individual media player to join the collaborative interaction between devices; 2) A Playlist Builder 410, may be used to construct the list and sequence of media items to be played in the group playlist during the session; and 3) A Device Manager 406 for each Media Player Device 404 in the session, which may be used to control the session-related functions of the device.
  • The peer-to-peer embodiment 500, as shown in FIG. 5, also includes a plurality of media player devices 504. Each of the media player devices 504 may include a device manager 506. A network access controller 502 may also be provided, which includes a session access controller 508 and a playlist builder 510 for receiving media item data from the plurality of media devices and for building a composite playlist of media data items from the media item data.
  • The device manager for each media player device may include a session manager and a playlist manager. For example, FIG. 6 depicts a device manager 602 having a session manager 604 and a playlist manager 606. Session manager 602 may be configured to manage the status of the media device with which it is associated.
  • FIG. 7 depicts a Member Status screen 702 that is associated with one embodiment of a session manager. As shown in FIG. 7, the session manager may track a series of categories of information for each of the media players in the session, such as ID, proxy, status, and time period information.
  • Playlist manager 606 may be configured to communicate with a playlist builder to send the media item data of the media device with which it is associated to the playlist builder and to play the media data items on the composite playlist on the media device with which it is associated.
  • As shown in FIG. 4 for the server-client configuration, and FIG. 5 for the peer-to-peer configuration, each media player device 404 may have an associated instance of the device manager 602 of FIG. 6. In addition, the server 402 and network access controller 502 may include a single instance of the session access controller 408, 508 and the playlist builder 410, 510.
  • The session access controller 408, 508 may interact, as described in greater detail later, with the session manager 604 in the device manager 602 of each media device 404 in a system to define the set of media devices comprising a session, and to enable communications between them. Similarly, the playlist builder 410, 510 may operate with the playlist manager 606 in the device manager 602 to define and perform a sequence of media items in a session.
  • FIG. 8 presents a top-level flow diagram of one embodiment of a session manager 604 in a device manager 602. The session manager of an individual media player device may be used to negotiate the introduction, operation, and departure of the device in a media playing session (henceforth “session”). This may include maintaining knowledge of all other media players devices in the session.
  • The session manager 604 may assume the presence of a single session access controller 408 on a server system 402 in the client-server configuration, or on a privileged peer-to-peer network access system 502 in the peer-to-peer configuration. In peer-to-peer embodiments, the network access system could be implemented on the system found in some peer-to-peer networks, which hosts network-level functions, while in other embodiments it could be implemented on one peer system in the network.
  • The session access controller's primary function in some embodiments is to serve a session sID code in response to a “request-to-enter” session message from devices seeking admission into a session as an indication permission has been granted to the device. In some embodiments, that permission may be granted if the media player mID code from the device supplied with the “request-to-enter” message is recognized as an mID eligible for admission to a session. In other embodiments, the session access controller may instead supply a dynamic mID back to the requesting media player device to serve as a unique identifier for the device in the context of the session along with the returned session sID code. In some embodiments, the session access controller may largely be functional in the networking protocol for the underlying communications network linking the media player devices, and the mID and sID may be codes derived from parameters in the network protocol that identify devices and communication sessions or transactions.
  • The session manager may include two major subfunctions 802 and 806, as shown in FIG. 8. Subfunction 802 mediates the admission of the media player into a session while subfunction 806 implements the process by which the media player maintains cognizance of the other media players in the session via the communication network linking.
  • The starting step for the session manager flow diagram of FIG. 8 assumes the media player is not participating in a session. As shown in the subfunction of 802, the session manager broadcasts a “request-to-enter” message with an optional “mID” code. If the media device successfully communicates with a session access controller that grants the media player access to a session, the media player will receive an “enter-session-sID” message indicating that the media player has been granted permission to enter the session identified by the sID code. In embodiments having only one session, the sID code would be superfluous and may be omitted or a default value returned.
  • If an “enter-session-sID” response message is not received, the session manager waits a random amount of time before transmitting another “request-to-enter” message. In some embodiments, the session manager may just wait a random amount of time after transmitting a “request-to-enter” message before transmitting another “request-to-enter” message if an “enter-session-sID” response is not received. In other embodiments, the session manager may wait a fixed amount of time after sending the “request-to-enter” message and then, if no “enter-session-sID” response is received, wait a random amount of time before transmitting the next “request-to-enter” message. In yet other embodiments, the session manager may wait until some external event occurs after sending the “request-to-enter” message, rather than receiving an “enter-session-sID”, and then wait a random amount of time before transmitting the next “request-to-enter” message.
  • Upon receipt of an “enter-session-sID” response from the session access controller, the session manager broadcasts the “in-session-mId-mId-status-sID” message, as indicated at 804. By broadcasting this message, the session manager indicates its presence in the session to the session managers in all of the other devices in the session. The parameters of this message (mID, mID, status, sID), are the mID of this media player device, the mID of another media player device in the session that knows about this device by proxy (set here to the mID of this media player device because no proxy is involved), the status of the playlist manager component 606 of the device manager 602, and the session sID.
  • After broadcasting the “in-session-mId-mId-status-sID” message, the session manager initiates the subfunction 806, which maintains knowledge of the other media players in the session identified by a particular sID. Subfunction 806 is a polling loop that maintains the information in a session manager state data structure, such as that shown in FIG. 7. The Device Manager 602 in each media player maintains a copy of the session manager state autonomously for each session, as identified by a unique sID, in which the media player is a participant. This state information may include several elements for each of the other media players in the session known to the subject media player: One such element is the mID of the media player. Another is the mID (referred to as the pmID) of the proxy media player in the session known to the subject media player, which knows the media player identified by mID is in the session, even if that media player is not known directly to the subject media player. A third example is the status of the media player. Still another example is the amount of time since this media player was last affirmatively known to be in the current session by the subject media player.
  • The polling loop in Subfunction 806 may be executed a number of times “n” as determined by the implementation. This number is relatively arbitrary, and typically is selected to achieve a desired “liveliness” criteria for the session manager and the session maintenance protocol. “Liveliness” here refers to how often the subject media player indicates its presence in the session to the other media players in the session. As the flow diagram indicates at 804, the session manager may broadcast an “in-session-mid-mid-status-sid” message to the other media players to indicate the subject media player is still active in the session and make its status known to those media players if the session manager state data table 702 includes entries for other media players. If the session manager state data table 702 is empty, the session manager may instead revert to searching for a session to join by initiating the session join subfunction 802.
  • Subfunction 806 may maintain knowledge of the other media players in the session by repetitively executing the three processes 810, 812, and 814 shown in FIG, 8, each of which are shown in greater detail in FIGS. 9-11, respectively. The “Prune Session Members” process 810 scans the session manager state data structure 702 and removes entries corresponding to media players from which the subject media player has not received an affirmative indication that they are still in the session, and therefore are inferred to have left the session. The “Update Session Members” process 812 processes messages from other media players that are therefore inferred to have joined or remained in the session. Finally, the “Service Proxy Requests” process 814 responds to requests from other media players if the session manager state data structure 702 includes an entry for a media player known directly to the subject media player that has been only known to another media player by proxy via the subject media player.
  • Describing each of the processes 810, 812, and 814 in turn, the “Prune Session Members” process 810 (FIG. 9) may perform one of the following three operations on the entry for each media player i in the session manager data structure 702.
  • 1) The entry is removed if the time[i] that the media player was last affirmatively known to the subject media player exceeds an implementation specified timeout value. A “proxy-session-mID-sID” query is then broadcast to request if the media player corresponding to the removed entry is still known to another media player in the session.
  • 2) A “proxy-session-mID-sID” query is broadcast to request if the media player is still known to another media player in the session, and the media player entry status has been marked as “cued” (meaning that the media player was scheduled to perform a track by the Playlist Manager process described below), and if one of the two following conditions exist: a) If the time[i] that the media player was last affirmatively known to the subject media player exceeds an implementation specified cued timeout value, meaning that the subject media player did not receive an indication that the media player corresponding to the entry transmitted a state change out of the cued state; b) If the time[i] that the media player was last affirmatively known to the subject media player does not exceed an implementation specified cued timeout value, but the media player corresponding to the entry is only known to the subject media by proxy via another media player in the session. In this case, the subject media player would only learn of a state change by the media player corresponding to the entry if that state change is broadcast by the proxy media player in response to the “proxy-session-mID-sID” query.
  • 3) Nothing is done to the entry for the media player in the event neither of the above conditions apply.
  • The “Update Session Members” process 812 (FIG. 10) receives the “in-session-mID-pmID-status-sID” messages broadcast by the session manager and the “Service Proxy Requests” process 814 and updates the session manager state data structure 702. The process assumes that the protocol of the network over which the media players communicate buffers all “in-session-mID-pmID-status-sID” messages until they can be processed. Each received message in which the message sID matches the ID of the session is processed in one of the five following ways:
  • 1) An entry corresponding to the media player with the mID of the message is added to the Session Manager state data structure if no entry with mID as the ID already exists.
  • 2) If the mID and the pmlD of the message match, implying that this message was transmitted by a media player that is now directly known to the subject media player, the entry in the data table for the media player with mID is updated with the status from the message. The time since the media player with mID was last affirmatively known to the subject media player may be reset to 0 seconds.
  • 3) The entry in the data table for the media player with mID may be updated with the proxy media player pmID and the status from the received “in-session-mID-pmID-status-sID” message if several conditions apply simultaneously: a) the received message is a proxy message (miID, pmID differ); b) the media player referenced by the message is currently known to the subject media by proxy (mID, pmID for the entry in the Session Manager state data structure differ) or the time since the media player with mID was last affirmatively known to the subject media player has exceeded an implementation timeout value; and c) the status of the referenced media player is unknown or the status in the message is idle. The time since the media player with mID was last affirmatively known to the subject media player may be reset to 0 seconds.
  • 4) The entry in the data table for the media player with mID may be updated with just the proxy media player pmID from the received “in-session-mID-pmID-status-sID” message if several conditions apply simultaneously: a) the received message is a proxy message (miID, pmID differ); b) the media player referenced by the message is currently only known to the subject media by proxy (mID, pmID for the entry in the Session Manager state data structure differ) or the time since the media player with mID was last affirmatively known to the subject media player has exceeded an implementation timeout value; and c) the status of the referenced media player is known and the status in the message is not idle. The time since the media player with mID was last affirmatively known to the subject media player may be reset to 0 seconds.
  • 5) Nothing is done if the received “in-session-mID-pmID-status-sID” is a proxy message (miID, pmID differ), the media player referenced by the message is currently known to the subject media player (mID, pmID for the entry in the session manager state data structure match), and the time since the referenced media play was last affirmatively known to the subject media player does not exceed an implementation-defined timeout value.
  • The “Service Proxy Request” process 814 (FIG. 11) provides information about any media players the subject media player affirmatively knows to the other media players in the session in response to the “proxy-session-mID-sID” request messages, which may have been broadcast by the “Prune Session Members” process 810 of any media player in the session identified by sID. As with the “Update Session Members” process, this process assumes that the protocol of the network over which the media players communicate buffers all “proxy-session-mID-sID” messages until they can be processed. Each received “proxy-session-mID-sID” message in which the message sID matches the ID of the session may be processed in one of the four following ways:
  • 1) An “in session-mID-pmID-status-sID” message is broadcast, where pmID=mID and the status is that of the subject media player, if the subject media player corresponds to the mID of the request.
  • 2) An “in session-mID-pmID-status-sID” message is broadcast, where pmID=mID, and the mID and status parameters are those in the session manager state data structure 702 for the media player referenced by the query, if the media player mID of the query is known affirmatively to the subject media player (mID of the query and pmID in the state manager state data structure match).
  • 3) An “in session-mID-pmID-status-sID” message is broadcast, where the pmID and status parameters are those in the session manager state data structure 702 for the media player referenced by the query, if the media player mID of the query is only known to the subject media player by proxy (mID of the query and pmID in the State Manager state data structure differ).
  • 4) Nothing is broadcast if the “proxy-session-mID-sID” message does not reference the subject media player or a media player in the Session Manager state data structure 402 known to the subject media player.
  • The Playlist Manager of an individual media player device may consist of two major subfunctions: First, the “Playlist Queue Updater” process 1300, as depicted in FIG. 13, which negotiates the sharing of playlist information between the media playing devices in the session. And, second, the “Playlist Play Sequencer” process 1400, as depicted in FIG. 14, which controls performance of the media items by the subject media player.
  • The Playlist Manager 1200 (FIG. 12) assumes the presence of a single Playlist Builder on a server system in the client-server configuration, or on a privileged peer-to-peer network access system in the peer-to-peer configuration. In peer-to-peer embodiments, the playlist builder could be implemented on the system found in some peer-to-peer networks, which hosts network-level functions, while in other embodiments it could be implemented on one peer system in the network. The “Playlist Queue Updater” may provide the data from the media player to the Playlist Builder that is used in the playlist building process. The Playlist Builder will be described in detail subsequently.
  • The Playlist Manager 1200 also assumes that the media player makes available several data items relevant to the playlist building process depicted conceptually in FIG. 15. In some embodiments, the media player device 1502 may store media items in a local library 1506, and provide a mechanism for querying the local directory 1508 to determine whether a specific media item is available for performance by the media player. in other embodiments, the media player 1502 may download or stream media items from a remote service over a communication network on demand, and provide a mechanism for querying a directory 1504 of media items available from the remote service for performance by the media player. FIG. 15 also depicts several other data items maintained by the media player relevant to the playlist building process, including indication 1510 of a media item that should be preemptively added to the playlist, and lists of items 1512, 1514, and 1516 of items that user does not want added, added preferentially, and added if at all possible, respectively, to the playlist.
  • FIG. 13 presents a top-level flow diagram of the “Playlist Queue Updater” process 1300. As the figure illustrates, this may be a repetitive process performed ad infinitum. The “Playlist Queue Updater” first determines if the user of the subject media player has requested that a particular media item be added to the playlist being built, and sends a “force-iid-pid-length-sid” message to the Playlist Builder if so. This message specifies the media item by iID, the pID of the media player (this is the same value as mID used by the Session Queue Updater described previously), the length in time units of the media item, and the sID for the session.
  • After any user request that a specific media item be added to the playlist has been processed, the “Playlist Queue Updater” then checks if a “have-iID-sID” request message has been received from the Playlist Builder inquiring whether the subject media player can provide a specific media item for the playlist. The process assumes that the protocol of the network over which the media players communicate buffers all “have-iiD-sID” request messages until they can be processed. Each received message in which the message sID matches the ID of the session may be processed in one of three following ways:
  • 1) A “have-iID-pID-length-sid” message is broadcast if the subject media player pID has access to the requested media item iiD with length “length” from a local library of media items.
  • 2) A “have-iID-pID-length-sid” message is broadcast if the subject media player pID does not have access to the requested media item iiD with length “length” from a local library of media items, but does have access to the requested media item from a remote service.
  • 3) No response is broadcast if the media player does not have access to the requested media item.
  • In some embodiments, the “Playlist Queue Updater” may take into account the user's preferences with regard to media items, as indicated by the lists 1512, 1514, and 1516 in determining whether to supply a “have-iID-pID-length-sid” message in response to a “have-iID-sID” request message. For example, the “Playlist Queue Updater” may not respond to the “have-iID-sID” message even if the requested item is in the catalog 1504 or 1506 of the device if it is also on the “no play” list 1512. Similarly, the “Playlist Queue Updater” may respond optionally according to some statistical or other criteria if the item is on the “preferred” list 1514. And the “Playlist Queue Updater” may always respond if the item is on the “must play” list 1514.
  • The last step in an iteration of the “Playlist Queue Updater” flow diagram processes at least one “queue-iID-pID-length-sID” message from the Playlist Builder, if any have been received. The process assumes that the protocol of the network over which the media players communicate buffers all “queue-iID-pID-length-sID” messages until they can be processed. In some embodiments, the “Playlist Queue Updater” may process only a single “queue-iID-pID-length-sID” message per iteration by adding an entry to the Playlist Queue data structure in the Playlist Manager, consisting of the iID, length, and pID items from the message. In other embodiments, it may process multiple or all pending “queue-iID-pID-length-sID” messages.
  • In one embodiment, performance of the playlist is, in effect, directed by the Playlist Builder. As described later, the Playlist Builder may broadcast a “queue-iId-pID-length-sid” message to all the media players in the session requesting that media item be added to the Playlist Queue data structure 1202 in the Playlist Manager 1200. The Playlist Builder sends this message at the actual time the media item should be performed and the media player accepts that message as a command to perform the specified media item. In a variant of this embodiment, the Playlist Builder may send this message just sufficiently before the time the media item should be performed to allow the media item to perform any processing required to initiate the performance by the time the performance is to start.
  • In another embodiment, the “Playlist Play Sequencer” process 1400 of the Playlist Manager 1200 shown in FIG. 14 locally coordinates the performance of the items on the playlist that are actually performed by the subject media player with the performance of the other media items on the playlist by the appropriate media players. All media players in the session may have a copy of the Playlist Queue 1202. This copy may be imperfect: It could be missing items at the head of the queue that were put on the playlist before the subject media player joined the session, or in the middle of the queue due to communication failures. The Playlist Play Sequencer may cause the subject media player to synchronize its performances of individual media items with the performance of media items by other media players in the session in the presence of these possible gaps in the playlist.
  • The “Playlist Play Sequencer” 1400 may be an iterative process which achieves the synchronized performance in the presence of gaps by processing the item at the head of the Playlist Queue 1202 in, for example, one of the three following ways:
  • 1) If the pID of the media item at the head of the queue is not the pID of the subject media player, corresponding to the left branch of the flow diagram, the “Playlist Play Sequencer” essentially just idles, monitoring the status of the media player with mID=pID in the Session Members state data structure 702 until it is inferred that the media item has been performed. The subject media player infers the media item has been performed when either a transition from played to idle is observed, or the value of the local playtime timer exceeds the performance length of the media item.
  • 2) If the pID of the media item at the head of the queue is the pID of the subject media player, and the Session Members state data structure 702 does not include an entry for another media player with the status value playing, corresponding to the middle branch of the flow diagram, the “Playlist Play Sequencer” plays the media item. The status of the subject media player is set to playing while the item is being performed, and then set back to idle after the performance is finished to signal the performance to the other media players in the session.
  • 3) If the pID of the media item at the head of the queue is the pID of the subject media player, but the Session Members state data structure 702 includes an entry for another media player with the status value playing, corresponding to the right branch of the flow diagram, the performance of the media item is postponed. The “Playlist Play Sequencer” repeatedly traverses this branch of the flow diagram until no other media player has the status value cued, and then sets the status value for the subject media player to cued. On the next iteration the “Playlist Play Sequencer” takes the middle branch of the flow diagram and performs the media item as described above.
  • As previously described, the Playlist Manager of the Device Manager in each media player device may assume the existence of an autonomous Playlist Builder on the server system in the client-server configuration, or on a privileged peer-to-peer network access system in the peer-to-peer configuration. In peer-to-peer embodiments, the playlist builder could be implemented on the system found in some peer-to-peer networks which hostsnetwork-level functions, while in other embodiments it could be implemented on one peer system in the network.
  • FIG. 16 depicts how the Playlist Builder 1606 draws on a knowledge base 1604 of information about media items to compose a playlist of media items in the playlist queue 1608 from the pool of media items 1602 available to the media playing devices in the session.
  • FIG. 17 is a flow diagram of the playlist builder 1606 process. The process assumes the availability of a method for generating the IDs of media items that are candidates for inclusion in the playlist. Candidates may be proposed based on many criteria, including information in the knowledge base 1604, and knowledge of the preferences of the users whose media players are participating in the session.
  • The “Playlist Builder” may be an iterative process that adds a single media item to the playlist per iteration. Each iteration may include three steps:
  • 1) A candidate media item with ciID is generated based on information in the knowledge base 1604 and/or other criteria. A “who-has-ciID-sID” query is broadcast to all of the media players in the session to determine if any of them has access to the proposed media item.
  • 2) If the Playlist Queue Manager of any of the media players in the session has previously broadcast an unprocessed “force-iID-pID-length-sID” message, the requested media item iID is added to the playlist 2108. The Playlist Builder may broadcast a “queue-iID-pID-length-sID” message to all of the media players in the session, directing that they each add the requested media item to their local playlist that their Playlist Queue Manager is maintaining.
  • 3) After an implementation-determined delay, a determination is made if the Playlist Queue Manager of any of the media players in the session has broadcast an unprocessed “have-iID-pID-length-sID” response message, indicating that a media player in the session has access to the requested media item iID. As one or more of the media players may have access to the requested item, one of those media players is selected either at random, or according to some other criteria, as the media player that will perform that media item and the item is added to the playlist. The Playlist Builder may then broadcast a “queue-iID-pID-length-sID” message to all of the media players in the session directing that they each add the requested media item to their local playlist maintained by their Playlist Queue Manager 1100.
  • The process assumes that the protocol of the network over which the media players communicate buffers all “force-iID-pID-length-sID” request messages and “have-iID-pID-length-sID” until they can be processed. In any particular embodiment, one or more of each type of message may be processed per iteration. In addition, as the flow diagram indicates, steps 2) and 3) may be repeated a number of times limited by a timeout value to increase the responsiveness of the communications between the Playlist Builder and the media player devices.
  • The Playlist Builder iterations may be repeated ad infinitum. The playlist is a non-terminating sequence of media items to be performed so long as there is at least one media player in the session. Furthermore, some embodiments may support building playlists consisting solely of media items suggested by users of the media devices, and communicated to the Playlist Builder with the “force-iID-pID-length-sID” request message, by providing an option for setting a option flag to “false” so that the “auto build?” tests in the flow diagram fail.
  • Still other implementations are disclosed and described with reference to FIGS. 18-26. In these embodiments, playlists of selected media items may be dynamically built from a collection of media items based on the preferences of a temporally-defined group of users with media player devices. Compositional goals and the collection of media items available to meet those goals may be dynamically computed using, for example, the composite taste data for the group as a whole as individual users enter and leave the group.
  • Some embodiments therefore relate to methods for dynamically creating a playlist of media items responsive to the collective tastes of a temporally-defined group of individuals. Some embodiments also provide for dynamically diversifying the group playlist so that it does not in whole, or in part, unduly reflect the taste of a single member of the group, or a particular subgroup of users within the whole group.
  • Additional embodiments may provide for a system and method for dynamically building a playlist of media items by using the collective taste preferences of the members of a group to determine compositional goals of the playlist, and then building a group playlist that achieves those compositional goals. The system may derive the compositional goals by analyzing the taste preferences of the current members of the group. Media items available to achieve those goals are typically a subset of the media items that are identified in response to analyzing taste data and may be selected from a collection of media items available to the system. The collection of available media items may be the aggregate of the sub-collections of media items provided by the users or, alternatively, may be a pre-existing set of media items stored, for example, in a central database.
  • In a preferred implementation of the system, three primary processes are provided. The first process keeps track of users as they enter and/or leave the group by starting or ending communications with the system using, for example, individual networked communication devices. Example embodiments include Bluetooth® devices and other devices communicating in an ad-hoc network of Internet or other network-connected devices using, for example, the Apple Bonjour protocol. Users with individual communication devices may be added to and/or removed from the group by the system as they implicitly or explicitly connect and disconnect from the communication network, which links the individual devices to the computational means for building the group playlist.
  • As a user enters the group, the system may retrieve the user's taste data. Taste data may be retrieved by, for example, accessing a database of taste data from users known to the system or by requesting taste data directly from the users' communication devices and adding it to the pool of taste data for the group. As a user leaves the group, the system may also be configured to remove that user's taste data from the pool of taste data for the group. In some embodiments in which the media items available for inclusion in a playlist are provided by users and not centrally maintained by the system, the system may maintain a pool of media items available for the current group.
  • Using the pool of taste data for the group, and the pool of media items available for inclusion on a playlist, the first process may derive compositional goals for the playlist, such as requiring that the values for the selected media items of a specific attribute have a specified distribution. In some embodiments, the first process may also involve selecting a subset of media items from the total pool of media items to be used to build the playlist. This may be accomplished using a media item recommender, such as that described in U.S. patent application Ser. No. 11/346,818 titled “Recommender System for Identifying a New Set of Media Items Responsive to an Input Set of Media Items and Knowledge Base Metrics,” which is incorporated herein by reference in its entirety. The aforementioned media item recommender may be used to recommend media items responsive to an input set of media items.
  • The second process may build the composite playlist by selecting media items from the total pool of media items in a manner which causes the evolving playlist to more closely approximate the specified compositional goal as the selected items are added to the playlist. Some implementations of the system may therefore be responsive to the constantly changing group membership. In particular, as users in the group continuously enter and leave the group, the compositional goals and/or the pool of media items available to achieve those goals may continually change. Some embodiments may remove media items from the dynamic playlist as users depart from the group, particularly in those situations where the group members actually contribute the media items to the pool. In such situations, the media items in the pool could be removed from the pool as users leave, such as by physically leaving a proximity or by logging out of a system. It should be understood, however, that such a feature is not necessary in all implementations, since a media item can be skipped if it is no longer available when it is to be performed.
  • The third process may involve diversifying the group playlist. The diversification process may involve shuffling media items on the list as necessary to ensure that no segment of the playlist is dominated by media items representative of the taste of one or more group members. In some embodiments, additional information about aesthetic properties of the media items might be used to rearrange the order of the media items in the group playlist to achieve specific aesthetic goals. Finally, in cases where there are few users, and therefore for each user the playlist includes a large number of items responsive to the taste of just that user, some embodiments may replace some media items with additional media items. These additional or supplemental media items may not be provided by any of the members in the group, and may be selected according to a diversifying criteria to bring more variety to the group playlist.
  • One embodiment of the system may implement the processes detailed in FIGS. 18-20. This embodiment may be analogized to the automated evolution of a jukebox. Whereas a jukebox supplies local music and requires explicit user interaction from the user to pick desired music, these embodiments automatically build playlists based on previously collected data about users that are proximal (either physically or virtually) to the system.
  • In describing the embodiment of FIGS. 18-20 below, a process of adding users to the system will be described first, then a process for removing users, and finally the overall playlist construction process is described, including how the process uses information to build a targeted playlist that leverages knowledge of proximal users for building a playlist.
  • In order for the system to “narrowcast” (i.e., to target content to a specific set of users) a playlist for proximal users, a mechanism may be provided to allows for discovery/detection of proximal users. In one embodiment, a server process 2400 (as shown in FIG. 24) may be provided using, for example, Bluetooth® technology to allow users to “log in” to the system. Users who are “logged in” to the system are considered proximal users, regardless of their physical proximity to the other users or server. In some embodiments, all proximal users immediately begin to affect the playlist being constructed, which will be discussed in greater detail later. It will be obvious to one of ordinary skill in the art that Bluetooth® is just one of many data discovery/entry mechanisms that could be used to add users to the system. Other embodiments may include explicit text entry from users, or even be a zero-configuration protocol such as Apple's BonJour protocol.
  • In step 1 of one implementation of a Bluetooth® user addition process, a Bluetooth® server with a predetermined service UUID (Universally Unique Identifier) is provided. The Bluetooth® specification uses UUIDs to identify services uniquely across many devices. By using a UUID, a Bluetooth® client is able to detect a specific service on a remote server.
  • In step 2, once a client Bluetooth® process has connected with the system's Bluetooth® server 2400, the client transmits user information to the server process 2400, as shown in FIG. 25 at 2500. The server process 2400 will then attempt to validate the user information, as indicated at 2501. If the user validation process 2501 fails, then the user is rejected and is not added to the proximal user list 2503 or the proximal device list 2504 by the user list modification process 2502. If the user validation process 2501 succeeds, then the user is added to the proximal user list 2503 and the user device is added to the proximal device list 2504. The means for entry of the user and the user device to the appropriate lists may vary, as would be understood by one of ordinary skill in the art.
  • In order to provide real-time narrowcasted playlist content, the system preferably updates and maintains the contents of the proximal user list 2503 and proximal device list 2504 on a regular basis. At the same time, the system may be configured to reduce the chance that users are erroneously moved from either list. These concerns may be addressed by using a User/Device Proximity Detection Process 2600, as shown in FIG. 26, to identify which users are proximal to the system. Process 2600, like various other processes, may be implemented using Bluetooth® technology. The system may be able to determine when users are no longer proximal by, for example, detecting proximal devices and mapping the proximal device list 2504 to the proximal user list 2503.
  • After a user has been discovered to no longer be proximal, a User/Device Inactivity Detection Process 2601 may be used to begin considering whether a user should be removed from the proximal user list 2503 and the user's device removed from the proximal device list 2504. The User Device User/Device Inactivity Detection Process 2601 may be implemented as a time-based process. The system may be configured to remember the time when a user first became classified as non-proximal. Then, for example, if a specific time limit has been reached and the non-proximal user is identified as still being non-proximal, the user may be removed from the proximal user list 2503, along with the user's device from the proximal device list 2504, by the User/Device Removal Process 2602. If a user is found to be proximal by the User/Device Proximity Detection Process 2600 before the time limit of the User/Device Inactivity Detection Process 2601 is reached, then the user and their device will be left on the appropriate lists 2503/2504. It will be apparent to one skilled in the art that specific implementations of the aforementioned system may, but need not, rely on the use of Bluetooth® or a time-based user removal strategy.
  • The Composite Playlist Builder process may rely on the User Addition/Removal processes described above in order to determine which users to which a playlist is to be narrowcasted. In one implementation, the Composite Playlist Builder process may first generate a list of media items that define a user taste, and then repeat this step for all proximal users in the system.
  • As shown in FIG. 18, the process of generating a list of media items that define user taste may be accomplished by examining the users 1800 logged into the system and using information—i.e., media item taste data—to synthesize user taste, as shown at 1802. The media item taste data may be gathered by the system contemporaneously or, alternatively, it may be compiled into a list or database from previously gathered media item taste data. Either of the foregoing may be represented by step 1801 in FIG. 18. A list of media items and/or media item metadata (collectively “media data items”) that contains information about the music that should be narrowcasted to user 1800 may then be generated, as indicated at 1803. It should be noted that it is not necessary to have any users logged into the system in order for a group playlist to be generated. Preconfigured goals can be used when no/few users or otherwise insufficient data is available to the system. This process may then be repeated for each user 1800 who is logged into the system.
  • The data in one embodiment may be cached to enable quick lookup. As will be demonstrated in other steps, the data which represents user taste may also provide the foundation from which other steps derive information. In some embodiments, user taste may be synthesized by first obtaining a set of the tracks that a user has listened to recently and/or those that a user has ranked highest. Of course, it will be obvious to those skilled in the art that there are many different ways to synthesize user taste based on collected user taste data.
  • As a second process of one implementation, aggregate playlist goals may be computed based on results of the first process and/or on a list of desired categories. Note that there will be typically be one set of input media data items for each user.
  • In order to compute aggregate playlist goals, each set of media items and/or metadata that indicates user taste 1900, and/or a predetermined or computed set of categories of interest 1901, may be used as input to a User Taste Aggregation Process 1902, as shown in FIG. 19. User Taste Aggregation Process 1902 may be used to create a set of optimal playlist characteristics 1903 for a group playlist that is intended to be narrowcasted to the proximal users. In certain embodiments, media items and/or metadata that are representative of more than one user's taste may not be viewed as duplicative. This feature may allow media items and/or metadata that are common between multiple users to be given increased levels of importance by the User Taste Aggregation Process 1902. The User Taste Aggregation Process 1902 may accept both user taste 1900 and desired categories of interest 1901 as input. Categories of interest 1901 are often (but not required to be) metadata indicators that indicate the set of metadata to be used in computing the optimal playlist characteristics 1903 for a narrowcast playlist targeted at a particular group of users.
  • One embodiment uses a category set 1901 that comprises a genre. Such a system may compute the frequency distribution of genres in the play histories retrieved for each connected user. The percentage of each genre may then be used as the optimal genre distribution for the generated group playlist. Of course, a genre is not the only category which could be used for generating a playlist. It should also be understood that a raw frequency distribution is not the only method for computing statistics about any given category. Other similar implementations are not limited to, but could employ, a weighting strategy or voting strategy to determine desired levels of each feature.
  • After the aggregate playlist goals have been computed, relevant media items for a user may be selected from the pool of available media items. This process may then be repeated for each proximal user in the system.
  • For example, in FIG. 20, the set of relevant media items 2002 that are associated with a given user may be computed/selected. To do this, a process 2001 for each user may be executed. Process 2001 may accept as input the set of media items and/or metadata that indicates a user's taste 1803 and/or the set of all available media items 2000. Process 2001 may also produce a subset of available media items that are relevant media items for a single user.
  • In one embodiment, process 2001 may be implemented by using a media item recommender, such as those described in U.S. patent application Ser. No. 11/346,818 titled “Recommender System for Identifying a New Set of Media Items Responsive to an Input Set of Media Items and Knowledge Base Metrics,” which was previously incorporated by reference. Process 2001 may also be augmented by providing the media item recommender with the complete scope of recommended media items from which to recommend a subset of media items. In practice, this may be used to make sure that the recommended media items are available for use by the composite playlist builder application. For example, if there are one-thousand available media items 2000 to choose from, process 2001 may ensure that the relevant media items 2002 are within the one-thousand available media items 2000. This is analogous to a jukebox that has a limited set of media from which to produce a playlist. It should be apparent that the media items available to process 2001 do not need to be resident on the same machine that is executing process 2001. Any media item which is programmatically obtainable via any protocol may be considered an available media item.
  • After the relevant media items for each user have been selected from the pool of available media items, the media items may be categorized according to a set of desired attributes. For example, as shown in FIG. 21, the relevant media items 2100 may be categorized via a categorization process 2101 according to the categories of interest 1901 used previously in the user taste aggregation process 1902. Categorization process 2101 may be used to produce a categorized list of relevant media items 2102. This list may enable the overall system to pick one or more media items based on one or more categories of interest 1901.
  • After the media items have been categorized according to a set of desired attributes, the status of the current group playlist's achievement of goals may be assessed/computed. For example, with reference to FIG. 22, a goal assessment process 2201 may be used, along with categorization process 2101, to produce a prioritized list of goals needing to be fulfilled 2202. The categorization process 2101 may accept the current playlist 2200 and categories of interest 1901 as input. The categorization process 2101 may use the categories of interest 1901 to categorize the media items on the current playlist 2200. The output of the categorization process 2101 may be sent to the goal assessment process 2201 that may be used to determine how close the current playlist 2200 characteristics are to the optimal playlist characteristics 1903. The output of the goal assessment process 2201 may be a prioritized list of goals needing to be fulfilled 2202.
  • In one embodiment, a frequency distribution of genres may be computed for the categorization process. The goal assessment process may comprise subtracting the achieved genre percentages for the current playlist from the target percentages for the optimal playlist. It can then take the largest value difference as the needed upcoming genre for the playlist. Of course, a variety of other approaches can be used for computing playlist needs.
  • After the status of the current group playlist's achievement of goals has been assessed/computed, a set of tracks may be selected to add to the group playlist based on assessing current needs for the playlist according to the goal achievement assessment process previously performed. For example, with reference to FIG. 23, a set of one or more media items 2301 are selected for addition to the current playlist 2200 by a playlist addition process 2302. The media item selection process 2300 may accept as input the prioritized list of goals needing fulfilled 2202, the categorized list of relevant items 2102, and the current playlist 2200. The media item selection process 2300 may attempt to fulfill the goals in a prioritized manner in some embodiments, such that the most important goal is fulfilled by picking a media item from the list of relevant items 2102 that best fulfills the goal. If multiple media items could help fulfill a goal, then a media item may be selected at random from the list or in another fashion, such as by some form of tiebreaker process.
  • The selected media item may also be subjected to a diversification step, which may be used to ensure that the media items being added to the playlist are not too similar to the current playlist contents. In some embodiments, the diversification step may comprise shuffling media items in the group playlist to diversify at least one segment of the group playlist that includes media data items that are overly representative of the tastes of one or more users. The system may be configured such that, in response to determining that the group playlist is dominated by media items representative of the taste of one or more users, removing at least one media data item from the group playlist that corresponds with the taste of the one or more users.
  • In some embodiments, in order for a media item to be selected and added to the current playlist 2200, it must pass through the diversification process (unless the diversification process eliminates all media items in the pool). Once a sufficient set of media items have been selected, the set of media items 2301 may be sent to a playlist addition process 2302 for addition to the active playlist. The playlist addition process 2302 may have the capability of creating/updating the current playlist 2200 and, in some implementations, initiating playing the media items in the current playlist 2200.
  • In one embodiment, a media item may be selected from the most needed genre for the current playlist by choosing at random from relevant tracks categorized in the appropriate genre. The diversification step may be used to ensure that no media item is repeated in the group playlist for a predetermined period of time. In other embodiments, the diversification step may also, or alternatively, be used to ensure that no subset of media items—such as artists, albums, genres, etc.—are repeated within a given subset of the group playlist. For example, the diversification step may be used to prevent media items from a particular artist from being repeated within a seven track window within the group playlist. If it is impossible to fulfill the requirements of the diversification process, then a media item may be chosen at random from all media items within the appropriate genre. If multiple genres are identified with equal priority, then the selected media item may be selected from any one of the identified genres, or by some other tie-breaking selection procedure.
  • The above description fully discloses the invention including preferred embodiments thereof. Without further elaboration, it is believed that one skilled in the art can use the preceding description to utilize the invention to its fullest extent. Therefore the examples and embodiments disclosed herein are to be construed as merely illustrative and not a limitation of the scope of the present invention in any way.
  • It will be obvious to those having skill in the art that many changes may be made to the details of the above—described embodiments without departing from the underlying principles of the invention. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. For example, one of ordinary skill in the art will understand various aspects of the embodiments disclosed herein could be used in any system for building and sharing a composite playlist from collective group tastes on multiple media playback devices.
  • The scope of the present invention should, therefore, be determined only by the following claims.

Claims (33)

1. A method for generating a group playlist from a plurality of individual mediasets of users within a group, each user mediaset comprising a respective plurality of media data items, the method comprising:
performing a taste analysis on a first one of the user mediasets to generate a first sub-mediaset from the first user mediaset;
performing a taste analysis on a second one of the user mediasets to generate a second sub-mediaset from the second user mediaset; and
aggregating media data items from the first and second sub-mediasets to generate a group playlist.
2. The method of claim 1, wherein the media data items comprise playable media files.
3. The method of claim 1, wherein the media data items each comprise metadata that identifies a playable media file.
4. The method of claim 1, further comprising:
generating a recommended mediaset for the first user based on the first user taste analysis; and
generating a recommended mediaset for the second user based on the second user taste analysis.
5. The method of claim 4, wherein each of the recommended mediasets comprises metadata that identifies a playable media file.
6. The method of claim 1, wherein the step of aggregating the media data items comprises ranking individual media data items by the number of sub-mediasets in which they appear.
7. The method of claim 1, wherein the group playlist includes media data items comprising songs.
8. The method of claim 1, wherein the step of aggregating the media data items comprises selecting a set of media data items that optimizes a utility function for the group.
9. The method of claim 8, wherein the utility function is based on weights associated with individual media data items.
10. The method of claim 9, wherein the step of selecting a set of media data items that optimizes a utility function for the group comprises selecting a set of media data items so as to maximize a sum of selected media data item weights.
11. The method of claim 10, wherein the step of selecting a set of media data items so as to maximize a sum of selected media data item weights comprises selecting the media data items that maximize a sum of the highest weights for each of a plurality of different media data items in a plurality of user mediasets.
12. The method of claim 9, wherein the step of selecting a set of media data items that optimizes a utility function for the group comprises selecting the media data items that maximize a sum of average media data item weights.
13. The method of claim 1, wherein each of the media data items in the group playlist can be found in a user mediaset within the group.
14. A method for generating a dynamic, composite playlist of media data items for a user group, comprising:
retrieving media item taste data for a plurality of users, wherein the user taste data for a given user is retrieved in response to the given user joining the user group;
aggregating the media item taste data in the user group to create a set of optimal playlist characteristics for the user group; and
adding media data items to a group playlist based at least in part on the set of optimal playlist characteristics.
15. The method of claim 14, wherein the user taste data for a given user is automatically retrieved as the given user joins the user group.
16. The method of claim 14, wherein media data items associated with a given user are retrieved in response to the given user joining the user group.
17. The method of claim 14, wherein the media data items added to the group playlist are selected from a central database of media data items, and wherein the content of the database is independent of the users in the user group.
18. The method of claim 14, wherein the user taste data for a given user is removed from the aggregated user taste data in response to the given user exiting the user group.
19. The method of claim 14, wherein media data items in the group playlist that were retrieved from a given user are removed from the group playlist in response to the given user exiting the user group.
20. The method of claim 14, further comprising subjecting the media data items in the group playlist to a diversification process.
21. The method of claim 20, wherein the diversification process comprises ensuring that no media data item is repeated in the group playlist for a predetermined period of time.
22. The method of claim 20, wherein the diversification process comprises shuffling media data items in the group playlist to diversify at least one segment of the group playlist that includes media data items that are overly representative of the tastes of one or more users.
23. The method of claim 20, wherein the diversification process comprises determining whether the group playlist is dominated by media data items representative of the taste of at least one user and, in response to determining that the group playlist is dominated by media data items representative of the taste of the at least one user, removing at least one media data item from the group playlist that corresponds with the taste of the at least one user.
24. The method of claim 14, wherein the user taste data for a given user is retrieved in response to the given user logging into a network of connected devices to join the user group.
25. The method of claim 24, wherein the step of logging into the network is accomplished implicitly as the network-connected device of a given user enters a given proximity.
26. A system for building a composite playlist from the collective tastes of a plurality of users in a session, each having a separate media device, comprising:
a plurality of session managers, each associated with one of a plurality of media devices, wherein each session manager is configured to manage the status of the media device with which it is associated;
a playlist builder for receiving media item data from the plurality of media devices and for building a composite playlist of media data items from the media item data; and
a plurality of playlist managers, each associated with one of a plurality of media devices, wherein each playlist manager is configured to communicate with the playlist builder to send the media item data of the media device with which it is associated to the playlist builder, and wherein each playlist manager is further configured to play the media data items on the composite playlist on the media device with which it is associated.
27. The system of claim 26, wherein the media item data comprises media item taste data.
28. The system of claim 26, wherein the media item data comprises metadata that identifies a playlist of playable media files.
29. The system of claim 26, wherein the playlist builder resides on a central server.
30. The system of claim 29, wherein the plurality of session managers reside on the server.
31. The system of claim 26, wherein the session managers are configured to verify the eligibility of media devices to participate in the session.
32. The system of claim 26, wherein each playlist manager is configured to stream media files to other media players in the session.
33. The system of claim 32, wherein the system is configured such that each media data item in the composite playlist is located on at least one of the media devices in the session, and wherein each individual media data item on the composite playlist is played at least substantially simultaneously on each of the media devices in the session by causing each of the media data items in the composite playlist to be streamed from its corresponding media device to each of the other media devices in the session.
US11/513,495 2006-02-03 2006-08-31 Mediaset generation system Abandoned US20070244880A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/513,495 US20070244880A1 (en) 2006-02-03 2006-08-31 Mediaset generation system
US12/432,637 US8583671B2 (en) 2006-02-03 2009-04-29 Mediaset generation system

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/346,818 US7734569B2 (en) 2005-02-03 2006-02-03 Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
US77250206P 2006-02-10 2006-02-10
US77407206P 2006-02-15 2006-02-15
US79672406P 2006-05-01 2006-05-01
US11/513,495 US20070244880A1 (en) 2006-02-03 2006-08-31 Mediaset generation system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/346,818 Continuation-In-Part US7734569B2 (en) 2005-02-03 2006-02-03 Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/432,637 Division US8583671B2 (en) 2006-02-03 2009-04-29 Mediaset generation system

Publications (1)

Publication Number Publication Date
US20070244880A1 true US20070244880A1 (en) 2007-10-18

Family

ID=46326004

Family Applications (2)

Application Number Title Priority Date Filing Date
US11/513,495 Abandoned US20070244880A1 (en) 2006-02-03 2006-08-31 Mediaset generation system
US12/432,637 Active US8583671B2 (en) 2006-02-03 2009-04-29 Mediaset generation system

Family Applications After (1)

Application Number Title Priority Date Filing Date
US12/432,637 Active US8583671B2 (en) 2006-02-03 2009-04-29 Mediaset generation system

Country Status (1)

Country Link
US (2) US20070244880A1 (en)

Cited By (113)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060173910A1 (en) * 2005-02-01 2006-08-03 Mclaughlin Matthew R Dynamic identification of a new set of media items responsive to an input mediaset
US20060184984A1 (en) * 2005-01-05 2006-08-17 Digital Networks North America, Inc. Method and system for intelligent indexing of recordable event identifiers
US20070174301A1 (en) * 2006-01-18 2007-07-26 Samsung Electronics Co., Ltd. Method and apparatus for storing and restoring state information of remote user interface
US20080059422A1 (en) * 2006-09-01 2008-03-06 Nokia Corporation Media recommendation system and method
US20080104624A1 (en) * 2006-11-01 2008-05-01 Motorola, Inc. Method and system for selection and scheduling of content outliers
US20080141132A1 (en) * 2006-11-21 2008-06-12 Tsai Daniel E Ad-hoc web content player
US20080184142A1 (en) * 2006-07-21 2008-07-31 Sony Corporation Content reproduction apparatus, recording medium, content reproduction method and content reproduction program
US20080319833A1 (en) * 2006-07-11 2008-12-25 Concert Technology Corporation P2p real time media recommendations
US20090070185A1 (en) * 2007-01-17 2009-03-12 Concert Technology Corporation System and method for recommending a digital media subscription service
US20090259621A1 (en) * 2008-04-11 2009-10-15 Concert Technology Corporation Providing expected desirability information prior to sending a recommendation
US20090265416A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Aggregating media collections between participants of a sharing network utilizing bridging
US20090265418A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Pruning an aggregate media collection
US20090265417A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Aggregating media collections to provide a primary list and sorted sub-lists
US20090265426A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US20090300008A1 (en) * 2008-05-31 2009-12-03 Strands, Inc. Adaptive recommender technology
US20090327349A1 (en) * 2008-06-20 2009-12-31 Sony Corporation Information processing apparatus, information processing method and information processing program
US20100037752A1 (en) * 2008-08-13 2010-02-18 Emil Hansson Music player connection system for enhanced playlist selection
US20100057928A1 (en) * 2008-08-29 2010-03-04 Adobe Systems Incorporated Dynamically Altering Playlists
US7680959B2 (en) 2006-07-11 2010-03-16 Napo Enterprises, Llc P2P network for providing real time media recommendations
US20100070490A1 (en) * 2008-09-17 2010-03-18 Eloy Technology, Llc System and method for enhanced smart playlists with aggregated media collections
US20100076982A1 (en) * 2008-09-08 2010-03-25 Apple Inc. System and method for playlist generation based on similarity data
US20100082135A1 (en) * 2008-09-29 2010-04-01 Concert Technology Corporation Activity indicators in a media sharing system
US20100094833A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Caching and synching process for a media sharing system
US20100094834A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Bridging in a media sharing system
US20100094934A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Source indicators for elements of an aggregate media collection in a media sharing system
US20100114979A1 (en) * 2008-10-28 2010-05-06 Concert Technology Corporation System and method for correlating similar playlists in a media sharing network
US20100138860A1 (en) * 2005-01-05 2010-06-03 The Directv Group, Inc. Method and system for displaying a series of recordable events
US7743009B2 (en) 2006-02-10 2010-06-22 Strands, Inc. System and methods for prioritizing mobile media player files
WO2010078060A1 (en) * 2008-12-31 2010-07-08 Strands, Inc. Systems and methods for making recommendations using model-based collaborative filtering with user communities and items collections
US20100228740A1 (en) * 2009-03-09 2010-09-09 Apple Inc. Community playlist management
US7797321B2 (en) 2005-02-04 2010-09-14 Strands, Inc. System for browsing through a music catalog using correlation metrics of a knowledge base of mediasets
US20100268821A1 (en) * 2009-04-16 2010-10-21 Microsoft Corporation Sequenced transmission of digital content items
US20100284671A1 (en) * 2005-01-05 2010-11-11 The Directv Group, Inc. Method and system for reconfiguring a selection system based on layers of categories descriptive of recordable events
US7840570B2 (en) 2005-04-22 2010-11-23 Strands, Inc. System and method for acquiring and adding data on the playing of elements or multimedia files
US7865522B2 (en) 2007-11-07 2011-01-04 Napo Enterprises, Llc System and method for hyping media recommendations in a media recommendation system
US7877387B2 (en) 2005-09-30 2011-01-25 Strands, Inc. Systems and methods for promotional media item selection and promotional program unit generation
US20110081967A1 (en) * 2009-10-05 2011-04-07 Microsoft Corporation Interactive media social game
US7962505B2 (en) 2005-12-19 2011-06-14 Strands, Inc. User to user recommender
WO2011100029A1 (en) 2010-02-12 2011-08-18 Exxonmobil Oil Corporation Coated polymeric film
US20110270774A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Group Recommendations in Social Networks
US8060525B2 (en) 2007-12-21 2011-11-15 Napo Enterprises, Llc Method and system for generating media recommendations in a distributed environment based on tagging play history information with location information
US8059646B2 (en) 2006-07-11 2011-11-15 Napo Enterprises, Llc System and method for identifying music content in a P2P real time recommendation network
US8090606B2 (en) 2006-08-08 2012-01-03 Napo Enterprises, Llc Embedded media recommendations
US8112720B2 (en) 2007-04-05 2012-02-07 Napo Enterprises, Llc System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items
US8117193B2 (en) 2007-12-21 2012-02-14 Lemi Technology, Llc Tunersphere
US20120117146A1 (en) * 2010-09-29 2012-05-10 Eloy Technology, Llc Method and system for aggregating music in the cloud
US8200602B2 (en) 2009-02-02 2012-06-12 Napo Enterprises, Llc System and method for creating thematic listening experiences in a networked peer media recommendation environment
US8285595B2 (en) 2006-03-29 2012-10-09 Napo Enterprises, Llc System and method for refining media recommendations
US8285776B2 (en) 2007-06-01 2012-10-09 Napo Enterprises, Llc System and method for processing a received media item recommendation message comprising recommender presence information
US8312017B2 (en) 2005-02-03 2012-11-13 Apple Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
US20120290648A1 (en) * 2011-05-09 2012-11-15 Sharkey Jeffrey A Dynamic Playlist for Mobile Computing Device
US20120290653A1 (en) * 2011-05-09 2012-11-15 Google, Inc. Dynamic playlist for mobile computing device
US8327266B2 (en) 2006-07-11 2012-12-04 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
US8332406B2 (en) 2008-10-02 2012-12-11 Apple Inc. Real-time visualization of user consumption of media items
US20130018897A1 (en) * 2008-09-19 2013-01-17 Yahoo! Inc. System and method for distributing media related to a location
US8396951B2 (en) 2007-12-20 2013-03-12 Napo Enterprises, Llc Method and system for populating a content repository for an internet radio service based on a recommendation network
EP2577484A2 (en) * 2010-05-27 2013-04-10 Roqbot, Inc. Methods and systems for analyzing user preferences to dynamically identify remotely located media for local access
CN103139801A (en) * 2011-12-05 2013-06-05 宏达国际电子股份有限公司 Location-aware application method and mobile device
US20130166698A1 (en) * 2007-01-30 2013-06-27 Sony Electronics Inc. System and method for effectively providing content to client devices in an electronic network
US8477786B2 (en) 2003-05-06 2013-07-02 Apple Inc. Messaging system and service
US8521611B2 (en) 2006-03-06 2013-08-27 Apple Inc. Article trading among members of a community
US8577874B2 (en) 2007-12-21 2013-11-05 Lemi Technology, Llc Tunersphere
US8583671B2 (en) 2006-02-03 2013-11-12 Apple Inc. Mediaset generation system
US8583791B2 (en) 2006-07-11 2013-11-12 Napo Enterprises, Llc Maintaining a minimum level of real time media recommendations in the absence of online friends
US8620699B2 (en) 2006-08-08 2013-12-31 Napo Enterprises, Llc Heavy influencer media recommendations
US8620919B2 (en) 2009-09-08 2013-12-31 Apple Inc. Media item clustering based on similarity data
US8639706B1 (en) * 2011-07-01 2014-01-28 Google Inc. Shared metadata for media files
US20140031961A1 (en) * 2012-07-26 2014-01-30 Google Inc. Method and System for Generating Location-Based Playlists
US20140052818A1 (en) * 2008-06-30 2014-02-20 Microsoft Corporation User status reports provided by an entertainment access system
US20140067828A1 (en) * 2012-08-31 2014-03-06 Ime Archibong Sharing Television and Video Programming Through Social Networking
US8671000B2 (en) 2007-04-24 2014-03-11 Apple Inc. Method and arrangement for providing content to multimedia devices
US8725740B2 (en) 2008-03-24 2014-05-13 Napo Enterprises, Llc Active playlist having dynamic media item groups
US20140172611A1 (en) * 2012-12-13 2014-06-19 Ebay Inc. Buyer-solicited offerings
US8805831B2 (en) 2006-07-11 2014-08-12 Napo Enterprises, Llc Scoring and replaying media items
US8839141B2 (en) 2007-06-01 2014-09-16 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
US8875198B1 (en) 2001-08-19 2014-10-28 The Directv Group, Inc. Network video unit
US8874655B2 (en) 2006-12-13 2014-10-28 Napo Enterprises, Llc Matching participants in a P2P recommendation network loosely coupled to a subscription service
US8880599B2 (en) 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US8892495B2 (en) 1991-12-23 2014-11-18 Blanding Hovenweep, Llc Adaptive pattern recognition based controller apparatus and method and human-interface therefore
US8903843B2 (en) 2006-06-21 2014-12-02 Napo Enterprises, Llc Historical media recommendation service
US8909667B2 (en) 2011-11-01 2014-12-09 Lemi Technology, Llc Systems, methods, and computer readable media for generating recommendations in a media recommendation system
US20150006541A1 (en) * 2013-06-28 2015-01-01 Harman International Industries, Inc. Intelligent multimedia system
US8983950B2 (en) 2007-06-01 2015-03-17 Napo Enterprises, Llc Method and system for sorting media items in a playlist on a media device
US8983905B2 (en) 2011-10-03 2015-03-17 Apple Inc. Merging playlists from multiple sources
US9037632B2 (en) 2007-06-01 2015-05-19 Napo Enterprises, Llc System and method of generating a media item recommendation message with recommender presence information
US9060034B2 (en) 2007-11-09 2015-06-16 Napo Enterprises, Llc System and method of filtering recommenders in a media item recommendation system
CN104867510A (en) * 2014-02-26 2015-08-26 船井电机株式会社 Reproducing device, external device, and reproducing method of content
US9164993B2 (en) 2007-06-01 2015-10-20 Napo Enterprises, Llc System and method for propagating a media item recommendation message comprising recommender presence information
US9191229B2 (en) 2009-02-02 2015-11-17 Eloy Technology, Llc Remote participation in a Local Area Network (LAN) based media aggregation network
US9224150B2 (en) 2007-12-18 2015-12-29 Napo Enterprises, Llc Identifying highly valued recommendations of users in a media recommendation network
US9224427B2 (en) 2007-04-02 2015-12-29 Napo Enterprises LLC Rating media item recommendations using recommendation paths and/or media item usage
US9258175B1 (en) * 2010-05-28 2016-02-09 The Directv Group, Inc. Method and system for sharing playlists for content stored within a network
WO2016038507A1 (en) * 2014-09-10 2016-03-17 Telefonaktiebolaget L M Ericsson (Publ) Multi-person and multi-device content personalization
US9317185B2 (en) 2006-02-10 2016-04-19 Apple Inc. Dynamic interactive entertainment venue
US9380355B2 (en) 2009-02-05 2016-06-28 Digimarc Corporation Second screens and widgets
US9535563B2 (en) 1999-02-01 2017-01-03 Blanding Hovenweep, Llc Internet appliance system and method
US9602862B2 (en) 2000-04-16 2017-03-21 The Directv Group, Inc. Accessing programs using networked digital video recording devices
US20170134807A1 (en) * 2014-02-13 2017-05-11 Piksel, Inc. Crowd based content delivery
US9734507B2 (en) 2007-12-20 2017-08-15 Napo Enterprise, Llc Method and system for simulating recommendations in a social network for an offline user
US9736224B1 (en) * 2012-03-29 2017-08-15 Google Inc. Playlist analytics
US20170244770A1 (en) * 2016-02-19 2017-08-24 Spotify Ab System and method for client-initiated playlist shuffle in a media content environment
US20170242861A1 (en) * 2015-01-23 2017-08-24 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Music Recommendation Method and Apparatus
US20170300568A1 (en) * 2014-03-31 2017-10-19 Paypal, Inc. Dynamic jukebox
US10212204B2 (en) * 2016-04-19 2019-02-19 Ringcentral, Inc. Systems and methods for improving media data communications over a network
US10419556B2 (en) 2012-08-11 2019-09-17 Federico Fraccaroli Method, system and apparatus for interacting with a digital work that is performed in a predetermined location
US10491646B2 (en) * 2012-02-29 2019-11-26 Sonafire, Inc. Mechanism for facilitating user-controlled features relating to media content in multiple online media communities and networks
US20200159744A1 (en) * 2013-03-18 2020-05-21 Spotify Ab Cross media recommendation
US10909172B2 (en) * 2012-04-02 2021-02-02 Google Llc Adaptive recommendations of user-generated mediasets
US10936653B2 (en) 2017-06-02 2021-03-02 Apple Inc. Automatically predicting relevant contexts for media items
US10963539B2 (en) 2014-09-10 2021-03-30 Mk Systems Usa Inc. Interactive web application editor
US11184448B2 (en) 2012-08-11 2021-11-23 Federico Fraccaroli Method, system and apparatus for interacting with a digital work
US11210303B2 (en) 2019-10-24 2021-12-28 Spotify Ab Media content playback for a group of users
US20220272502A1 (en) * 2019-07-11 2022-08-25 Sony Group Corporation Information processing system, information processing method, and recording medium

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010011637A1 (en) * 2008-07-21 2010-01-28 Strands, Inc Ambient collage display of digital media content
US8250120B2 (en) * 2009-02-24 2012-08-21 GM Global Technology Operations LLC Methods and systems for merging media files from multiple media devices
US20130297698A1 (en) * 2012-05-07 2013-11-07 Nokia Corporation Method and Apparatus for Utilizing Context and Profile Information in Content Searching and Recommendation
US20140067935A1 (en) * 2012-08-31 2014-03-06 Philip Hewinson Movie finding
US10476923B2 (en) * 2013-04-05 2019-11-12 Arris Enterprises Llc Filtering content for adaptive streaming
US9756549B2 (en) 2014-03-14 2017-09-05 goTenna Inc. System and method for digital communication between computing devices
US11481424B2 (en) * 2014-05-16 2022-10-25 RCRDCLUB Corporation Systems and methods of media selection based on criteria thresholds
US10289733B2 (en) * 2014-12-22 2019-05-14 Rovi Guides, Inc. Systems and methods for filtering techniques using metadata and usage data analysis
US20160232451A1 (en) * 2015-02-09 2016-08-11 Velocee Ltd. Systems and methods for managing audio content
US9891880B2 (en) 2015-03-31 2018-02-13 Sonos, Inc. Information display regarding playback queue subscriptions
US10200456B2 (en) 2015-06-03 2019-02-05 International Business Machines Corporation Media suggestions based on presence
US10516906B2 (en) 2015-09-18 2019-12-24 Spotify Ab Systems, methods, and computer products for recommending media suitable for a designated style of use
US9798823B2 (en) 2015-11-17 2017-10-24 Spotify Ab System, methods and computer products for determining affinity to a content creator
US10515292B2 (en) * 2016-06-15 2019-12-24 Massachusetts Institute Of Technology Joint acoustic and visual processing
US10944669B1 (en) 2018-02-09 2021-03-09 GoTenna, Inc. System and method for efficient network-wide broadcast in a multi-hop wireless network using packet echos
US11082324B2 (en) 2018-07-27 2021-08-03 goTenna Inc. Vine: zero-control routing using data packet inspection for wireless mesh networks
US11082742B2 (en) 2019-02-15 2021-08-03 Spotify Ab Methods and systems for providing personalized content based on shared listening sessions
WO2020185707A1 (en) 2019-03-08 2020-09-17 goTenna Inc. Method for utilization-based traffic throttling in a wireless mesh network
US11556596B2 (en) * 2019-12-31 2023-01-17 Spotify Ab Systems and methods for determining descriptors for media content items
US11281710B2 (en) 2020-03-20 2022-03-22 Spotify Ab Systems and methods for selecting images for a media item
US11283846B2 (en) 2020-05-06 2022-03-22 Spotify Ab Systems and methods for joining a shared listening session
US11503373B2 (en) 2020-06-16 2022-11-15 Spotify Ab Methods and systems for interactive queuing for shared listening sessions
US11197068B1 (en) 2020-06-16 2021-12-07 Spotify Ab Methods and systems for interactive queuing for shared listening sessions based on user satisfaction

Citations (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355302A (en) * 1990-06-15 1994-10-11 Arachnid, Inc. System for managing a plurality of computer jukeboxes
US5375235A (en) * 1991-11-05 1994-12-20 Northern Telecom Limited Method of indexing keywords for searching in a database recorded on an information recording medium
US5464946A (en) * 1993-02-11 1995-11-07 Multimedia Systems Corporation System and apparatus for interactive multimedia entertainment
US5483278A (en) * 1992-05-27 1996-01-09 Philips Electronics North America Corporation System and method for finding a movie of interest in a large movie database
US5583763A (en) * 1993-09-09 1996-12-10 Mni Interactive Method and apparatus for recommending selections based on preferences in a multi-user system
US5724521A (en) * 1994-11-03 1998-03-03 Intel Corporation Method and apparatus for providing electronic advertisements to end users in a consumer best-fit pricing manner
US5754939A (en) * 1994-11-29 1998-05-19 Herz; Frederick S. M. System for generation of user profiles for a system for customized electronic identification of desirable objects
US5890152A (en) * 1996-09-09 1999-03-30 Seymour Alvin Rapaport Personal feedback browser for obtaining media files
US5918014A (en) * 1995-12-27 1999-06-29 Athenium, L.L.C. Automated collaborative filtering in world wide web advertising
US5950176A (en) * 1996-03-25 1999-09-07 Hsx, Inc. Computer-implemented securities trading system with a virtual specialist function
US6000044A (en) * 1997-11-26 1999-12-07 Digital Equipment Corporation Apparatus for randomly sampling instructions in a processor pipeline
US6047311A (en) * 1996-07-17 2000-04-04 Matsushita Electric Industrial Co., Ltd. Agent communication system with dynamic change of declaratory script destination and behavior
US6112186A (en) * 1995-06-30 2000-08-29 Microsoft Corporation Distributed system for facilitating exchange of user information and opinion using automated collaborative filtering
US6134532A (en) * 1997-11-14 2000-10-17 Aptex Software, Inc. System and method for optimal adaptive matching of users to most relevant entity and information in real-time
US20010056434A1 (en) * 2000-04-27 2001-12-27 Smartdisk Corporation Systems, methods and computer program products for managing multimedia content
US6345288B1 (en) * 1989-08-31 2002-02-05 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
US6347313B1 (en) * 1999-03-01 2002-02-12 Hewlett-Packard Company Information embedding based on user relevance feedback for object retrieval
US6346951B1 (en) * 1996-09-25 2002-02-12 Touchtunes Music Corporation Process for selecting a recording on a digital audiovisual reproduction system, for implementing the process
US6349339B1 (en) * 1998-03-02 2002-02-19 Clickradio, Inc. System and method for utilizing data packets
US20020059094A1 (en) * 2000-04-21 2002-05-16 Hosea Devin F. Method and system for profiling iTV users and for providing selective content delivery
US20020082901A1 (en) * 2000-05-03 2002-06-27 Dunning Ted E. Relationship discovery engine
US6430539B1 (en) * 1999-05-06 2002-08-06 Hnc Software Predictive modeling of consumer financial behavior
US6434621B1 (en) * 1999-03-31 2002-08-13 Hannaway & Associates Apparatus and method of using the same for internet and intranet broadcast channel creation and management
US6438579B1 (en) * 1999-07-16 2002-08-20 Agent Arts, Inc. Automated content and collaboration-based system and methods for determining and providing content recommendations
US20020152117A1 (en) * 2001-04-12 2002-10-17 Mike Cristofalo System and method for targeting object oriented audio and video content to users
US6487539B1 (en) * 1999-08-06 2002-11-26 International Business Machines Corporation Semantic based collaborative filtering
US20020178223A1 (en) * 2001-05-23 2002-11-28 Arthur A. Bushkin System and method for disseminating knowledge over a global computer network
US20020194215A1 (en) * 2000-10-31 2002-12-19 Christian Cantrell Advertising application services system and method
US20030022953A1 (en) * 2000-10-10 2003-01-30 Shipley Company, L.L.C. Antireflective porogens
US20030033321A1 (en) * 2001-07-20 2003-02-13 Audible Magic, Inc. Method and apparatus for identifying new media content
US6526411B1 (en) * 1999-11-15 2003-02-25 Sean Ward System and method for creating dynamic playlists
US6532469B1 (en) * 1999-09-20 2003-03-11 Clearforest Corp. Determining trends using text mining
US20030055689A1 (en) * 2000-06-09 2003-03-20 David Block Automated internet based interactive travel planning and management system
US6577716B1 (en) * 1998-12-23 2003-06-10 David D. Minter Internet radio system with selective replacement capability
US20030120630A1 (en) * 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
US6587127B1 (en) * 1997-11-25 2003-07-01 Motorola, Inc. Content player method and server with user profile
US6615208B1 (en) * 2000-09-01 2003-09-02 Telcordia Technologies, Inc. Automatic recommendation of products using latent semantic indexing of content
US6647371B2 (en) * 2001-02-13 2003-11-11 Honda Giken Kogyo Kabushiki Kaisha Method for predicting a demand for repair parts
US20030212710A1 (en) * 2002-03-27 2003-11-13 Michael J. Guy System for tracking activity and delivery of advertising over a file network
US20040003392A1 (en) * 2002-06-26 2004-01-01 Koninklijke Philips Electronics N.V. Method and apparatus for finding and updating user group preferences in an entertainment system
US6687696B2 (en) * 2000-07-26 2004-02-03 Recommind Inc. System and method for personalized search, information filtering, and for generating recommendations utilizing statistical latent class models
US6690918B2 (en) * 2001-01-05 2004-02-10 Soundstarts, Inc. Networking by matching profile information over a data packet-network and a local area network
US20040068552A1 (en) * 2001-12-26 2004-04-08 David Kotz Methods and apparatus for personalized content presentation
US20040070538A1 (en) * 2001-02-23 2004-04-15 Ryo Horie Antenna incorporating filter
US20040073924A1 (en) * 2002-09-30 2004-04-15 Ramesh Pendakur Broadcast scheduling and content selection based upon aggregated user profile information
US6751574B2 (en) * 2001-02-13 2004-06-15 Honda Giken Kogyo Kabushiki Kaisha System for predicting a demand for repair parts
US20040128286A1 (en) * 2002-11-18 2004-07-01 Pioneer Corporation Music searching method, music searching device, and music searching program
US20040139064A1 (en) * 2001-03-16 2004-07-15 Louis Chevallier Method for navigation by computation of groups, receiver for carrying out said method and graphical interface for presenting said method
US6785688B2 (en) * 2000-11-21 2004-08-31 America Online, Inc. Internet streaming media workflow architecture
US20040247715A1 (en) * 2003-06-05 2004-12-09 G & E Herbal Biotechnology Co., Ltd. Water soluble extract from plant of solanum genus and the preparation process thereof, and pharmaceutical composition containing the water soluble extract
US20040263337A1 (en) * 2003-06-30 2004-12-30 Toshiro Terauchi Control apparatus and control method
US20050021470A1 (en) * 2002-06-25 2005-01-27 Bose Corporation Intelligent music track selection
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US20050075908A1 (en) * 1998-11-06 2005-04-07 Dian Stevens Personal business service system and method
US20050091146A1 (en) * 2003-10-23 2005-04-28 Robert Levinson System and method for predicting stock prices
US20050102610A1 (en) * 2003-11-06 2005-05-12 Wei Jie Visual electronic library
US20050114357A1 (en) * 2003-11-20 2005-05-26 Rathinavelu Chengalvarayan Collaborative media indexing system and method
US20050141709A1 (en) * 1999-01-22 2005-06-30 Bratton Timothy R. Digital audio and video playback with performance complement testing
US6914891B2 (en) * 2001-01-10 2005-07-05 Sk Teletech Co., Ltd. Method of remote management of mobile communication terminal data
US20050154608A1 (en) * 2003-10-21 2005-07-14 Fair Share Digital Media Distribution Digital media distribution and trading system used via a computer network
US6931454B2 (en) * 2000-12-29 2005-08-16 Intel Corporation Method and apparatus for adaptive synchronization of network devices
US20050193054A1 (en) * 2004-02-12 2005-09-01 Wilson Eric D. Multi-user social interaction network
US6941324B2 (en) * 2002-03-21 2005-09-06 Microsoft Corporation Methods and systems for processing playlists
US20050195696A1 (en) * 2004-02-03 2005-09-08 Sony Corporation Information processing apparatus and method, and program
US20050203807A1 (en) * 1999-04-09 2005-09-15 Bezos Jeffrey P. Computer services for identifying and exposing associations between user communities and items in a catalog
US6947922B1 (en) * 2000-06-16 2005-09-20 Xerox Corporation Recommender system and method for generating implicit ratings based on user interactions with handheld devices
US20050210101A1 (en) * 1999-03-04 2005-09-22 Universal Electronics Inc. System and method for providing content, management, and interactivity for client devices
US6950804B2 (en) * 2001-02-26 2005-09-27 Pika Media Systems and methods for distributing targeted multimedia content and advertising
US20050216855A1 (en) * 2004-03-23 2005-09-29 Nokia Corporation System and method for music synchronization in a mobile device
US20050223039A1 (en) * 2004-04-05 2005-10-06 Samsung Electronics Co., Ltd. Method and apparatus for playing multimedia play list and storage medium therefor
US20050235811A1 (en) * 2004-04-20 2005-10-27 Dukane Michael K Systems for and methods of selection, characterization and automated sequencing of media content
US20050256867A1 (en) * 2004-03-15 2005-11-17 Yahoo! Inc. Search systems and methods with integration of aggregate user annotations
US20050276570A1 (en) * 2004-06-15 2005-12-15 Reed Ogden C Jr Systems, processes and apparatus for creating, processing and interacting with audiobooks and other media
US6987221B2 (en) * 2002-05-30 2006-01-17 Microsoft Corporation Auto playlist generation with multiple seed songs
US20060015904A1 (en) * 2000-09-08 2006-01-19 Dwight Marcus Method and apparatus for creation, distribution, assembly and verification of media
US6990497B2 (en) * 2001-06-26 2006-01-24 Microsoft Corporation Dynamic streaming media management
US20060018208A1 (en) * 2002-09-16 2006-01-26 Guy Nathan Digital downloading jukebox system with central and local music servers
US20060018209A1 (en) * 2004-07-22 2006-01-26 Niko Drakoulis Apparatus and method for interactive content requests in a networked computer jukebox
US20060020062A1 (en) * 2004-07-08 2006-01-26 Bloom Paul D Epoxidized esters of vegetable oil fatty acids as reactive diluents
US6993532B1 (en) * 2001-05-30 2006-01-31 Microsoft Corporation Auto playlist generator
US20060026263A1 (en) * 2002-06-06 2006-02-02 Microsoft Corporation Managing stored data on a computer network
US20060053077A1 (en) * 1999-12-09 2006-03-09 International Business Machines Corporation Digital content distribution using web broadcasting services
US20060062094A1 (en) * 2002-09-16 2006-03-23 Guy Nathan Digital downloading jukebox system with user-tailored music management, communications, and other tools
US20060067296A1 (en) * 2004-09-03 2006-03-30 University Of Washington Predictive tuning of unscheduled streaming digital content
US7021836B2 (en) * 2000-12-26 2006-04-04 Emcore Corporation Attenuator and conditioner
US20060074750A1 (en) * 2004-10-01 2006-04-06 E-Cast, Inc. Prioritized content download for an entertainment device
US20060080356A1 (en) * 2004-10-13 2006-04-13 Microsoft Corporation System and method for inferring similarities between media objects
US20060095516A1 (en) * 2004-11-01 2006-05-04 Wijeratne Viranga L Local area preference determination system and method
US20060100978A1 (en) * 2004-10-25 2006-05-11 Apple Computer, Inc. Multiple media type synchronization between host computer and media device
US7051352B1 (en) * 2000-02-04 2006-05-23 Koninklijke Philips Electronics N.V. Adaptive TV program recommender
US20060136344A1 (en) * 2004-12-17 2006-06-22 Netsuite, Inc. Web-based business application with streamlined integration of upsell features
US20060165571A1 (en) * 2005-01-24 2006-07-27 Seon Kim S Nipple overcap having sterilizer
US7546254B2 (en) * 1999-08-03 2009-06-09 Bednarek Michael D System and method for promoting commerce, including sales agent assisted commerce, in a networked economy

Family Cites Families (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4996642A (en) 1987-10-01 1991-02-26 Neonics, Inc. System and method for recommending items
US5765144A (en) 1996-06-24 1998-06-09 Merrill Lynch & Co., Inc. System for selecting liability products and preparing applications therefor
US5926624A (en) 1996-09-12 1999-07-20 Audible, Inc. Digital information library and delivery system with logic for generating files targeted to the playback device
JP3917616B2 (en) 1997-07-07 2007-05-23 株式会社東芝 Multi-screen display method and multi-screen display device
US6317722B1 (en) 1998-09-18 2001-11-13 Amazon.Com, Inc. Use of electronic shopping carts to generate personal recommendations
US7082407B1 (en) 1999-04-09 2006-07-25 Amazon.Com, Inc. Purchase notification service for assisting users in selecting items from an electronic catalog
US6538665B2 (en) 1999-04-15 2003-03-25 Apple Computer, Inc. User interface for presenting media information
US20050038819A1 (en) 2000-04-21 2005-02-17 Hicken Wendell T. Music Recommendation system and method
US7181438B1 (en) 1999-07-21 2007-02-20 Alberti Anemometer, Llc Database access system
US7072846B1 (en) 1999-11-16 2006-07-04 Emergent Music Llc Clusters for rapid artist-audience matching
US6727914B1 (en) 1999-12-17 2004-04-27 Koninklijke Philips Electronics N.V. Method and apparatus for recommending television programming using decision trees
US20010007099A1 (en) 1999-12-30 2001-07-05 Diogo Rau Automated single-point shopping cart system and method
WO2001052173A1 (en) 2000-01-13 2001-07-19 Erinmedia, Inc. Privacy compliant multiple dataset correlation system
US20020002899A1 (en) 2000-03-22 2002-01-10 Gjerdingen Robert O. System for content based music searching
US7206775B2 (en) 2000-07-06 2007-04-17 Microsoft Corporation System and methods for the automatic transmission of new, high affinity media
US6748395B1 (en) 2000-07-14 2004-06-08 Microsoft Corporation System and method for dynamic playlist of media
US6704576B1 (en) * 2000-09-27 2004-03-09 At&T Corp. Method and system for communicating multimedia content in a unicast, multicast, simulcast or broadcast environment
US7392212B2 (en) 2000-09-28 2008-06-24 Jpmorgan Chase Bank, N.A. User-interactive financial vehicle performance prediction, trading and training system and methods
JP2002108351A (en) 2000-09-28 2002-04-10 Casio Comput Co Ltd Device and method for music data distribution and computer-readable recording medium stored with music data distributing program
JP2002108943A (en) 2000-10-02 2002-04-12 Ryuichiro Iijima Taste information collector
JP2002320203A (en) 2001-04-19 2002-10-31 Matsushita Electric Ind Co Ltd Video signal recorder and video signal reproducer
US6933433B1 (en) * 2000-11-08 2005-08-23 Viacom, Inc. Method for producing playlists for personalized music stations and for transmitting songs on such playlists
US20020092022A1 (en) 2000-11-16 2002-07-11 Dudkicwicz Gil Gavriel System and method for using programming event timing data in a recording device
US7139982B2 (en) 2000-12-21 2006-11-21 Xerox Corporation Navigation methods, systems, and computer program products for virtual three-dimensional books
EP1231788A1 (en) 2001-02-12 2002-08-14 Koninklijke Philips Electronics N.V. Arrangement for distributing content, profiling center, receiving device and method
US8473568B2 (en) 2001-03-26 2013-06-25 Microsoft Corporation Methods and systems for processing media content
DE10119067A1 (en) 2001-04-18 2002-10-31 Bosch Gmbh Robert Method for playing multimedia data with an entertainment device
US7574513B2 (en) 2001-04-30 2009-08-11 Yahoo! Inc. Controllable track-skipping
US20060091203A1 (en) 2001-05-04 2006-05-04 Anton Bakker Systems and methods for the identification and presenting of information
US20060206478A1 (en) 2001-05-16 2006-09-14 Pandora Media, Inc. Playlist generating methods
US7076478B2 (en) 2001-06-26 2006-07-11 Microsoft Corporation Wrapper playlists on streaming media services
US7113999B2 (en) * 2001-08-14 2006-09-26 International Business Machines Corporation Method, computer readable media and apparatus for the selection and rendering of audio files in a networked environment
KR100718613B1 (en) 2001-10-22 2007-05-16 애플 인크. Intelligent synchronization for a media player
US7457862B2 (en) 2001-10-22 2008-11-25 Avaya, Inc. Real time control protocol session matching
US7043479B2 (en) 2001-11-16 2006-05-09 Sigmatel, Inc. Remote-directed management of media content
KR20040065260A (en) 2001-12-13 2004-07-21 코닌클리케 필립스 일렉트로닉스 엔.브이. Recommending media content on a media system
US7280974B2 (en) 2001-12-21 2007-10-09 International Business Machines Corporation Method and system for selecting potential purchasers using purchase history
JP3878016B2 (en) * 2001-12-28 2007-02-07 株式会社荏原製作所 Substrate polishing equipment
JP2003255958A (en) 2002-02-28 2003-09-10 Toshiba Corp Music use state and music information providing method and recording medium
US7096234B2 (en) 2002-03-21 2006-08-22 Microsoft Corporation Methods and systems for providing playlists
US7220910B2 (en) 2002-03-21 2007-05-22 Microsoft Corporation Methods and systems for per persona processing media content-associated metadata
US9412417B2 (en) 2002-04-05 2016-08-09 Apple Inc. Persistent group of media items for a media device
US7797446B2 (en) 2002-07-16 2010-09-14 Apple Inc. Method and system for updating playlists
US7174126B2 (en) 2002-05-03 2007-02-06 Time Warner Interactive Video Group Inc. Technique for effectively accessing programming listing information in an entertainment delivery system
AU2003266002A1 (en) * 2002-05-06 2003-11-17 Benjamin M. Goldberg Localized audio networks and associated digital accessories
US20040002993A1 (en) 2002-06-26 2004-01-01 Microsoft Corporation User feedback processing of metadata associated with digital media files
US7478323B2 (en) 2004-10-25 2009-01-13 Apple Inc. Automated creation of media asset illustration collage
US7136866B2 (en) 2002-08-15 2006-11-14 Microsoft Corporation Media identifier registry
US8053659B2 (en) 2002-10-03 2011-11-08 Polyphonic Human Media Interface, S.L. Music intelligence universe server
US8667525B2 (en) 2002-12-13 2014-03-04 Sony Corporation Targeted advertisement selection from a digital stream
US7415181B2 (en) 2005-07-29 2008-08-19 Corning Cable Systems Llc Fiber optic cables and assemblies for fiber to the subscriber applications
JP2004221999A (en) 2003-01-15 2004-08-05 Canon Inc Image processing method
US20040148424A1 (en) 2003-01-24 2004-07-29 Aaron Berkson Digital media distribution system with expiring advertisements
US20040158860A1 (en) 2003-02-07 2004-08-12 Microsoft Corporation Digital music jukebox
US20040162738A1 (en) 2003-02-19 2004-08-19 Sanders Susan O. Internet directory system
US7013238B1 (en) * 2003-02-24 2006-03-14 Microsoft Corporation System for delivering recommendations
EP1611580B1 (en) * 2003-03-27 2012-01-11 Koninklijke Philips Electronics N.V. Playlist synchronization
US20040194128A1 (en) 2003-03-28 2004-09-30 Eastman Kodak Company Method for providing digital cinema content based upon audience metrics
US7120619B2 (en) 2003-04-22 2006-10-10 Microsoft Corporation Relationship view
US7831199B2 (en) * 2006-01-03 2010-11-09 Apple Inc. Media data exchange, transfer or delivery for portable electronic devices
US7082573B2 (en) 2003-07-30 2006-07-25 America Online, Inc. Method and system for managing digital assets
US20050060350A1 (en) 2003-09-15 2005-03-17 Baum Zachariah Journey System and method for recommendation of media segments
US20050222989A1 (en) 2003-09-30 2005-10-06 Taher Haveliwala Results based personalization of advertisements in a search engine
US20060008256A1 (en) * 2003-10-01 2006-01-12 Khedouri Robert K Audio visual player apparatus and system and method of content distribution using the same
JP3712071B2 (en) 2003-10-02 2005-11-02 ソニー株式会社 File management apparatus, file management method, file management method program, and recording medium recording file management method program
US20050108754A1 (en) 2003-11-19 2005-05-19 Serenade Systems Personalized content application
US7801758B2 (en) 2003-12-12 2010-09-21 The Pnc Financial Services Group, Inc. System and method for conducting an optimized customer identification program
EP1548741A1 (en) 2003-12-24 2005-06-29 Bose Corporation Intelligent music track selection
US20050160458A1 (en) 2004-01-21 2005-07-21 United Video Properties, Inc. Interactive television system with custom video-on-demand menus based on personal profiles
WO2005072405A2 (en) 2004-01-27 2005-08-11 Transpose, Llc Enabling recommendations and community by massively-distributed nearest-neighbor searching
US20050210009A1 (en) 2004-03-18 2005-09-22 Bao Tran Systems and methods for intellectual property management
US9335884B2 (en) 2004-03-25 2016-05-10 Microsoft Technology Licensing, Llc Wave lens systems and methods for search results
CN1950908B (en) 2004-05-05 2012-04-25 皇家飞利浦电子股份有限公司 Methods and apparatus for selecting items from a collection of items
US20060005226A1 (en) 2004-05-17 2006-01-05 Lee Peter S System and method for synchronization of a portable media player to a user's profile
US7127143B2 (en) 2004-05-24 2006-10-24 Corning Cable Systems Llc Distribution cable assembly having overmolded mid-span access location
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
JP4583218B2 (en) 2004-07-05 2010-11-17 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, computer program, and system for evaluating target content
WO2006036814A2 (en) 2004-09-22 2006-04-06 Citibank, N.A. Systems and methods for offering credit line products
US7644077B2 (en) 2004-10-21 2010-01-05 Microsoft Corporation Methods, computer readable mediums and systems for linking related data from at least two data sources based upon a scoring algorithm
US7844498B2 (en) 2004-10-25 2010-11-30 Apple Inc. Online purchase of digital media bundles having interactive content
JP2008530632A (en) 2004-11-04 2008-08-07 ロカモダ, インコーポレイテッド System and method for interactive marketing
US7777125B2 (en) 2004-11-19 2010-08-17 Microsoft Corporation Constructing a table of music similarity vectors from a music similarity graph
US20060173916A1 (en) 2004-12-22 2006-08-03 Verbeck Sibley Timothy J R Method and system for automatically generating a personalized sequence of rich media
US20060143236A1 (en) 2004-12-29 2006-06-29 Bandwidth Productions Inc. Interactive music playlist sharing system and methods
US7490775B2 (en) * 2004-12-30 2009-02-17 Aol Llc, A Deleware Limited Liability Company Intelligent identification of multimedia content for synchronization
WO2006075032A1 (en) 2005-01-05 2006-07-20 Musicstrands, S.A.U. System and method for recommending multimedia elements
US7707603B2 (en) 2005-01-28 2010-04-27 Microsoft Corporation Digital media transfer based on user behavior
US7693887B2 (en) 2005-02-01 2010-04-06 Strands, Inc. Dynamic identification of a new set of media items responsive to an input mediaset
US7734569B2 (en) 2005-02-03 2010-06-08 Strands, Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
WO2006084269A2 (en) 2005-02-04 2006-08-10 Musicstrands, Inc. System for browsing through a music catalog using correlation metrics of a knowledge base of mediasets
US8180770B2 (en) * 2005-02-28 2012-05-15 Yahoo! Inc. System and method for creating a playlist
US7818350B2 (en) 2005-02-28 2010-10-19 Yahoo! Inc. System and method for creating a collaborative playlist
US7404576B2 (en) * 2005-04-01 2008-07-29 Nissan Technical Center North America, Inc. Pillar trim component
US20060253874A1 (en) 2005-04-01 2006-11-09 Vulcan Inc. Mobile interface for manipulating multimedia content
EP1926027A1 (en) 2005-04-22 2008-05-28 Strands Labs S.A. System and method for acquiring and aggregating data relating to the reproduction of multimedia files or elements
US8214264B2 (en) 2005-05-02 2012-07-03 Cbs Interactive, Inc. System and method for an electronic product advisor
US20060277098A1 (en) 2005-06-06 2006-12-07 Chung Tze D Media playing system and method for delivering multimedia content with up-to-date and targeted marketing messages over a communication network
US20060282311A1 (en) 2005-06-09 2006-12-14 Jianfeng Jiang Targeted advertisement network that integrates with store-shopping
US20060288367A1 (en) 2005-06-16 2006-12-21 Swix Scott R Systems, methods and products for tailoring and bundling content
US20070016507A1 (en) 2005-07-12 2007-01-18 Wally Tzara System for analysis and prediction of financial and statistical data
US7580932B2 (en) 2005-07-15 2009-08-25 Microsoft Corporation User interface for establishing a filtering engine
US20070043829A1 (en) 2005-08-17 2007-02-22 Robin Dua Method and system for accessing a storage or computing device via the Internet
WO2007086947A2 (en) 2005-09-23 2007-08-02 Tap It Fame Inc. Systems and methods for marketing and selling media
US20090070267A9 (en) 2005-09-30 2009-03-12 Musicstrands, Inc. User programmed media delivery service
US7877387B2 (en) 2005-09-30 2011-01-25 Strands, Inc. Systems and methods for promotional media item selection and promotional program unit generation
EP1949218A4 (en) 2005-10-04 2009-12-02 Strands Inc Methods and apparatus for visualizing a music library
US20070100690A1 (en) 2005-11-02 2007-05-03 Daniel Hopkins System and method for providing targeted advertisements in user requested multimedia content
US8341158B2 (en) 2005-11-21 2012-12-25 Sony Corporation User's preference prediction from collective rating data
US8131718B2 (en) 2005-12-13 2012-03-06 Muse Green Investments LLC Intelligent data retrieval system
BRPI0620084B1 (en) 2005-12-19 2018-11-21 Apple Inc method for identifying individual users in a defined user community, based on comparing the first user's profile with other user profiles, for a first community member, and method for measuring individual user similarity for a first user in a defined user community. users
US20070162546A1 (en) 2005-12-22 2007-07-12 Musicstrands, Inc. Sharing tags among individual user media libraries
US20070244880A1 (en) 2006-02-03 2007-10-18 Francisco Martin Mediaset generation system
WO2007095272A2 (en) 2006-02-10 2007-08-23 Strands, Inc. Systems and methods for prioritizing mobile media player files
BRPI0621315A2 (en) 2006-02-10 2011-12-06 Strands Inc dynamic interactive entertainment
US20070250429A1 (en) 2006-04-19 2007-10-25 Clinical Futures Llc Prediction markets for assessing clinical probabilities of success
US7774288B2 (en) 2006-05-16 2010-08-10 Sony Corporation Clustering and classification of multimedia data
US20070271286A1 (en) 2006-05-16 2007-11-22 Khemdut Purang Dimensionality reduction for content category data
US20080004948A1 (en) 2006-06-28 2008-01-03 Microsoft Corporation Auctioning for video and audio advertising
US20080004990A1 (en) 2006-06-28 2008-01-03 Microsoft Corporation Virtual spot market for advertisements
US20080027881A1 (en) 2006-07-07 2008-01-31 Stephan Kurt Jan Bisse Market trader training tool
US7680959B2 (en) 2006-07-11 2010-03-16 Napo Enterprises, Llc P2P network for providing real time media recommendations
US7529740B2 (en) 2006-08-14 2009-05-05 International Business Machines Corporation Method and apparatus for organizing data sources
US20080046317A1 (en) 2006-08-21 2008-02-21 The Procter & Gamble Company Systems and methods for predicting the efficacy of a marketing message
JP4910582B2 (en) 2006-09-12 2012-04-04 ソニー株式会社 Information processing apparatus and method, and program
EP2069965A1 (en) 2006-09-20 2009-06-17 Google, Inc. Digital audio file management
US7657493B2 (en) 2006-09-28 2010-02-02 Microsoft Corporation Recommendation system that identifies a valuable user action by mining data supplied by a plurality of users to find a correlation that suggests one or more actions for notification
US20080109378A1 (en) 2006-10-10 2008-05-08 Odiseas Papadimitriou Financial product frequent identification and comparision service
US7574422B2 (en) 2006-11-17 2009-08-11 Yahoo! Inc. Collaborative-filtering contextual model optimized for an objective function for recommending items
WO2008077074A2 (en) 2006-12-18 2008-06-26 Silvaris Corporation Determining and presenting product market prices
US8196166B2 (en) 2006-12-21 2012-06-05 Verizon Patent And Licensing Inc. Content hosting and advertising systems and methods
TWI338846B (en) 2006-12-22 2011-03-11 Univ Nat Pingtung Sci & Tech A method for grid-based data clustering
US7842876B2 (en) 2007-01-05 2010-11-30 Harman International Industries, Incorporated Multimedia object grouping, selection, and playback system
WO2008100908A2 (en) 2007-02-12 2008-08-21 Mirko Manfredi Method and system for providing financial services
US7681301B2 (en) 2007-03-07 2010-03-23 James Neil Rodgers RFID silicon antenna
US20080220855A1 (en) 2007-03-09 2008-09-11 Yahoo! Inc. System and method for permutation betting
US20090048957A1 (en) 2007-04-02 2009-02-19 Matthew Celano Method and system for financial counseling
US8073854B2 (en) 2007-04-10 2011-12-06 The Echo Nest Corporation Determining the similarity of music using cultural and acoustic information
US7826444B2 (en) 2007-04-13 2010-11-02 Wideorbit, Inc. Leader and follower broadcast stations
US7889724B2 (en) 2007-04-13 2011-02-15 Wideorbit, Inc. Multi-station media controller
US20090024504A1 (en) 2007-05-02 2009-01-22 Kevin Lerman System and method for forecasting fluctuations in future data and particularly for forecasting security prices by news analysis
US8566205B2 (en) 2007-07-18 2013-10-22 Yahoo! Inc. System and method of making markets for a finite subset of orders placed across continuous and countably infinite outcome spaces
US8229824B2 (en) 2007-09-13 2012-07-24 Microsoft Corporation Combined estimate contest and prediction market
US8341065B2 (en) 2007-09-13 2012-12-25 Microsoft Corporation Continuous betting interface to prediction market
US7880741B2 (en) 2007-09-13 2011-02-01 Microsoft Corporation User interface for expressing forecasting estimates
CA2605662A1 (en) 2007-09-28 2009-03-28 International Business Machines Corporation System and method for automated stock market operation
US7974889B2 (en) 2007-10-19 2011-07-05 Raimbeault Sean M Social networking interactive shopping system
US8375131B2 (en) 2007-12-21 2013-02-12 Yahoo! Inc. Media toolbar and aggregated/distributed media ecosystem
EP2288986A4 (en) 2008-04-28 2013-01-09 Strands Inc Method for providing personalized recommendations of financial products based on user data
US7853712B2 (en) 2008-09-29 2010-12-14 Eloy Technology, Llc Activity indicators in a media sharing system
US20100169328A1 (en) 2008-12-31 2010-07-01 Strands, Inc. Systems and methods for making recommendations using model-based collaborative filtering with user communities and items collections

Patent Citations (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345288B1 (en) * 1989-08-31 2002-02-05 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
US5355302A (en) * 1990-06-15 1994-10-11 Arachnid, Inc. System for managing a plurality of computer jukeboxes
US5375235A (en) * 1991-11-05 1994-12-20 Northern Telecom Limited Method of indexing keywords for searching in a database recorded on an information recording medium
US6381575B1 (en) * 1992-03-06 2002-04-30 Arachnid, Inc. Computer jukebox and computer jukebox management system
US5483278A (en) * 1992-05-27 1996-01-09 Philips Electronics North America Corporation System and method for finding a movie of interest in a large movie database
US5464946A (en) * 1993-02-11 1995-11-07 Multimedia Systems Corporation System and apparatus for interactive multimedia entertainment
US5583763A (en) * 1993-09-09 1996-12-10 Mni Interactive Method and apparatus for recommending selections based on preferences in a multi-user system
US5724521A (en) * 1994-11-03 1998-03-03 Intel Corporation Method and apparatus for providing electronic advertisements to end users in a consumer best-fit pricing manner
US5754939A (en) * 1994-11-29 1998-05-19 Herz; Frederick S. M. System for generation of user profiles for a system for customized electronic identification of desirable objects
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6112186A (en) * 1995-06-30 2000-08-29 Microsoft Corporation Distributed system for facilitating exchange of user information and opinion using automated collaborative filtering
US5918014A (en) * 1995-12-27 1999-06-29 Athenium, L.L.C. Automated collaborative filtering in world wide web advertising
US5950176A (en) * 1996-03-25 1999-09-07 Hsx, Inc. Computer-implemented securities trading system with a virtual specialist function
US6047311A (en) * 1996-07-17 2000-04-04 Matsushita Electric Industrial Co., Ltd. Agent communication system with dynamic change of declaratory script destination and behavior
US5890152A (en) * 1996-09-09 1999-03-30 Seymour Alvin Rapaport Personal feedback browser for obtaining media files
US6346951B1 (en) * 1996-09-25 2002-02-12 Touchtunes Music Corporation Process for selecting a recording on a digital audiovisual reproduction system, for implementing the process
US6134532A (en) * 1997-11-14 2000-10-17 Aptex Software, Inc. System and method for optimal adaptive matching of users to most relevant entity and information in real-time
US6587127B1 (en) * 1997-11-25 2003-07-01 Motorola, Inc. Content player method and server with user profile
US6000044A (en) * 1997-11-26 1999-12-07 Digital Equipment Corporation Apparatus for randomly sampling instructions in a processor pipeline
US6349339B1 (en) * 1998-03-02 2002-02-19 Clickradio, Inc. System and method for utilizing data packets
US20050075908A1 (en) * 1998-11-06 2005-04-07 Dian Stevens Personal business service system and method
US6577716B1 (en) * 1998-12-23 2003-06-10 David D. Minter Internet radio system with selective replacement capability
US20050141709A1 (en) * 1999-01-22 2005-06-30 Bratton Timothy R. Digital audio and video playback with performance complement testing
US7020637B2 (en) * 1999-01-22 2006-03-28 Timothy Robert Bratton Digital audio and video playback with performance complement testing
US6347313B1 (en) * 1999-03-01 2002-02-12 Hewlett-Packard Company Information embedding based on user relevance feedback for object retrieval
US20050210101A1 (en) * 1999-03-04 2005-09-22 Universal Electronics Inc. System and method for providing content, management, and interactivity for client devices
US6434621B1 (en) * 1999-03-31 2002-08-13 Hannaway & Associates Apparatus and method of using the same for internet and intranet broadcast channel creation and management
US20050203807A1 (en) * 1999-04-09 2005-09-15 Bezos Jeffrey P. Computer services for identifying and exposing associations between user communities and items in a catalog
US6430539B1 (en) * 1999-05-06 2002-08-06 Hnc Software Predictive modeling of consumer financial behavior
US6438579B1 (en) * 1999-07-16 2002-08-20 Agent Arts, Inc. Automated content and collaboration-based system and methods for determining and providing content recommendations
US7546254B2 (en) * 1999-08-03 2009-06-09 Bednarek Michael D System and method for promoting commerce, including sales agent assisted commerce, in a networked economy
US6487539B1 (en) * 1999-08-06 2002-11-26 International Business Machines Corporation Semantic based collaborative filtering
US6532469B1 (en) * 1999-09-20 2003-03-11 Clearforest Corp. Determining trends using text mining
US6850252B1 (en) * 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
US6526411B1 (en) * 1999-11-15 2003-02-25 Sean Ward System and method for creating dynamic playlists
US20060053077A1 (en) * 1999-12-09 2006-03-09 International Business Machines Corporation Digital content distribution using web broadcasting services
US7051352B1 (en) * 2000-02-04 2006-05-23 Koninklijke Philips Electronics N.V. Adaptive TV program recommender
US20020059094A1 (en) * 2000-04-21 2002-05-16 Hosea Devin F. Method and system for profiling iTV users and for providing selective content delivery
US20010056434A1 (en) * 2000-04-27 2001-12-27 Smartdisk Corporation Systems, methods and computer program products for managing multimedia content
US20030229537A1 (en) * 2000-05-03 2003-12-11 Dunning Ted E. Relationship discovery engine
US20020082901A1 (en) * 2000-05-03 2002-06-27 Dunning Ted E. Relationship discovery engine
US20030055689A1 (en) * 2000-06-09 2003-03-20 David Block Automated internet based interactive travel planning and management system
US6947922B1 (en) * 2000-06-16 2005-09-20 Xerox Corporation Recommender system and method for generating implicit ratings based on user interactions with handheld devices
US6687696B2 (en) * 2000-07-26 2004-02-03 Recommind Inc. System and method for personalized search, information filtering, and for generating recommendations utilizing statistical latent class models
US6615208B1 (en) * 2000-09-01 2003-09-02 Telcordia Technologies, Inc. Automatic recommendation of products using latent semantic indexing of content
US20060015904A1 (en) * 2000-09-08 2006-01-19 Dwight Marcus Method and apparatus for creation, distribution, assembly and verification of media
US20030022953A1 (en) * 2000-10-10 2003-01-30 Shipley Company, L.L.C. Antireflective porogens
US20020194215A1 (en) * 2000-10-31 2002-12-19 Christian Cantrell Advertising application services system and method
US6785688B2 (en) * 2000-11-21 2004-08-31 America Online, Inc. Internet streaming media workflow architecture
US20050193014A1 (en) * 2000-11-21 2005-09-01 John Prince Fuzzy database retrieval
US6842761B2 (en) * 2000-11-21 2005-01-11 America Online, Inc. Full-text relevancy ranking
US7021836B2 (en) * 2000-12-26 2006-04-04 Emcore Corporation Attenuator and conditioner
US6931454B2 (en) * 2000-12-29 2005-08-16 Intel Corporation Method and apparatus for adaptive synchronization of network devices
US6690918B2 (en) * 2001-01-05 2004-02-10 Soundstarts, Inc. Networking by matching profile information over a data packet-network and a local area network
US6914891B2 (en) * 2001-01-10 2005-07-05 Sk Teletech Co., Ltd. Method of remote management of mobile communication terminal data
US6751574B2 (en) * 2001-02-13 2004-06-15 Honda Giken Kogyo Kabushiki Kaisha System for predicting a demand for repair parts
US6647371B2 (en) * 2001-02-13 2003-11-11 Honda Giken Kogyo Kabushiki Kaisha Method for predicting a demand for repair parts
US20040070538A1 (en) * 2001-02-23 2004-04-15 Ryo Horie Antenna incorporating filter
US6950804B2 (en) * 2001-02-26 2005-09-27 Pika Media Systems and methods for distributing targeted multimedia content and advertising
US20040139064A1 (en) * 2001-03-16 2004-07-15 Louis Chevallier Method for navigation by computation of groups, receiver for carrying out said method and graphical interface for presenting said method
US20020152117A1 (en) * 2001-04-12 2002-10-17 Mike Cristofalo System and method for targeting object oriented audio and video content to users
US20020178223A1 (en) * 2001-05-23 2002-11-28 Arthur A. Bushkin System and method for disseminating knowledge over a global computer network
US6993532B1 (en) * 2001-05-30 2006-01-31 Microsoft Corporation Auto playlist generator
US6990497B2 (en) * 2001-06-26 2006-01-24 Microsoft Corporation Dynamic streaming media management
US20030033321A1 (en) * 2001-07-20 2003-02-13 Audible Magic, Inc. Method and apparatus for identifying new media content
US20030120630A1 (en) * 2001-12-20 2003-06-26 Daniel Tunkelang Method and system for similarity search and clustering
US20040068552A1 (en) * 2001-12-26 2004-04-08 David Kotz Methods and apparatus for personalized content presentation
US6941324B2 (en) * 2002-03-21 2005-09-06 Microsoft Corporation Methods and systems for processing playlists
US20030212710A1 (en) * 2002-03-27 2003-11-13 Michael J. Guy System for tracking activity and delivery of advertising over a file network
US6987221B2 (en) * 2002-05-30 2006-01-17 Microsoft Corporation Auto playlist generation with multiple seed songs
US20060026263A1 (en) * 2002-06-06 2006-02-02 Microsoft Corporation Managing stored data on a computer network
US20050021470A1 (en) * 2002-06-25 2005-01-27 Bose Corporation Intelligent music track selection
US20040003392A1 (en) * 2002-06-26 2004-01-01 Koninklijke Philips Electronics N.V. Method and apparatus for finding and updating user group preferences in an entertainment system
US20060018208A1 (en) * 2002-09-16 2006-01-26 Guy Nathan Digital downloading jukebox system with central and local music servers
US20060062094A1 (en) * 2002-09-16 2006-03-23 Guy Nathan Digital downloading jukebox system with user-tailored music management, communications, and other tools
US20040073924A1 (en) * 2002-09-30 2004-04-15 Ramesh Pendakur Broadcast scheduling and content selection based upon aggregated user profile information
US20040128286A1 (en) * 2002-11-18 2004-07-01 Pioneer Corporation Music searching method, music searching device, and music searching program
US20040247715A1 (en) * 2003-06-05 2004-12-09 G & E Herbal Biotechnology Co., Ltd. Water soluble extract from plant of solanum genus and the preparation process thereof, and pharmaceutical composition containing the water soluble extract
US20040263337A1 (en) * 2003-06-30 2004-12-30 Toshiro Terauchi Control apparatus and control method
US20050154608A1 (en) * 2003-10-21 2005-07-14 Fair Share Digital Media Distribution Digital media distribution and trading system used via a computer network
US20050091146A1 (en) * 2003-10-23 2005-04-28 Robert Levinson System and method for predicting stock prices
US20050102610A1 (en) * 2003-11-06 2005-05-12 Wei Jie Visual electronic library
US20050114357A1 (en) * 2003-11-20 2005-05-26 Rathinavelu Chengalvarayan Collaborative media indexing system and method
US20050195696A1 (en) * 2004-02-03 2005-09-08 Sony Corporation Information processing apparatus and method, and program
US20050193054A1 (en) * 2004-02-12 2005-09-01 Wilson Eric D. Multi-user social interaction network
US20050256867A1 (en) * 2004-03-15 2005-11-17 Yahoo! Inc. Search systems and methods with integration of aggregate user annotations
US20050216855A1 (en) * 2004-03-23 2005-09-29 Nokia Corporation System and method for music synchronization in a mobile device
US20050223039A1 (en) * 2004-04-05 2005-10-06 Samsung Electronics Co., Ltd. Method and apparatus for playing multimedia play list and storage medium therefor
US20050235811A1 (en) * 2004-04-20 2005-10-27 Dukane Michael K Systems for and methods of selection, characterization and automated sequencing of media content
US20050276570A1 (en) * 2004-06-15 2005-12-15 Reed Ogden C Jr Systems, processes and apparatus for creating, processing and interacting with audiobooks and other media
US20060020062A1 (en) * 2004-07-08 2006-01-26 Bloom Paul D Epoxidized esters of vegetable oil fatty acids as reactive diluents
US20060018209A1 (en) * 2004-07-22 2006-01-26 Niko Drakoulis Apparatus and method for interactive content requests in a networked computer jukebox
US20060067296A1 (en) * 2004-09-03 2006-03-30 University Of Washington Predictive tuning of unscheduled streaming digital content
US20060074750A1 (en) * 2004-10-01 2006-04-06 E-Cast, Inc. Prioritized content download for an entertainment device
US20060080356A1 (en) * 2004-10-13 2006-04-13 Microsoft Corporation System and method for inferring similarities between media objects
US20060100978A1 (en) * 2004-10-25 2006-05-11 Apple Computer, Inc. Multiple media type synchronization between host computer and media device
US20060095516A1 (en) * 2004-11-01 2006-05-04 Wijeratne Viranga L Local area preference determination system and method
US20060136344A1 (en) * 2004-12-17 2006-06-22 Netsuite, Inc. Web-based business application with streamlined integration of upsell features
US20060165571A1 (en) * 2005-01-24 2006-07-27 Seon Kim S Nipple overcap having sterilizer

Cited By (205)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892495B2 (en) 1991-12-23 2014-11-18 Blanding Hovenweep, Llc Adaptive pattern recognition based controller apparatus and method and human-interface therefore
US9535563B2 (en) 1999-02-01 2017-01-03 Blanding Hovenweep, Llc Internet appliance system and method
US9602862B2 (en) 2000-04-16 2017-03-21 The Directv Group, Inc. Accessing programs using networked digital video recording devices
US9743147B2 (en) 2001-08-19 2017-08-22 The Directv Group, Inc. Network video unit
US9426531B2 (en) 2001-08-19 2016-08-23 The Directv Group, Inc. Network video unit
US9467746B2 (en) 2001-08-19 2016-10-11 The Directv Group, Inc. Network video unit
US8875198B1 (en) 2001-08-19 2014-10-28 The Directv Group, Inc. Network video unit
US8477786B2 (en) 2003-05-06 2013-07-02 Apple Inc. Messaging system and service
US20100138860A1 (en) * 2005-01-05 2010-06-03 The Directv Group, Inc. Method and system for displaying a series of recordable events
US9258513B2 (en) 2005-01-05 2016-02-09 The Directv Group, Inc. Method and system for reconfiguring a selection system based on layers of categories descriptive of recordable events
US20100284671A1 (en) * 2005-01-05 2010-11-11 The Directv Group, Inc. Method and system for reconfiguring a selection system based on layers of categories descriptive of recordable events
US8442387B2 (en) 2005-01-05 2013-05-14 The Directv Group, Inc. Method and system for displaying a series of recordable events
US20060184984A1 (en) * 2005-01-05 2006-08-17 Digital Networks North America, Inc. Method and system for intelligent indexing of recordable event identifiers
US20060173910A1 (en) * 2005-02-01 2006-08-03 Mclaughlin Matthew R Dynamic identification of a new set of media items responsive to an input mediaset
US7693887B2 (en) * 2005-02-01 2010-04-06 Strands, Inc. Dynamic identification of a new set of media items responsive to an input mediaset
US9262534B2 (en) 2005-02-03 2016-02-16 Apple Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
US9576056B2 (en) 2005-02-03 2017-02-21 Apple Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
US8312017B2 (en) 2005-02-03 2012-11-13 Apple Inc. Recommender system for identifying a new set of media items responsive to an input set of media items and knowledge base metrics
US7797321B2 (en) 2005-02-04 2010-09-14 Strands, Inc. System for browsing through a music catalog using correlation metrics of a knowledge base of mediasets
US8185533B2 (en) 2005-02-04 2012-05-22 Apple Inc. System for browsing through a music catalog using correlation metrics of a knowledge base of mediasets
US8543575B2 (en) 2005-02-04 2013-09-24 Apple Inc. System for browsing through a music catalog using correlation metrics of a knowledge base of mediasets
US7945568B1 (en) 2005-02-04 2011-05-17 Strands, Inc. System for browsing through a music catalog using correlation metrics of a knowledge base of mediasets
US7840570B2 (en) 2005-04-22 2010-11-23 Strands, Inc. System and method for acquiring and adding data on the playing of elements or multimedia files
US8312024B2 (en) 2005-04-22 2012-11-13 Apple Inc. System and method for acquiring and adding data on the playing of elements or multimedia files
US8745048B2 (en) 2005-09-30 2014-06-03 Apple Inc. Systems and methods for promotional media item selection and promotional program unit generation
US7877387B2 (en) 2005-09-30 2011-01-25 Strands, Inc. Systems and methods for promotional media item selection and promotional program unit generation
US8996540B2 (en) 2005-12-19 2015-03-31 Apple Inc. User to user recommender
US8356038B2 (en) 2005-12-19 2013-01-15 Apple Inc. User to user recommender
US7962505B2 (en) 2005-12-19 2011-06-14 Strands, Inc. User to user recommender
US8219692B2 (en) * 2006-01-18 2012-07-10 Samsung Electronics Co., Ltd. Method and apparatus for storing and restoring state information of remote user interface
US20070174301A1 (en) * 2006-01-18 2007-07-26 Samsung Electronics Co., Ltd. Method and apparatus for storing and restoring state information of remote user interface
US8583671B2 (en) 2006-02-03 2013-11-12 Apple Inc. Mediaset generation system
US9317185B2 (en) 2006-02-10 2016-04-19 Apple Inc. Dynamic interactive entertainment venue
US7987148B2 (en) 2006-02-10 2011-07-26 Strands, Inc. Systems and methods for prioritizing media files in a presentation device
US7743009B2 (en) 2006-02-10 2010-06-22 Strands, Inc. System and methods for prioritizing mobile media player files
US8214315B2 (en) 2006-02-10 2012-07-03 Apple Inc. Systems and methods for prioritizing mobile media player files
US8521611B2 (en) 2006-03-06 2013-08-27 Apple Inc. Article trading among members of a community
US8285595B2 (en) 2006-03-29 2012-10-09 Napo Enterprises, Llc System and method for refining media recommendations
US8903843B2 (en) 2006-06-21 2014-12-02 Napo Enterprises, Llc Historical media recommendation service
US7970922B2 (en) 2006-07-11 2011-06-28 Napo Enterprises, Llc P2P real time media recommendations
US8762847B2 (en) 2006-07-11 2014-06-24 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
US8327266B2 (en) 2006-07-11 2012-12-04 Napo Enterprises, Llc Graphical user interface system for allowing management of a media item playlist based on a preference scoring system
US10469549B2 (en) 2006-07-11 2019-11-05 Napo Enterprises, Llc Device for participating in a network for sharing media consumption activity
US8805831B2 (en) 2006-07-11 2014-08-12 Napo Enterprises, Llc Scoring and replaying media items
US9003056B2 (en) * 2006-07-11 2015-04-07 Napo Enterprises, Llc Maintaining a minimum level of real time media recommendations in the absence of online friends
US7680959B2 (en) 2006-07-11 2010-03-16 Napo Enterprises, Llc P2P network for providing real time media recommendations
US8422490B2 (en) 2006-07-11 2013-04-16 Napo Enterprises, Llc System and method for identifying music content in a P2P real time recommendation network
US20080319833A1 (en) * 2006-07-11 2008-12-25 Concert Technology Corporation P2p real time media recommendations
US8059646B2 (en) 2006-07-11 2011-11-15 Napo Enterprises, Llc System and method for identifying music content in a P2P real time recommendation network
US8583791B2 (en) 2006-07-11 2013-11-12 Napo Enterprises, Llc Maintaining a minimum level of real time media recommendations in the absence of online friends
US9292179B2 (en) 2006-07-11 2016-03-22 Napo Enterprises, Llc System and method for identifying music content in a P2P real time recommendation network
US20080184142A1 (en) * 2006-07-21 2008-07-31 Sony Corporation Content reproduction apparatus, recording medium, content reproduction method and content reproduction program
US8090606B2 (en) 2006-08-08 2012-01-03 Napo Enterprises, Llc Embedded media recommendations
US8620699B2 (en) 2006-08-08 2013-12-31 Napo Enterprises, Llc Heavy influencer media recommendations
US8677243B2 (en) * 2006-09-01 2014-03-18 Nokia Corporation Media recommendation system and method
US20080059422A1 (en) * 2006-09-01 2008-03-06 Nokia Corporation Media recommendation system and method
US20080104624A1 (en) * 2006-11-01 2008-05-01 Motorola, Inc. Method and system for selection and scheduling of content outliers
US9417758B2 (en) * 2006-11-21 2016-08-16 Daniel E. Tsai AD-HOC web content player
US20080141132A1 (en) * 2006-11-21 2008-06-12 Tsai Daniel E Ad-hoc web content player
US8874655B2 (en) 2006-12-13 2014-10-28 Napo Enterprises, Llc Matching participants in a P2P recommendation network loosely coupled to a subscription service
US20090070185A1 (en) * 2007-01-17 2009-03-12 Concert Technology Corporation System and method for recommending a digital media subscription service
US20130166698A1 (en) * 2007-01-30 2013-06-27 Sony Electronics Inc. System and method for effectively providing content to client devices in an electronic network
US8799500B2 (en) * 2007-01-30 2014-08-05 Sony Corporation System and method for effectively providing content to client devices in an electronic network
US9224427B2 (en) 2007-04-02 2015-12-29 Napo Enterprises LLC Rating media item recommendations using recommendation paths and/or media item usage
US8112720B2 (en) 2007-04-05 2012-02-07 Napo Enterprises, Llc System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items
US8434024B2 (en) 2007-04-05 2013-04-30 Napo Enterprises, Llc System and method for automatically and graphically associating programmatically-generated media item recommendations related to a user's socially recommended media items
US8671000B2 (en) 2007-04-24 2014-03-11 Apple Inc. Method and arrangement for providing content to multimedia devices
US9448688B2 (en) 2007-06-01 2016-09-20 Napo Enterprises, Llc Visually indicating a replay status of media items on a media device
US9037632B2 (en) 2007-06-01 2015-05-19 Napo Enterprises, Llc System and method of generating a media item recommendation message with recommender presence information
US8983950B2 (en) 2007-06-01 2015-03-17 Napo Enterprises, Llc Method and system for sorting media items in a playlist on a media device
US8954883B2 (en) 2007-06-01 2015-02-10 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
US9164993B2 (en) 2007-06-01 2015-10-20 Napo Enterprises, Llc System and method for propagating a media item recommendation message comprising recommender presence information
US9275055B2 (en) 2007-06-01 2016-03-01 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
US8839141B2 (en) 2007-06-01 2014-09-16 Napo Enterprises, Llc Method and system for visually indicating a replay status of media items on a media device
US8285776B2 (en) 2007-06-01 2012-10-09 Napo Enterprises, Llc System and method for processing a received media item recommendation message comprising recommender presence information
US7865522B2 (en) 2007-11-07 2011-01-04 Napo Enterprises, Llc System and method for hyping media recommendations in a media recommendation system
US9060034B2 (en) 2007-11-09 2015-06-16 Napo Enterprises, Llc System and method of filtering recommenders in a media item recommendation system
US9224150B2 (en) 2007-12-18 2015-12-29 Napo Enterprises, Llc Identifying highly valued recommendations of users in a media recommendation network
US8396951B2 (en) 2007-12-20 2013-03-12 Napo Enterprises, Llc Method and system for populating a content repository for an internet radio service based on a recommendation network
US9071662B2 (en) 2007-12-20 2015-06-30 Napo Enterprises, Llc Method and system for populating a content repository for an internet radio service based on a recommendation network
US9734507B2 (en) 2007-12-20 2017-08-15 Napo Enterprise, Llc Method and system for simulating recommendations in a social network for an offline user
US8983937B2 (en) 2007-12-21 2015-03-17 Lemi Technology, Llc Tunersphere
US8874554B2 (en) 2007-12-21 2014-10-28 Lemi Technology, Llc Turnersphere
US9552428B2 (en) 2007-12-21 2017-01-24 Lemi Technology, Llc System for generating media recommendations in a distributed environment based on seed information
US8577874B2 (en) 2007-12-21 2013-11-05 Lemi Technology, Llc Tunersphere
US9275138B2 (en) 2007-12-21 2016-03-01 Lemi Technology, Llc System for generating media recommendations in a distributed environment based on seed information
US8117193B2 (en) 2007-12-21 2012-02-14 Lemi Technology, Llc Tunersphere
US8060525B2 (en) 2007-12-21 2011-11-15 Napo Enterprises, Llc Method and system for generating media recommendations in a distributed environment based on tagging play history information with location information
US8725740B2 (en) 2008-03-24 2014-05-13 Napo Enterprises, Llc Active playlist having dynamic media item groups
US20090259621A1 (en) * 2008-04-11 2009-10-15 Concert Technology Corporation Providing expected desirability information prior to sending a recommendation
US8484311B2 (en) 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
US20090265417A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Aggregating media collections to provide a primary list and sorted sub-lists
US8874650B2 (en) 2008-04-17 2014-10-28 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US20090265416A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Aggregating media collections between participants of a sharing network utilizing bridging
US8285810B2 (en) 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections between participants of a sharing network utilizing bridging
US20090265426A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US20090265418A1 (en) * 2008-04-17 2009-10-22 Eloy Technology, Llc Pruning an aggregate media collection
US8224899B2 (en) 2008-04-17 2012-07-17 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US9396196B2 (en) 2008-04-17 2016-07-19 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US20090300008A1 (en) * 2008-05-31 2009-12-03 Strands, Inc. Adaptive recommender technology
US10380178B2 (en) 2008-06-20 2019-08-13 Sony Corporation Information processing apparatus, information processing method and information processing program
US8538914B2 (en) 2008-06-20 2013-09-17 Sony Corporation Information processing apparatus, information processing method and information processing program
US20090327349A1 (en) * 2008-06-20 2009-12-31 Sony Corporation Information processing apparatus, information processing method and information processing program
US8244665B2 (en) * 2008-06-20 2012-08-14 Sony Corporation Information processing apparatus, information processing method and information processing program
US9805117B2 (en) 2008-06-20 2017-10-31 Sony Corporation Information processing apparatus, information processing method and information processing program
US10075512B2 (en) 2008-06-30 2018-09-11 Microsoft Technology Licensing, Llc User status reports provided by an entertainment access system
US20140052818A1 (en) * 2008-06-30 2014-02-20 Microsoft Corporation User status reports provided by an entertainment access system
US20100037752A1 (en) * 2008-08-13 2010-02-18 Emil Hansson Music player connection system for enhanced playlist selection
US7786367B2 (en) * 2008-08-13 2010-08-31 Sony Ericsson Mobile Communications Ab Music player connection system for enhanced playlist selection
US20100057928A1 (en) * 2008-08-29 2010-03-04 Adobe Systems Incorporated Dynamically Altering Playlists
US8473628B2 (en) * 2008-08-29 2013-06-25 Adobe Systems Incorporated Dynamically altering playlists
US20100076982A1 (en) * 2008-09-08 2010-03-25 Apple Inc. System and method for playlist generation based on similarity data
US8601003B2 (en) 2008-09-08 2013-12-03 Apple Inc. System and method for playlist generation based on similarity data
US8914384B2 (en) 2008-09-08 2014-12-16 Apple Inc. System and method for playlist generation based on similarity data
US9496003B2 (en) * 2008-09-08 2016-11-15 Apple Inc. System and method for playlist generation based on similarity data
US8966394B2 (en) 2008-09-08 2015-02-24 Apple Inc. System and method for playlist generation based on similarity data
US20100070490A1 (en) * 2008-09-17 2010-03-18 Eloy Technology, Llc System and method for enhanced smart playlists with aggregated media collections
US8856375B2 (en) * 2008-09-19 2014-10-07 Yahoo! Inc. System and method for distributing media related to a location
US20130018897A1 (en) * 2008-09-19 2013-01-17 Yahoo! Inc. System and method for distributing media related to a location
US7853712B2 (en) 2008-09-29 2010-12-14 Eloy Technology, Llc Activity indicators in a media sharing system
US20100082135A1 (en) * 2008-09-29 2010-04-01 Concert Technology Corporation Activity indicators in a media sharing system
US8332406B2 (en) 2008-10-02 2012-12-11 Apple Inc. Real-time visualization of user consumption of media items
US20100094934A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Source indicators for elements of an aggregate media collection in a media sharing system
US8880599B2 (en) 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US20100094833A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Caching and synching process for a media sharing system
US8484227B2 (en) 2008-10-15 2013-07-09 Eloy Technology, Llc Caching and synching process for a media sharing system
US20100094834A1 (en) * 2008-10-15 2010-04-15 Concert Technology Corporation Bridging in a media sharing system
US7752265B2 (en) 2008-10-15 2010-07-06 Eloy Technology, Llc Source indicators for elements of an aggregate media collection in a media sharing system
US20100114979A1 (en) * 2008-10-28 2010-05-06 Concert Technology Corporation System and method for correlating similar playlists in a media sharing network
WO2010078060A1 (en) * 2008-12-31 2010-07-08 Strands, Inc. Systems and methods for making recommendations using model-based collaborative filtering with user communities and items collections
US9824144B2 (en) 2009-02-02 2017-11-21 Napo Enterprises, Llc Method and system for previewing recommendation queues
US8200602B2 (en) 2009-02-02 2012-06-12 Napo Enterprises, Llc System and method for creating thematic listening experiences in a networked peer media recommendation environment
US9367808B1 (en) 2009-02-02 2016-06-14 Napo Enterprises, Llc System and method for creating thematic listening experiences in a networked peer media recommendation environment
US9191229B2 (en) 2009-02-02 2015-11-17 Eloy Technology, Llc Remote participation in a Local Area Network (LAN) based media aggregation network
US9380355B2 (en) 2009-02-05 2016-06-28 Digimarc Corporation Second screens and widgets
US20100228740A1 (en) * 2009-03-09 2010-09-09 Apple Inc. Community playlist management
US9143381B2 (en) * 2009-04-16 2015-09-22 Microsoft Technology Licenising, LLC Sequenced transmission of digital content items
US20100268821A1 (en) * 2009-04-16 2010-10-21 Microsoft Corporation Sequenced transmission of digital content items
US8620919B2 (en) 2009-09-08 2013-12-31 Apple Inc. Media item clustering based on similarity data
US20110081967A1 (en) * 2009-10-05 2011-04-07 Microsoft Corporation Interactive media social game
WO2011100029A1 (en) 2010-02-12 2011-08-18 Exxonmobil Oil Corporation Coated polymeric film
US20110270774A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Group Recommendations in Social Networks
US10580030B2 (en) 2010-05-27 2020-03-03 Rockbot, Inc. Methods and systems for analyzing user preferences to dynamically identify remotely located media for local access
EP2577484A4 (en) * 2010-05-27 2014-08-27 Roqbot Inc Methods and systems for analyzing user preferences to dynamically identify remotely located media for local access
EP2577484A2 (en) * 2010-05-27 2013-04-10 Roqbot, Inc. Methods and systems for analyzing user preferences to dynamically identify remotely located media for local access
US9258175B1 (en) * 2010-05-28 2016-02-09 The Directv Group, Inc. Method and system for sharing playlists for content stored within a network
US9208239B2 (en) * 2010-09-29 2015-12-08 Eloy Technology, Llc Method and system for aggregating music in the cloud
US20120117146A1 (en) * 2010-09-29 2012-05-10 Eloy Technology, Llc Method and system for aggregating music in the cloud
US9288254B2 (en) * 2011-05-09 2016-03-15 Google Inc. Dynamic playlist for mobile computing device
US8346867B2 (en) * 2011-05-09 2013-01-01 Google Inc. Dynamic playlist for mobile computing device
US20120290648A1 (en) * 2011-05-09 2012-11-15 Sharkey Jeffrey A Dynamic Playlist for Mobile Computing Device
US20140019596A1 (en) * 2011-05-09 2014-01-16 Google Inc. Dynamic Playlist for Mobile Computing Device
US20120290653A1 (en) * 2011-05-09 2012-11-15 Google, Inc. Dynamic playlist for mobile computing device
US8661151B2 (en) * 2011-05-09 2014-02-25 Google Inc. Dynamic playlist for mobile computing device
US20140114966A1 (en) * 2011-07-01 2014-04-24 Google Inc. Shared metadata for media files
US9152677B2 (en) * 2011-07-01 2015-10-06 Google Inc. Shared metadata for media files
US9870360B1 (en) * 2011-07-01 2018-01-16 Google Llc Shared metadata for media files
US8639706B1 (en) * 2011-07-01 2014-01-28 Google Inc. Shared metadata for media files
US8983905B2 (en) 2011-10-03 2015-03-17 Apple Inc. Merging playlists from multiple sources
US8909667B2 (en) 2011-11-01 2014-12-09 Lemi Technology, Llc Systems, methods, and computer readable media for generating recommendations in a media recommendation system
US9015109B2 (en) 2011-11-01 2015-04-21 Lemi Technology, Llc Systems, methods, and computer readable media for maintaining recommendations in a media recommendation system
CN103139801A (en) * 2011-12-05 2013-06-05 宏达国际电子股份有限公司 Location-aware application method and mobile device
US9210684B2 (en) 2011-12-05 2015-12-08 Htc Corporation Method, mobile device and computer-readable recording medium for location-aware application
US10491646B2 (en) * 2012-02-29 2019-11-26 Sonafire, Inc. Mechanism for facilitating user-controlled features relating to media content in multiple online media communities and networks
US9736224B1 (en) * 2012-03-29 2017-08-15 Google Inc. Playlist analytics
US11138263B2 (en) 2012-03-29 2021-10-05 Google Llc Playlist analytics
US11106733B2 (en) 2012-03-29 2021-08-31 Google Llc Playlist analytics
US10235457B1 (en) 2012-03-29 2019-03-19 Google Llc Playlist analytics
US10380180B1 (en) 2012-03-29 2019-08-13 Google Llc Playlist analytics
US11720628B2 (en) 2012-03-29 2023-08-08 Google Llc Playlist analytics
US10909172B2 (en) * 2012-04-02 2021-02-02 Google Llc Adaptive recommendations of user-generated mediasets
US10452708B2 (en) 2012-07-26 2019-10-22 Google Llc Method and system for generating location-based playlists
US20140031961A1 (en) * 2012-07-26 2014-01-30 Google Inc. Method and System for Generating Location-Based Playlists
US10977305B2 (en) 2012-07-26 2021-04-13 Google Llc Method and system for generating location-based playlists
US11184448B2 (en) 2012-08-11 2021-11-23 Federico Fraccaroli Method, system and apparatus for interacting with a digital work
US11765552B2 (en) 2012-08-11 2023-09-19 Federico Fraccaroli Method, system and apparatus for interacting with a digital work
US10419556B2 (en) 2012-08-11 2019-09-17 Federico Fraccaroli Method, system and apparatus for interacting with a digital work that is performed in a predetermined location
US9660950B2 (en) * 2012-08-31 2017-05-23 Facebook, Inc. Sharing television and video programming through social networking
US20140067828A1 (en) * 2012-08-31 2014-03-06 Ime Archibong Sharing Television and Video Programming Through Social Networking
US20140172611A1 (en) * 2012-12-13 2014-06-19 Ebay Inc. Buyer-solicited offerings
US20200159744A1 (en) * 2013-03-18 2020-05-21 Spotify Ab Cross media recommendation
US11645301B2 (en) * 2013-03-18 2023-05-09 Spotify Ab Cross media recommendation
US20150006541A1 (en) * 2013-06-28 2015-01-01 Harman International Industries, Inc. Intelligent multimedia system
US9575971B2 (en) * 2013-06-28 2017-02-21 Harman International Industries, Incorporated Intelligent multimedia system
US10616648B2 (en) * 2014-02-13 2020-04-07 Piksel, Inc. Crowd based content delivery
US20170134807A1 (en) * 2014-02-13 2017-05-11 Piksel, Inc. Crowd based content delivery
CN104867510A (en) * 2014-02-26 2015-08-26 船井电机株式会社 Reproducing device, external device, and reproducing method of content
US20170300568A1 (en) * 2014-03-31 2017-10-19 Paypal, Inc. Dynamic jukebox
US10366120B2 (en) * 2014-03-31 2019-07-30 Paypal, Inc. Dynamic jukebox
US11693915B2 (en) 2014-09-10 2023-07-04 Mk Systems Usa Inc. Interactive web application editor
US9432734B2 (en) * 2014-09-10 2016-08-30 Telefonaktiebolaget L M Ericsson (Publ) Multi-person and multi-device content personalization
US10963539B2 (en) 2014-09-10 2021-03-30 Mk Systems Usa Inc. Interactive web application editor
WO2016038507A1 (en) * 2014-09-10 2016-03-17 Telefonaktiebolaget L M Ericsson (Publ) Multi-person and multi-device content personalization
CN107113463A (en) * 2014-09-10 2017-08-29 瑞典爱立信有限公司 Many people and many device contexts are personalized
US20170242861A1 (en) * 2015-01-23 2017-08-24 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Music Recommendation Method and Apparatus
US10885107B2 (en) * 2015-01-23 2021-01-05 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Music recommendation method and apparatus
CN107729578A (en) * 2015-01-23 2018-02-23 广东欧珀移动通信有限公司 A kind of music recommends method and device
US10659504B2 (en) * 2016-02-19 2020-05-19 Spotify Ab System and method for client-initiated playlist shuffle in a media content environment
US20170244770A1 (en) * 2016-02-19 2017-08-24 Spotify Ab System and method for client-initiated playlist shuffle in a media content environment
US11722539B2 (en) 2016-02-19 2023-08-08 Spotify Ab System and method for client-initiated playlist shuffle in a media content environment
US10212204B2 (en) * 2016-04-19 2019-02-19 Ringcentral, Inc. Systems and methods for improving media data communications over a network
US10936653B2 (en) 2017-06-02 2021-03-02 Apple Inc. Automatically predicting relevant contexts for media items
US20220272502A1 (en) * 2019-07-11 2022-08-25 Sony Group Corporation Information processing system, information processing method, and recording medium
US11210303B2 (en) 2019-10-24 2021-12-28 Spotify Ab Media content playback for a group of users
US11709847B2 (en) 2019-10-24 2023-07-25 Spotify Ab Media content playback for a group of users

Also Published As

Publication number Publication date
US8583671B2 (en) 2013-11-12
US20090210415A1 (en) 2009-08-20

Similar Documents

Publication Publication Date Title
US20070244880A1 (en) Mediaset generation system
US9317185B2 (en) Dynamic interactive entertainment venue
US11416118B2 (en) Method and apparatus for providing recommendations to a user of a cloud computing service
US7849420B1 (en) Interactive content representations enabling content sharing
US7693887B2 (en) Dynamic identification of a new set of media items responsive to an input mediaset
US6526411B1 (en) System and method for creating dynamic playlists
US8484227B2 (en) Caching and synching process for a media sharing system
US20090138457A1 (en) Grouping and weighting media categories with time periods
US8200674B2 (en) Personalized media recommendation
US9367808B1 (en) System and method for creating thematic listening experiences in a networked peer media recommendation environment
US20100070490A1 (en) System and method for enhanced smart playlists with aggregated media collections
US20100094934A1 (en) Source indicators for elements of an aggregate media collection in a media sharing system
US20140297752A1 (en) Device For Participating In A Network For Sharing Media Consumption Activity
US20120072610A1 (en) P2p real time media recommendations
US20140207762A1 (en) Method of and system for multilevel creation of consolidated dynamic playlist and utilization thereof
US20100114979A1 (en) System and method for correlating similar playlists in a media sharing network
US20080125889A1 (en) Method and system for customization of entertainment selections in response to user feedback
US20100070537A1 (en) System and method for managing a personalized universal catalog of media items
US11775580B2 (en) Playlist preview
US9299331B1 (en) Techniques for selecting musical content for playback
CN111193940A (en) Audio playing method and device, computer equipment and computer readable storage medium
CN101604542A (en) Reproducing device
Cao et al. Consistent music recommendation in heterogeneous pervasive environment

Legal Events

Date Code Title Description
AS Assignment

Owner name: MYSTRANDS, INC., OREGON

Free format text: CHANGE OF NAME;ASSIGNOR:MUSICSTRANDS, INC.;REEL/FRAME:020017/0907

Effective date: 20071005

Owner name: MYSTRANDS, INC.,OREGON

Free format text: CHANGE OF NAME;ASSIGNOR:MUSICSTRANDS, INC.;REEL/FRAME:020017/0907

Effective date: 20071005

AS Assignment

Owner name: STRANDS, INC., OREGON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MYSTRANDS, INC.;REEL/FRAME:020116/0629

Effective date: 20071105

Owner name: MUSICSTRANDS, INC., OREGON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MARTIN, FRANCISCO;TORRENS, MARC;HANGARTNER, RICK;AND OTHERS;REEL/FRAME:020120/0371;SIGNING DATES FROM 20050329 TO 20061120

Owner name: STRANDS, INC.,OREGON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MYSTRANDS, INC.;REEL/FRAME:020116/0629

Effective date: 20071105

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: COLWOOD TECHNOLOGY, LLC, NEW HAMPSHIRE

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:STRANDS, INC.;REEL/FRAME:026577/0338

Effective date: 20110708

AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:COLWOOD TECHNOLOGY, LLC;REEL/FRAME:027038/0958

Effective date: 20111005