Disclosed is a method and system for providing audio service to a client through a communication network. A user subscribes to the service and the user's access to audio files is contingent upon authorization and validation. Once authorized, the user may access and stream out audio date files, or similar types of files, to the client device through the communication network. Metrics are maintained for the play-out of each audio file and payment may be allocated to an owner of rights in the audio file based on the play-out statistics. The user may maintain customized play lists on the server for playing out preselected audio files. A play list may be sent to another user. The server may also be configured to select audio files not previously selected by the user based on the user's past selection behavior or based on the user's stated preferences. The audio files identified by the server are then suggested to the user. The user may also be referred by the server to a sales site to purchase a recording of the audio file.
|
0. 22. A method, comprising:
receiving, at a computer system, a request from a first user of a music streaming service to send a playlist of music files to a second user of the music streaming service, wherein the playlist was previously created by the first user;
in response to receiving the request from the first user, sending, by the computer system, a message identifying the playlist to the second user;
receiving, at the computer system, a request from the second user to begin streaming at least a portion of the playlist;
in response to receiving the request from the second user, streaming, by the computer system, one or more of the music files included in the playlist to the second user;
storing, by the computer system, play-out information indicative of an amount of the streaming of the music files in the playlist to the second user, wherein the storing includes inserting records into a table of streamed music files, wherein the records include a first record specifying, for a particular one of the music files in the playlist streamed to the second user, 1) a pointer to the particular music file, 2) a duration of play-out of the particular music file streamed to the second user, and 3) an owner identifier indicating an owner of the particular music file to receive payment; and
based on the play-out information, allocating, by the computer system, payments for owners of the music files in the playlist that have been streamed to the second user, wherein the allocating includes determining a total duration of play-out of the particular music file based on a plurality of durations of play-out of the particular music file included in the table.
0. 39. A non-transitory computer-readable medium having instructions stored thereon that, responsive to execution by a computer system, cause the computer system to perform operations comprising:
receiving a request, via a public network, from a first user of a music streaming service to send a playlist of music files to a second user of the music streaming service;
in response to receiving the request from the first user, sending a message to the second user, the message including information identifying at least one of a plurality of music files included in the playlist;
receiving a request from the second user to begin streaming at least a portion of the playlist;
in response to receiving the request from the second user, streaming one or more of the plurality of music files included in the playlist to the second user;
storing, in a table, play-out information indicative of an amount of the streaming of the music files in the playlist to the second user, wherein the storing includes inserting, into the table, a first record for a particular one of the music files in the playlist streamed to the second user, wherein the first record includes an identifier of the particular music file, a duration of play-out of the particular music, and an owner identifier indicating an owner to receive payment for the particular music file; and
using the play-out information to allocate payments for owners of the music files in the playlist that have been streamed to the second user, wherein the using includes determining a play-out time of the particular music file based on a plurality of durations of the play-out of the particular music file as indicated in the table.
0. 35. A computer system, comprising:
a storage unit configured to store:
a plurality of music files, and
a plurality of playlists respectively associated with one or more music files of the plurality of music files, the plurality of playlists having been created based on information received from users of a music streaming service; and
a processing unit configured to:
receive a request from a first user of the music streaming service to send, to a second user of the music streaming service via a public network, information relating to a first playlist of the plurality of playlists, wherein the first playlist was previously created by the first user;
in response to receiving the request from the first user, send a message identifying the first playlist to the second user;
in response to receiving a request from the second user to begin streaming from the first playlist, stream one or more of the music files included in the first playlist to the second user;
maintain, in a table of streamed music files, play-out information indicative of an amount of the streaming of the music files in the first playlist to the second user, wherein maintaining the play-out information includes inserting one or more records for a particular one of the music files in the playlist streamed to the second user, wherein the one or more records identify the particular music file and include one or more durations of play-out of the particular music file streamed to users and an owner identifier indicating an owner of the particular music file to receive payment; and
allocate, based on the play-out information, payments for owners of the music files in the first playlist that have been streamed to the second user, wherein allocating a payment to the owner includes determining, from the table, a total duration of play-out of the particular music file based on a plurality of durations of play-out.
0. 1. A method for providing audio service through a communication network to a user, the method comprising the steps of:
registering the user for the audio service;
storing a user identifier value for the user responsive to registering the user for the audio service;
receiving a request message through the communication network, the request message including a network address value, a user identifier value and an audio identifier value;
searching for a matching stored user name value that matches the user name value from the request message;
when no matching stored user name value is found, rejecting the request message;
when the matching stored user name value is found, searching for an audio file corresponding to the audio identifier value of the request message; and
when the corresponding audio file is found, streaming the audio file over the communication network to the network address.
0. 2. The method of
0. 3. The method of
0. 4. The method of
0. 5. The method of
0. 6. The method of
0. 7. The method of
0. 8. The method of
0. 9. The method of
storing a play list for the user, where the play list includes a plurality audio identifier values;
receiving a play list request message;
responsive to the play list request message, retrieving the play list for the user and transmitting the play list to the user over the communication network; and
streaming out an audio file corresponding to one of the plurality of audio identifier values from the play list.
0. 10. The method of
0. 11. The method of
receiving a request with the play list from the another user;
validating the another user;
when the another user is validated as having subscribed, playing out the play list to the another user; and
when the another user is not validated as having subscribed, sending a message to the another user inviting the another user to subscribe.
0. 12. The method of
storing a referral link for each audio file, where the referral link corresponds to a sales site accessible through the communication network;
outputting the referral link with the streamed audio file;
responsive to a user request for the referral link, transferring the user to the sales site; and
incrementing a referral count for the referral link.
0. 13. The method of
0. 14. The method of
tracking the audio identifier values for a set of user requests;
matching the audio identifier values for the set of user requests with a predetermined set of categories to determine at least one user category;
selecting at least one unselected audio identifier from the user category that has not been requested by the user; and
sending the unselected audio identifier to the user.
0. 15. The method of
0. 16. The method of
comparing the audio identifier values for the set of user requests with a pattern of user requests for each of a plurality of other users in order to find a similar pattern of user requests from another user;
selecting at least one unselected audio identifier from audio identifier values selected by the another user that has not been requested by the user; and
sending the unselected audio identifier to the user.
0. 17. The method of
obtaining a selection of categories from the user along with a selected proportion for each category of the selection; and
selecting a set of audio identifier values from the selection of categories based on the selected proportions.
0. 18. The method of
0. 19. The method of
0. 20. The method of
obtaining a selection of categories from the user along with a selected proportion for each category of the selection;
selecting a set of audio identifier values from the selection of categories based on the selected proportions; and
playing out to the user each of the audio files corresponding to the set of audio identifier values.
0. 21. The method of
detecting that each audio file corresponding to the set of audio identifier values has been played out to the user;
selecting another set of audio identifier values from the selection of categories based on the selected proportions; and
playing out to the user each of the audio files corresponding to the another set of audio identifier values.
0. 23. The method of claim 22, wherein the request from the first user includes information identifying the second user.
0. 24. The method of claim 22, further comprising:
receiving, by the computer system, an access request from the second user to access the music streaming service; and
in response to determining that the second user is a registered user of the music streaming service, granting, by the computer system, the second user access to the music streaming service.
0. 25. The method of claim 24, wherein the access request from the second user includes:
the request to begin streaming the music files included in the playlist; and
a password.
0. 26. The method of claim 22, further comprising:
receiving, by the computer system, an access request from the second user to access the music streaming service; and
in response to determining that the second user is not a registered user of the music streaming service, sending, by the computer system, a message inviting the second user to register with the music streaming service.
0. 27. The method of claim 26, further comprising:
receiving, by the computer system, a registration request message from the second user, wherein the registration request message includes billing information.
0. 28. The method of claim 22, wherein the message sent to the second user includes an invitation to the second user to register with the music streaming service.
0. 29. The method of claim 22, further comprising:
storing, by the computer system, music files and playlists previously created by a plurality of users of the music streaming service, wherein each of the playlists is associated with one or more of the stored music files.
0. 30. The method of claim 22, further comprising:
in response to determining that the second user is a registered user, sending, by the computer system, a link that is configured to grant the second user access to the music streaming service.
0. 31. The method of claim 22, further comprising:
subsequent to streaming a music file included in the playlist to the second user, receiving, by the computer system, a request from the second user to add the streamed music file to a playlist created by the second user.
0. 32. The method of claim 22, wherein the playlist was previously created by the first user from a set of audio files stored by the computer system.
0. 33. The method of claim 22, wherein the playlist was previously created by the first user for the first user.
0. 34. The method of claim 22, wherein the play-out information specifies, for a particular one of the music files in the playlist streamed to the second user, a count value indicating a number of times the particular music file has been streamed to the second user.
0. 36. The computer system of claim 35, wherein the processing unit is further configured to:
receive a request from the second user to access the music streaming service; and
in response to determining that the second user is a registered user of the music streaming service, grant the second user access to the music streaming service.
0. 37. The computer system of claim 36, wherein the request from the second user to access the music streaming service includes:
information identifying the first playlist; and
information identifying the one or more of the music files included in the first playlist.
0. 38. The computer system of claim 35, wherein the message identifying the first playlist to the second user includes an invitation to the second user to register with the music streaming service.
0. 40. The non-transitory computer-readable medium of claim 39, further comprising:
receiving an access request from the second user to access the music streaming service; and
in response to determining that the second user is a registered user of the music streaming service, granting the second user access to the music streaming service.
0. 41. The non-transitory computer-readable medium of claim 39, further comprising:
receiving an access request from the second user to access the music streaming service; and
in response to determining that the second user is not a registered user of the music streaming service, sending a message inviting the second user to register with the music streaming service.
0. 42. The non-transitory computer-readable medium of claim 39, wherein the message sent to the second user further includes information for registering with the music streaming service.
0. 43. The non-transitory computer-readable medium of claim 39, further comprising:
in response to determining that the second user is a registered user of the music streaming service, sending a link that is configured to allow the second user to access to the music streaming service.
0. 44. The non-transitory computer-readable medium of claim 39, further comprising:
subsequent to streaming a music file included in the playlist to the second user, receiving a request from the second user to add the streamed music file to a playlist created by the second user.
|
More than one reissue application has been filed for the reissue of U.S. Pat. No. 6,662,231. The reissue applications are U.S. application Ser. No. 11/299,241, filed Dec. 9, 2005; U.S. application Ser. No. 11/513,985, filed Aug. 31, 2006, which is a continuation of U.S. application Ser. No. 11/299,241; and the present reissue application, which is a divisional of U.S. application Ser. No. 11/299,241.
The present invention relates to audio data communications. More specifically, it relates to customized audio service to a user over a communications link through communication network.
Digital audio services are increasingly available to users through a variety of sources. In these services, audio data files, such as MP3 files, are stored in a server and streamed or downloaded on demand to users over connections through a wide area network, such as the Internet or the Web.
Often, these services are used to download audio files which are then stored and disseminated to other users in violation of the rights of the owners of the audio files. Also, these services typically only provide users with the selections that the user himself identifies.
Other services, such as internet radio stations, typically provide music to user in a manner consistent with the rights of the owners of the audio files. This is typically accomplished by paying royalties to the owners based on the playlist of the station. However, the music provided by the station is chosen by a programming director or service.
Consequently, an improved method for delivering music to users is desired that protects the rights of the owners of the music.
The present invention is described below in the context of several embodiments of the invention with reference to the following drawings, wherein like reference numerals refer to like elements in the various figures, and wherein:
The present invention is directed toward a subscriber-based service for providing audio files to a client device connected to a server through a network, such as a wide area network. The server has access to user data and audio data files stored in a memory system, such as a database. A user requesting service from the server is validated to ensure that the user is a subscriber. The user may then request streaming or download of audio data files or customized playlists from the server. Metrics for play-out of each audio file, such as duration of play-out or number of play-outs, are maintained for the audio files and used to allocate payment of royalties or license fees to owners of rights in the audio files, such as copyrights or phonograph rights. The user may also maintain and modify customized playlists through the server and send playlists to other users.
The method and system according to the present invention provides users with opportunities to search, listen, manage, and purchase their favorite music in the environment provided by the present invention. Examples of the types of users that may interact with the present invention include customers, ad scheduling operations personnel, and program or music scheduling operations personnel.
Client device 30, which, in this example, is a personal computer, is connected to LAN 34 through communication link 32. LAN 34 is connected to Network Access Server 40 through communication link 36. Network Access Server 40 is connected to Public IP Network 70 through communication link 42.
And in yet another example of a client device and network configuration suitable for use in the present invention, client device 40 is a dedicated wireless hardware device that is connected to a wireless network 44, such as a cellular network, satellite network, or wireless LAN, through wireless communication link 42. Wireless network 44, in turn, is connected to Network Access Server 50 through communication link 46. Network Access Server 50 is connected to Public IP Network 70 through communication link 52. Server 80 is connected to Public IP Network through communication link 82 and is capable of communicating with each of client devices 10, 30 and 40 through its respective network access. Server 80 is also on communication with Database 90 through communication link 92.
The architecture of
Public IP network 70 is one example of a wide area network (WAN) suitable for use with the present invention. The user of other types of network is possible, including wireless networks. The Internet Protocol is defined in Request For Comment (RFC) 2460, and its predecessor documents, available through the Internet Engineering Task Force (IETF) at www.ietf.org, and herein incorporated by reference in its entirety for all purposes.
Each server type in the figure represents a logical server or server cluster or server farm in the architecture and is not limited to an individual physical server. The server site may be deployed as a server farm or server cluster managed by the service hosting provider. For this reason, it may be useful not to hold any user states from one http request to the next in the server site or in a web server. The database server may be deployed as a server cluster. This configuration may be replicated as the capacity requirements for the system dictate. Any data updated through an administrative interface, through a system intranet, or by daemon process may be configured as a master-slave configuration in a replicated environment simplifying the replication strategy. The user updated information through the web site may also be configured as a multi-master configuration in a replicated environment.
For each Audio File Table, the table includes a Play Count indicating the number of times that the audio file has been played out to a user, a Play-out Time value that indicates the duration of time that the audio file has been played out, an alphanumeric Owner ID to identify the owner of the audio file, a Referral Link containing a universal resource locator (URL) indicating a sales site for the audio file, and a Referral Count value indicating the number of times that a user has been referred to the sales site of the referral link. Further information regarding URLs is available through the IETF at www.ietf.org.
The table in
The Audio File Table also includes a Play Data pointer that points to the beginning of a list and memory of database 90 that contains a record for each user access of the audio file. One or more alphanumeric Category columns in the Audio File Table identify a category for the audio file and may indicate a type, genre, era, artist, or similar identifying information for the audio file. Multiple category columns may be used to associate the audio file within multiple categories, such as multiple genres, e.g. alternative rock and folk, or in both a genre and an era, e.g. rock and 80's music. Other data structures, such as a linked-list of records or an array, may also be used for storage of the audio file information.
Preceding on the presumption that the connection request was accepted in message 208, the client may send an audio request message 210 containing an Audio ID value Audio ID1 that is received by server 80. The server then queries database 90 using an audio query message 212 containing the Audio ID value Audio ID1. Database 90 searches the Audio File Table of
Examples of streaming audio software applications that may be adapted for use with the present invention are Microsoft Media Services, Quicktime, and ReaLPlayer. Streaming audio applications typically sent an audio file in a series of packets that include parts of the song stored in the audio file. The streaming application typically only stores a few seconds of an audio sequence in order to account for network or system latency. Since only a small portion of the audio file is typically resident in the client device, streaming applications present less opportunity for a user to copy and disseminate an audio file, thereby affording greater protection to the owner of the audio file.
Server 80, using the Play List ID received in message 260, sends a list query message 262 to database 90. Responsive to the Play List ID value in list query 262, database 90 obtains the pointer from the user data table of
Server 80 then proceeds to stream out audio data file 1 to the client device in a sequence of packets 270A-270D, until play-out of the audio file is complete. Server 80 then logs the duration of the play-out of the first audio file and proceeds to query the database 90 for the second audio file in the play list. Database 90 searches for the audio data file corresponding to the Audio ID value provided in audio query 280 and returns it to the server for play-out to the client device. The user may advance to the play list by requesting a move-up in the play list in message 288 to server 80.
Responsive to message 288, server 80 logs the duration of the play-out of the second audio file in message 286 to database 90 and queries the database for the next audio file in the play list in message 290. Database 90 replies with the audio data for the third audio file on the list which is included in message 292 to the server 80, which then proceeds to stream out the third audio data file in a sequence of packets 294A-C. The user may request repeat of songs on the play list by sending a move back message 300 to server 80 which will halt streaming of the third audio data file and log duration of the play-out of the third audio file in message 296. Server 80 then queries database 90 for the second audio file in message 302, database 90 retrieves the audio file and returns it to server 80 in message 304, and server 80 proceeds with a repeat of the play-out of audio data file 2 in sequence of packets 306A-C.
The present invention enables a user to create, modify or delete a playlist, where the user selects the audio files or controls the mix of audio files contained within the playlist. A user may begin creation of a playlist by selecting an icon, such as an icon on a graphical user interface or portion of an HTML page, representing a playlist creation function. The user may be then be prompted to select songs to place in the list.
There are many different ways that a user can search for and find music to populate a playlist according to the present invention. For example, a user may add to a playlist a song that is currently being streamed out to the user. To begin, a user clicks on an icon in order to create new playlist or select an existing one. A window appears at the user interface prompting the user to name the playlist. The user's selection is turned into a playlist ID and entered into a data entry for the user or, if it already exists, retrieved from the data entry. The user then clicks on another icon to select the song that is currently playing and the server adds the audio ID for the song to the selected playlist.
Likewise, a user can click on an icon for a song that is offered through a feature window presented at the user interface. The song may begin to play-out and the user is prompted to add the song to a playlist. If the user chooses to add the song, then the user is prompted for a playlist name. The system then adds the audio ID for the song to the identified playlist.
Alternatively, a user can review playlists, such as albums or predetermined mixes of audio tracks, defined by a service provider operating the server or by another user and select songs. The user reviews a playlist presented in a window of the user interface and clicks on an icon for a song in the playlist. In a manner similar to that described above, the song may begin to play-out and the user is prompted to add the song to a playlist. If the user chooses to add the song, then the user is prompted for a playlist name. The system then adds the audio ID for the song to the identified playlist.
The user may also search for songs to add to the playlist. The user interface may, for example, include a search interface presented through a window of the user interface or as part of an HTML page. To search, the user enters text into a search box. For example, the user may enter the name of an artist. The system according to the present invention will then search for all audio tracks or albums for that artist and display the search results to the user through the user interface. The user may then select a song or an album, which will begin to play. The user may then click on an icon to add the song to a playlist. The user is prompted to identify a playlist, such as by entering a name for the list or clicking on an icon for the list, and the audio ID for the song is added to the playlist.
Similarly, a user may search for music by song title, album title, and musical style or genre. These choices may be entered by the user as text or may be presented to the user through pull-down menus or icons that the user may click on.
Database 90 replies with the audio data file corresponding to the suggestion ID value and which is incorporated into audio reply message 528. Server 80 then streams out the audio data from audio reply message 528 to the client device. In one embodiment of the present invention, the user requests referral by sending a referral request message 532 containing the Audio ID value from the suggestion ID that was previously submitted in request 524. Server 80 logs the play-out of the suggestion track by sending message 534 that includes the audio file ID of the suggested track and the duration of play-out. Server 80 then increments the referral count value in the Audio File Table of
Note that the a suggested song can be added to a playlist by the user. For example, while the song is playing, the user can click on an icon on the user interface for adding the suggested song to a playlist. The user is prompted to identify a playlist. The system then adds the audio ID for the song to the identified playlist for the user. This information is stored and may be subsequently retrieved.
If the user is confirmed as a subscriber, then server 80 proceeds to play out the play list as described above. However, if the second user is not a subscriber, then the second user may send a subscribe request message 822 with the User ID2 and a password value along with, typically, billing information, such as credit card information, for payment of a subscription fee. Server 80 then adds an entry to the user data table of
Server 80 of
As one example, server 920 may receive an HTTP request from one of the client devices 902 and 906 via IP network 70 and distributes the request to one of the HTTP servers 932, 934, and 936. Similarly, server 940 may receive an HTTP request from one of the wireless client devices 910 and 914 via IP network 70 and distributes the request to one of the WML servers 952, 954, and 956. The HTTP or WML server processes the request, such as a user login or registration request, by accessing the various functional servers to obtain the data needed to service the request. For example, in response to a user login request, the server processing the request sends a query to membership server 988 that includes the user ID value from the user request. The membership server searches for user data corresponding to the user ID value, such as data from an entry in the user data table of
If the user has not registered for a paid subscription to the service provided by the cluster in accordance with the present invention, then the HTTP or WML server may prompt the user to indicate whether the user wishes to register or upgrade to a paid subscription. If the user does wish to register for a paid subscription, then the HTTP or WML server collects billing information from the user and forwards it in a message to the CyberCash server 992, which, for example, validates the credit information and, through network connections to financial services, such as credit card companies or banks, makes the appropriate charges for the subscription service.
The HTTP or WML server similarly accesses the other functional servers to service the connection session with the client device. For instance, the HTTP or WML server may send a request with an Audio ID value to the database server 980 to obtain an audio data file from database 982, as discussed above. The HTTP or WML server may also send the logging information for the play-out to the database server 980 to record the audio play out. The application server 986 may be accessed by the HTTP or WML server to provide additional services to the user.
To obtain suggested audio files, the HTTP or WML server may send a request to the collaborative filtering server 990, which searches for audio files that may be of interest to the user based on the user's behavior and indicated preferences as well as data from other users. The collaborative filtering server 990 searches for audio files that may be of interest to the user using, for example, collaborative filtering algorithms, the algorithm discussed above with respect to
Another embodiment of the service provided to a user according to the present invention is through automatic playlist creation of a user controllable mix of audio files. In automatic playlist creation, the user specifies the number of songs in the playlist and the percentage make-up by category. The playlist is created by the system based on the directions specified by the user. The user may then access the playlist in the manner described above.
An example of one scenario for automatic playlist creation starts when a user is prompted for the number of songs in the playlist. The user responds with a number (e.g. forty). This is illustrated in step 1004 of
Yet another embodiment of the service provided to a user according to the present invention is dynamic playlist creation. It may be desirable to the user to have continuous play-out of music without having to define a playlist or repeatedly select playlists that are limited in length. In dynamic playlist creation, the actual song selection is done “on the fly”. In other words, selection of each song is done shortly before play-out of the song. For example, as play-out of a first song nears the end of the song, another song is selected for play-out once the first song ends. Dynamic play-list creation provides a high level of variability within user-selected preferences, but with a minimum demand for user administration. In other words, the user can define his preferences and the system will continuously select and play-out songs based on the user's preferences without further user input. Dynamic play-list creation may be thought of as a solution half way between a radio station, where the user has no control of which songs are played, and a user-specified playlist, where the user has exactly defined the songs that are played.
Play-out of the songs from the set of N selected audio files begins at step 1058, where an unplayed song from the set is selected and the audio file retrieved. The audio file for the selected song is played-out at step 1060. Play-out from the set of N audio files continues until the set is exhausted, as reflected in the control flow branch at step 1062. While unplayed songs remain from the set of N, control flow branches back to step 1058. However, once the end of the set of N is reached, then control flow branches to step 1056 for selection of a new set of N audio files. By utilizing, at least in part, a pseudo-random selection process within the categories, the new set of N is likely to consist of different songs from the previous set. However, the selection process at step 1056 may be configured to select only unplayed songs or songs that have not been played within a predetermined period of time. One of ordinary skill in the art will readily appreciate that a large variety of approaches and combination of approaches may be employed in the selection process of step 1056.
By way of further example, assume that a user specifies the same choices as in the Automatic Playlist Creation scenario above. Assume that the user listens to the playlist for four hours during which eighty songs are played. The first forty songs will be selected by the system subject to the criteria specified by the user. The next forty songs will be selected by the same criteria, but given the dynamic nature of the list creation it is highly likely that different songs will be played while maintaining the composition percentage by category.
Generally, the service provided by the present invention is a subscription or paid service involving, for example, two levels of membership, paying and non-paying. The level of membership that a user chooses determines their access to functions and content in present invention. The paying membership requires the user to choose a payment schedule and specify a payment method. Users who choose not to register will be allowed to search for music and transact purchases but will only be allowed to listen to promotional albums.
Generally speaking, user actions, such as change in level of membership or viewing of user input windows or submittal of user input, do not interrupt the music playing. The system and method of the present invention may also permit users to rate the music currently being heard by the listener and the rating data collected and provided to the record companies and other clients interested in such data.
The system and method according to the present invention can be configured to allow the user to choose among a variety of play back modes, including normal, shuffle and loop. The play back modes may be based on algorithms based on user behavior, user input, collaborative filtering, or other approaches. Typically, a variety of user actions related will result in the system generating new suggestions or a new recommendation list for the user to review and choose. Examples of these user actions constituting user behavior for purposes of selection algorithms are selection or play out of a play list, selection or play out of an album, rating of a song, or buying an album. Results of user behavior based searching are displayed to the user via the user interface.
The user behavior based suggestion or recommendation algorithm may be integrated with a business based selection criterion as well. For example, the top-scoring album from the user behavior based recommendation algorithm may be showcased in a promotion window only when the production company for the album has paid for a timeslot for advertising or, conversely, is not displayed if another company has purchased the current timeslot.
An example of the user login exchange scenario in accordance with the present invention involves a user initially navigating to a web site configured to operate according to the present invention. For example, the user's HTML request may be received, processed and replies transmitted by the HTTP servers 932, 934 and 936 of
If the login attempt fails, i.e. if the user enters the wrong combination of user ID and password, then the user may be notified and prompted to types in a valid user ID and password. As another alternative, the user may be prompted to elect to have the correct password mailed to an email address of record for the user that is included in the user's data table entry or registration profile.
A different scenario may occur when a non-registered user navigates to the web site. For example, a registration page may be offered to the user or a registration page may be an option from the home page for the site. The user is presented with the privacy policy for the website along with copyright protection policy information or other types of information. The user may then be prompted to enter demographics information such as access location (e.g. work, home, home office, school), country, and postal code. The Access location and Country fields may be entered using a drop down with a list of predetermined choices.
In addition, the user enters personal information such as name, gender, date of birth, musical preferences by genre, user ID, password, password confirmation, and email address. The Gender and Musical preference fields may have drop down menus with a list of pre-populated choices. Other types of information requested may relate to income, profession or other data relevant for business demographics or for selection criteria.
The user submits the entered information to the website and the site server validates the entered values and commits the information to the database, thereby activating the login. The user data table of
If errors are discovered in the information entered by the user, then the user may be presented with a page or window that affords the user an opportunity to correct the information. For example, all errors that are found may be flagged for the user to correct with the date for all valid fields already filled in for the user so as not to require the user to unnecessarily reenter data. The server then revalidates the resubmitted information. This process may be repeated if additional errors are found. If the information is entered correctly, then the login may be activated.
If the user has requested a paying membership, then the same steps as just described may be applied except that the login is not activated until valid payment information is submitted. To validate payment information, for example, the user may be presented with a page over a secure connection that may be used to select a payment schedule and specify a credit card from which the website server, such as the CyberServer 992 of
If errors are discovered in the payment information by the website server, then the user may be presented with a page or window that affords an opportunity to correct the information. For example, all errors found may be flagged for the user to correct and all valid fields filled in for the user so as not to require the user to unnecessarily reenter data. The website, or a particular server of the website, then revalidates the resubmitted information. If additional errors are found, then this process may be repeated. Otherwise the user's login is activated, such as by setting the Subscribed column for the user's entry in the table of
Along similar lines, a user may upgrade from a non-paying membership or subscription to paying status in order to obtain full privileges, e.g. ability to download audio files in their entirety, customized play-lists, etc., from the website. The user would be offered a page or would select a page that permits entry and validation of payment information as described above.
Conversely, a user may downgrade from paying to non-paying membership through user selection or through invalidation of the payment information, e.g. expired or invalid credit card. In this case, for example, the Subscribed column for the user's entry in the table of
The website may also provide an interface through which the user may view and update account information. For example, the user may select a different credit card for the charges. If the charges for the service are configured to accrue on an a-la-carte basis, e.g. billed based on total time of download or total selections, then the interface may provide the user with the opportunity to review such charges.
An embodiment of the user interface for the music search function of the present invention may be provided as a page or window from the server site, e.g. website or wireless application server. After the user has navigated to the site and logged in, the user types a full or partial name of artist or song, or album, for example, into a search window. The server site receives and processes the search and returns the search results in, for example, a scrollable window where each result is a separate clickable, e.g. selectable, item. If an item is chosen, a feature area of the page from the server is populated with, for example, an icon for the album, liner notes, or an option to buy the album. If the user is a paying member, the user may also be presented with an option to listen to the song or album, depending on the search. A non-paying member or a non-registered user may be presented with an option to view the contents of the album or may be permitted to stream out just a sample portion of the song.
An embodiment of the user interface for the music suggestion or recommendation function of the present invention may also be provided as a page or window from the server site, e.g. website or wireless application server. After the user logs onto the server site, the user is offered or may select the suggestion function through the site home page. The server site processes the user's request and returns a set of albums or songs influenced by the user's information, such as behavior or demographics. For example, the criteria used may include a song currently selected by the user, a song recently added to a user's personal playlist, a recently purchase song or album, the songs found in the user's personal playlists, or the demographic information provided by the user. The server, or a server residing at the server site, will use a suggestion algorithm, such as collaborative filtering, to create the recommendation list. The server site may return the search results to the user interface in the form of a scrollable window, where each result is a separate clickable item. If an item is chosen, the feature area may be populated with the album icon, liner notes, or an option to buy or listen to the album.
As mentioned briefly above, the user interface may include a promotional area where songs or albums are displayed to the user in the form, for example, of an icon simulating an album cover and may include names of the songs on the album, liner notes, etc. The user may elect to stream the song or album for listening. The feature area may also include a link for purchasing the song or album.
If a user selecting a song or album for playout does not have a audio streaming application in his client device, then the server site may provide a link through the user interface to a website or other network resource where the user can download a streaming application.
The user interface provided to the user by the server site may also include a window for displaying search results, suggestion results, user defined playlists, service provide defined playlists, or other sources. This window will list the songs from the suggestion list, playlist, etc. and may include graphical icons representing each song, liner notes, or similar information. This information may, for example, be linked to an entry for an audio file in the audio data table of
As noted above, the user interface may be configured to link the user to a website or network resource where a song or album may be purchased. An example of the user interface to purchase an album provides a link to a sales partner's site. If the user selects this link, a new browser window is opened and linked to the sales partner's site where the user can purchase the album. The process of linking to the partner's site need not disrupt the streaming of the audio file to the user. The sale of the album to the user is completed through the partner's site.
Similarly, for individual songs, the user interface may be configured to offer purchase of the song track or album. If the user selects purchase of the track, the user may be referred to a sales partner's site that provides for download of individual song tracks. The process of purchasing the track need not disrupt streaming of the audio file and the sale of the downloaded track may be completed through the partner's site. Alternatively, sale of the downloaded track may be completed through the server site according to the present invention with suitable adaptation.
Custom compilations of songs, such as the list of songs on a playlist, may be purchased in a manner similar to that for albums or individual songs.
With regard to customized playlists, the user interface may, for example, provide a window or input area of a page that permits the user to create, modify or delete playlists. The user will be prompted for a name of a playlist. If the playlist name is new, then no matching playlist for the user will be found and the user will be prompted to identify the songs to add to the playlist. This may be through a search or suggestion window, pull-down menu, etc. If there is a matching playlist, then the contents of the playlist will be displayed to the user for editing. The new or edited playlist is then stored by, for example, linking it to the user's entry in the user data table of
The playlist window may also include a selection to email the list to a friend. The user will be prompted to identify the playlist and the email address for the friend. The server site will then send the playlist, including, for example, the title of each song in the list, to the email address provided. The email to the friend may include a link, e.g. a FURL, to the server site along with an invitation to subscribe to the service described herein, if the friend is not already a registered user. Also, the link provided to the friend may automatically log the friend in, if the friend is already a registered user. The friend may be offered the option to save the playlist.
The user interface may also be configured to permit a user to navigate through to a help page or similar information regarding the service without disrupting the streaming of an audio file.
In addition, the user interface may include advertising, such as banner ads. These ads may be selected on the basis of timeslots purchased by an advertiser, user demographics, or based on the user's behavior, e.g. music currently selected or selected in the past. The banner ad may include a link to the advertiser's website that, when activated, opens a new browser window on the user interface for the user to access the advertiser's site without interrupting current streaming activity.
The server site may allow the scheduling of several types of advertising customers, such as banner and album promotion. The advertisers typically do not gain direct access to the scheduling systems but rather give their information to the server site operational staff that places the order. The banner advertising may be outsourced to an Internet advertising solutions company such as Doubleclick. Banner advertising scheduling process may also be a manual process. Banner targeting may be achieved through tags identifying the user demographic and music currently being played. Album promotion scheduling as well as selection may be similarly handled.
Banner ad scheduling may be performed according to parameters specified by the ad solutions partner for each customer, such as duration, total hits, demographic targeting, type of music currently streaming, or pricing extended. Runtime selection of banner ads by the server site may require the submission of tags for each of the fields used to schedule the ads. Bimonthly promotion hit reports may be made available to server site personnel in order to bill the customer or may be used to automatically bill the customer.
The album promotion scheduling may be based on one half hour increments for the entire membership. The following parameters may be specified at the time of scheduling: duration, total hits, one half hour time slot during which to show the album, or pricing extended. Bimonthly banner hit or promotion reports may be run to generate billing invoices or data. These reports may contain the following information: total views per album, total detail view clicks per album, total buy clicks per album, or invoice amount.
The server site may provide for program (music) scheduling operations personnel to manipulate the music content and presentation of the site in a variety of ways, such as albums a nd pre-programmed play lists. These operations may be supported through an operational access through a server site intranet.
To add a new album, operations personnel may log into a content maintenance intranet web site. The operator may choose an add album link. The operator then specifies the album information, such as the album gif or icon, liner notes, song list, genre, or artist information. For each song on the album, the operator may specie a path to an encoded file, such as an audio file, containing the song. The operator may then commit the record for the new audio file, which results, for example, in a new entry in the audio data table of
The operator may likewise administer a pre-programmed play list through an intranet website or similar administrative interface. The operator chooses an option to create a new pre-programmed play list. The operator then enters a playlist name and searches for songs and albums to add to the newly created play list. The operator then commits the record of the newly created play list and the server site makes the list available to users. Pre-programmed playlists may be deleted in a s similar manner.
In one embodiment, the user interface creates the appearance that it is an application that changes parts of the user interface page as it is interacted with. The user interface may promote usability by dividing the browser real estate into readily recognized functions that are reused throughout the application. An exception to this appearance to the user is when detailed user input is required by any of the supported functions. Then a new page may be presented for the user to input the required data. The user interface design may be implemented in a thin client architecture where no client side components are utilized, e.g. the browser application for the user resides on an applications server at the server site, such as application server 986 of
An example of the user interface is a function aggregate page that refers to a group of intuitively related functions that maintain the illusion of a unified page or screen, but are, in reality, supported through many separate web pages. The user interface may contain the following function aggregate pages: a Home Page, a User Registration and Profile Maintenance, Music Listening/Searching as part of a Personalized home page, Music Purchase, help and frequently-asked-questions (FAQ) page. Each page listed above is typically a logical page and not a physical page and may be divided up functionally depending on the desired design.
Within these pages, functional areas may be reused. The consistent use of screen real estate tends to promote site predictability and usability. Not all of these elements need to be utilized in every function aggregate page. For example, there are a number of reusable functional areas. For instance, banner advertising, where an advertising solutions company, such as Doubleclick, may serve the banner advertising. Also, demographics data may be used to segment the target audience. Further, navigation links to FAQ may be composed of a user clickable visual element that presents the FAQ page and frequently appears as an option for the user.
For album promotion, an album visual, as well as liner notes, may be presented to the user. Examples of an algorithm for selection are described above. A user clickable link may lead the user to a purchase screen or initiate the playing of a selected song from the album. The decision to offer a music play option link may be contingent upon user registration.
For music search, the search functional area may support several functions. First, it may allow the user to search by several types of keys, e.g. artist, song, and album. The user is free to type in any phrase and the system will perform a like key match by the three criterions. All matched albums will, for example, be returned in a separate scrollable area. Each item returned may include the artist name followed by the album name.
For music recommendation or suggestion, the recommendation list may be a passive user experience in that the server site constantly evaluates and modifies the list as the user interacts with the site.
Examples of functionality supported directly by the home page include user login, music search, music play from feature window of promotional album, navigate to banner, and navigate to FAQ. Example of functionality supported through a link from this page are: registration—nonpaying, registration—paying, album purchase, and song purchase.
The membership level a user chooses may determine his access to functions and content in Amelody. As noted above, there may be two membership levels, paying and non-paying. Both types of memberships ask for basic registration information. The paying membership also typically requires the user to choose a payment schedule and specify a payment method. The non-paying member may be able to listen to promotional albums and certain pre-programmed play lists provided by the server site. Users who choose not to register may be allowed to browse the site and transact purchases, but may not be able to listen to any content. Examples of functionality supported through a user registration and profile maintenance page or pages are registration—non-paying, registration—paying, change of membership from non-paying to paying, change of membership from paying to non-paying, view/update account information, view/update registration information, navigate to banner, and navigate to FAQ.
Examples of functionality directed supported by an embodiment of a music listening/searching page, such as one offered through a personalized home page, include music search, user requested recommendation, music play from feature window of promotional album, Music play from feature window of search result, music play from playlist, music play from pre-programmed playlist, switching play from playlist to album, switching play from album to playlist, playlist creation, playlist deletion, playlist edit, playlist email send, playlist email acceptance, navigate to banner, and navigate to FAQ. Examples of functionality supported through a link from such a page are: change of membership from non-paying to paying, change of membership from paying to non-paying, view/update account information, view/update registration information, album purchase, song purchase, and custom compile list purchase.
A music purchase page may be offered to the user to allow the user to buy music through the server site or through sales partners or fulfillment affiliates. The user's registration status may determine the level of access by the user to the functionality provided by such a page. Example of the functionality provided by this page include album purchase, song purchase, and custom compile list purchase.
The capacity of the server site may be measured in the number of simultaneous supported users both by a web site and by a streaming server. Given that a typical personal computer class web server, application server, and streaming server is capable of handling hundreds of simultaneous users, the server site may be architected in a way that permits a hosting provider to configure the server system to meet a particular sizing requirement and that the architecture does not, within reason, set a capacity upper limit. A preferred system design and architecture will allow the hosting provider to design the appropriate server capacity, bandwidth into individual servers, as well as network and try. load balancing architecture that sizes the total server site user capacity.
As noted above, one aspect of the present invention is to recommend music that the user finds useful. This function may be provided in a recommendation or suggestion engine. The job of the recommendation engine is to predict what new music a user might like to hear at a given moment. New music includes not only new releases but also music that the user has not heard or been recommended before. The engine may consider a variety of factors in creating a recommendation. Examples of these factors may include: User stated genre preference at registration, History of music listening access that profiles actual listening behavior (Songs listened to), History of music management access that profiles actual playlist contents (Songs contained in personalized playlist), Current musical access context, Current song being played, Rating of a newly heard song, Selection of a promotional album for listening, and Purchase of an album or a song.
Initially when a new user logs in, the server site may rely solely on the user stated genre preference to choose a set of albums to recommend to the user. As the user makes selections and, through user behavior, compiles a history of use, a compiled profile based recommendation may be generated. Profiling of music listening and music management may be done using a variety of criteria over time. Examples of criteria and categories are era (e.g. 60's, 70's, Baroque), genre (e.g. Rock, Blues, Hip hop), artist, or producer.
Each factor may be counted over time slices or samples where the relative importance of each time slice is assigned, for example, through a logarithmic step algorithm that decays as the time slice moves away from the current time. The total area captured by the algorithm may provide a data point for that dimension, category item (e.g. music listening access, Rock). The following list offers examples of combinations of factors and criteria that may be used to derive suggestions. Note that not all of the following examples will be relevant for each user. The list includes:
This approach may be useful to track the user's musical tastes over time giving more importance to recent behavior yet still taking into consideration older data points.
Each album in the server site catalogue, e.g. stored on the server site, may be assigned a value in one or more of the four categories mentioned above. A sorting algorithm may be applied over the server site catalogue for each user, taking into consideration how well each album ranks against the compiled profile. Emphasis of category in this ranking may be based, for example, on the following order: Artist, Producer, Genre, and Era.
The list generated from the application of this sort may form the basis for a recommendation. A system configurable parameter may also be used to determine a ranking cut-off “score” below which the albums are excluded from the recommendation list. The server site may choose a set number of albums from this list to recommend.
A system configurable parameter may also be used to trigger a periodic ranking sort for each user. A system configurable threshold of profile data points may be used to trigger the use of a recommendation method over the stated preference recommendation method for a user.
Current musical access based recommendations may be based on user interactions involving a particular album or song during the current session and may be used to generate a recommendation list utilizing a real-time collaborative filtering engine such as Net Perceptions Group Lens, or Andromedia's Like Minds. Examples of user actions that may trigger this recommendation approach may include: choosing a song to play, start of next song in the play list, positive rating of a newly heard song, selection of a promotional album for listening, and purchase of an album or a song.
User payment processing may be handled through a service such as CyberCash. Transactions may be submitted to the service immediately after the service once the service to the user is turned on or off or immediately following the user requests. The rate schedules applied to the users may be database driven. Cancellation of the service may result in a pro-rated refund of the current subscription fee.
It should be understood that the programs, processes, methods, systems and apparatus described herein are not related or limited to any particular type of computer apparatus (hardware or software), unless indicated otherwise. Various types of general purpose or specialized computer apparatus may be used along with the present invention to perform operations in accordance with the teachings described herein.
In view of the wide variety of embodiments to which the principles of the invention can be applied, it should be understood that the illustrated embodiments are exemplary only, and should not be taken as limiting the scope of the present invention. For example, variations may be made in the message flow scenarios other than those described, and more or fewer elements or components may be used in the block diagrams. In addition, the present invention can be practiced with software, hardware, or a combination thereof.
The claims should not be read as limited to the described order or elements unless stated to that effect. Therefore, all embodiments that come within the scope and spirit of the following claims and equivalents thereto are claimed as the invention.
Kim, Michael, Drosset, Joseph St-John, Bottorf, Christopher J., McMillan, Juan C.
Patent | Priority | Assignee | Title |
11625113, | Mar 25 2014 | TOUCHTUNES MUSIC COMPANY, LLC | Digital jukebox device with improved user interfaces, and associated methods |
11741196, | Nov 15 2018 | The Research Foundation for The State University of New York | Detecting and preventing exploits of software vulnerability using instruction tags |
12061677, | Nov 15 2018 | The Research Foundation for The State University of New York | Secure processor for detecting and preventing exploits of software vulnerability |
Patent | Priority | Assignee | Title |
5191573, | Jun 13 1988 | SIGHTSOUND TECHNOLOGIES, LLC | Method for transmitting a desired digital video or audio signal |
5675734, | Jun 13 1988 | SIGHTSOUND TECHNOLOGIES, LLC | System for transmitting desired digital video or audio signals |
5721583, | Nov 27 1995 | Matsushita Electric Industrial Co., Ltd. | Interactive television system for implementing electronic polling or providing user-requested services based on identification of users or of remote control apparatuses which are employed by respective users to communicate with the system |
5809144, | Aug 24 1995 | Carnegie Mellon University | Method and apparatus for purchasing and delivering digital goods over a network |
5926624, | Sep 12 1996 | Audible, Inc | Digital information library and delivery system with logic for generating files targeted to the playback device |
5930765, | Jun 15 1990 | MARTIN AUTOMATIC, INC | Downloading method for songs and advertisements |
5963916, | Sep 13 1990 | INTOUCH GROUP, INC | Network apparatus and method for preview of music products and compilation of market data |
6002720, | Jan 07 1991 | Greenwich Information Technologies, LLC | Audio and video transmission and receiving system |
6005563, | Jun 03 1996 | Rovi Technologies Corporation | User interface for controlling audio functions in a web browser |
6226618, | Aug 13 1998 | SANDPIPER CDN, LLC | Electronic content delivery system |
6226672, | May 02 1997 | Sony Corporation; Sony Electronics, Inc. | Method and system for allowing users to access and/or share media libraries, including multimedia collections of audio and video information via a wide area network |
6248946, | Mar 01 2000 | DWEK, NORMAN | Multimedia content delivery system and method |
6327346, | Sep 01 1998 | Nuance Communications, Inc | Method and apparatus for setting user communication parameters based on voice identification of users |
6351736, | Sep 03 1999 | PENOBSCOT PROSPECT LIMITED LIABILITY COMPANY | System and method for displaying advertisements with played data |
6407750, | Jan 08 1999 | Sony Corporation; Sony Electronics, INC | Broadcast and recorded music management system particularly for use in automobile |
6502194, | Apr 16 1999 | CEDAR LANE TECHNOLOGIES INC | System for playback of network audio material on demand |
6546427, | Jun 18 1999 | RPX Corporation | Streaming multimedia network with automatically switchable content sources |
6549942, | May 24 1995 | IRONWORKS PATENTS LLC | Enhanced delivery of audio data for portable playback |
6721489, | Mar 08 2000 | CEDAR LANE TECHNOLOGIES INC | Play list manager |
6769028, | May 26 2000 | Mosi Media, LLC | Method and apparatus for sharing streaming media links |
6823225, | Feb 12 1997 | HANGER SOLUTIONS, LLC | Apparatus for distributing and playing audio information |
6965770, | Sep 13 2001 | Nokia Technologies Oy | Dynamic content delivery responsive to user requests |
6973476, | Mar 10 2000 | Qualcomm Incorporated | System and method for communicating data via a wireless high speed link |
7010572, | Feb 05 1998 | A PTY LTD | System for handling electronic mail |
7054921, | May 02 1997 | Sony Corporation; Sony Electronics Inc. | Multimedia information transfer via a wide area network |
7065342, | Nov 23 1999 | SILVER UNION WORLDWIDE LIMITED | System and mobile cellular telephone device for playing recorded music |
7113999, | Aug 14 2001 | International Business Machines Corporation | Method, computer readable media and apparatus for the selection and rendering of audio files in a networked environment |
7133846, | Feb 13 1995 | Intertrust Technologies Corp. | Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management |
7415537, | Apr 07 2000 | Nuance Communications, Inc | Conversational portal for providing conversational browsing and multimedia broadcast on demand |
7660295, | May 05 1999 | RPX CLEARINGHOUSE LLC | Telephony and data network services at a telephone |
20010025256, | |||
20020010759, | |||
20020013784, | |||
20020032019, | |||
20030037157, | |||
20030103607, | |||
20040024688, | |||
20050049002, | |||
20090177742, | |||
20110265135, | |||
20120209962, | |||
EP701371, | |||
EP982732, | |||
EP1548741, | |||
EP1712977, | |||
WO1999018518, | |||
WO1999027681, | |||
WO2002045316, | |||
WO2003048948, | |||
WO2004003879, | |||
WO2006027660, | |||
WO9918518, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 06 2006 | SEI-CCS LLC | LEGENE SOCIETY LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 027776 | /0811 | |
Oct 31 2011 | BENHOV GMBH, LLC | (assignment on the face of the patent) | / | |||
Aug 11 2015 | LEGENE SOCIETY LLC | BENHOV GMBH, LLC | MERGER SEE DOCUMENT FOR DETAILS | 037017 | /0939 | |
Aug 09 2021 | BENHOV GMBH, LLC, | INTELLECTUAL VENTURES ASSETS 175 LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 057272 | /0570 | |
Aug 25 2021 | INTELLECTUAL VENTURES ASSETS 175 LLC | DISTRIBUTED MEDIA SOLUTIONS, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 058537 | /0438 |
Date | Maintenance Fee Events |
Date | Maintenance Schedule |
Sep 18 2021 | 4 years fee payment window open |
Mar 18 2022 | 6 months grace period start (w surcharge) |
Sep 18 2022 | patent expiry (for year 4) |
Sep 18 2024 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 18 2025 | 8 years fee payment window open |
Mar 18 2026 | 6 months grace period start (w surcharge) |
Sep 18 2026 | patent expiry (for year 8) |
Sep 18 2028 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 18 2029 | 12 years fee payment window open |
Mar 18 2030 | 6 months grace period start (w surcharge) |
Sep 18 2030 | patent expiry (for year 12) |
Sep 18 2032 | 2 years to revive unintentionally abandoned end. (for year 12) |