Abstract:
An online music purchasing system and method is disclosed, in which a radio service operates on a user&#39;s computer and is configured for receiving and playing digital radio representations of media content in near real-time in a radio session. A content server is configured for serving the digital radio representations of media content to the radio service, and a radio sequence server is configured for serving a sequential list of currently-playing and previously-played media content of the radio session to the radio service. An account server is configured for receiving a signal indicative of a user&#39;s desire to purchase a file of one of a currently-playing or previously-played media content. A download manager is configured for downloading the file to the user&#39;s computer according to the signal indicative of the user&#39;s desire to purchase the file.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application claims priority to U.S. Provisional Application Ser. No. 60/502,162, filed on Sep. 10, 2003. 
     
    
     BACKGROUND  
       [0002]     Enjoyment of online music, in which digital representations of music are stored and transferred electronically in a network as files, is increasingly popular. Various peer to peer file sharing programs have hastened the popularity of online music, as have the proliferation of computing devices that can store and “play” such digital representations of music. Web sites or other programs have now begun to emerge by which consumers can browse, listen, and purchase music, usually in the form of an online “store” that mail ordered CDs to the customer.  
         [0003]     Conventional online music purchasing systems do not offer a radio service, in which digital media files such as music are transmitted an received for playing in near real time. Likewise, typical online radio services do not allow a user to select and purchase a song that has previously played or is currently playing. The user usually cannot employ the radio functionality at the same time he or she is purchasing a track.  
         [0004]     Some conventional digital rights management (DRM) schemes do not support the concept of set-wise rights, i.e. rights pertaining to playlists of multiple tracks. Additionally, some of these implementations of DRM do not allow tracks that are licensed to be utilized on multiple machines (e.g. a work machine, a home machine, and a laptop). There might also be a lack of provisions to protect and treat a playlist of multiple tracks as an entity. However, current DRM schemes require that the content be encrypted, and that keys used for decrypting the content be stored securely. This can make accessing DRM compliant content computationally and time intensive, and can further result in sluggish behavior from applications that access DRM content.  
       SUMMARY  
       [0005]     This document discloses an electronic “jukebox” system that enables real-time, online commerce of music utilizing digital downloads and online fulfillment. This system provides for instant songtrack (i.e. “track”) purchases, with the tracks being delivered automatically as DRM-protected music files delivered via download and then automatically managed within a jukebox (JB) client application. When a purchase is approved, a track is queued for download by a track download manager (TDM) that is part of the JB. The TDM handles all aspects of the download, including error recovery and obtaining DRM licenses for the purchased track.  
         [0006]     The system also provides for utilizing a user&#39;s offline behavior to suggest tracks for purchase by the user in the online system. The system analyzes play behavior and determines relationships between songs. These relationships are then used to suggest tracks for purchase by the user. The “loop” is closed when the system “sees” plays of purchased tracks within the JB after the completion of the download. This analysis and recommendation capability enhances the user experience, and assists the user in discovering new music that is consistent with their observed behavior and preferences.  
         [0007]     The system further allows a user to purchase tracks while the user simultaneously plays an Internet radio service. The system uses personalized radio as the discovery tool for new music, and then allows the user, with a pre-existing account, to instantly purchase online those songs that they are hearing or have recently heard on the radio service.  
         [0008]     The system also provides delivery of purchased tracks concurrent with the playing of radio. The user does not have to stop listening to the radio to purchase tracks or have their purchases be fulfilled. This capability is based on the TDM not “interfering” with the operation of the JB and thereby allowing both radio and download to operate concurrently.  
         [0009]     Another aspect provided by the system includes linking suggested songs to currently playing track. The system allows users to listen to and purchase tracks that are shown (through the personalization system) to be related to a currently-played song. If the user clicks on an information button associated with the current song in a user interface display, related songs are displayed (i.e. linked to) based on the discovered relationships.  
         [0010]     Another aspect of the system includes changing a display of suggestions coincident with changes of the currently-playing song track. Accordingly, when a played track changes from one track to another, the suggestions associated therewith provided to the user also change.  
         [0011]     Yet another aspect includes displaying a history of tracks played through the radio and providing a mechanism to allow the user to purchase songs that have recently played. As stated above, interfaces with the radio are central to a satisfying user experience. Allowing the user to see the history of songs recently played and select songs for purchase from this list is a key part of that experience.  
         [0012]     The system also provides for allowing users to select and purchase individual tracks from a multi-track album. The system also generates and displays ads based on currently playing song and related tracks. To do an effective job of serving ads that are relevant and actionable, the system can synchronize the ads to the playing tracks and related tracks. The selections will be based on the relationships that are contained in a personalization database.  
         [0013]     Still yet another aspect of the systems and methods disclosed herein include extensions to existing digital rights management (DRM) technology to extend single-machine DRM rights to multiple machines belonging to a single user, and managing playlists of protected tracks. Users are provided with a certain, minimum amount of freedom to utilize the tracks that they purchase online. Additional extensions provide rapid access to the DRM content.  
         [0014]     The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]     These and other aspects will now be described in detail with reference to the following drawings.  
         [0016]      FIG. 1  illustrates an exemplary user interface for a jukebox system.  
         [0017]      FIG. 2  is a general system architecture functional flow diagram.  
         [0018]      FIG. 3  is a block diagram of a jukebox system architecture.  
         [0019]      FIG. 4  is a ladder diagram illustrating communication for a track purchase.  
         [0020]      FIG. 5  is a ladder diagram illustrating communication for a track purchase according to an alternative embodiment.  
         [0021]      FIG. 6  is a functional flow diagram of a track purchase process.  
         [0022]      FIG. 7  is a functional flow diagram of a track fulfillment process.  
         [0023]      FIG. 8  is a functional flow diagram of an invoice authorization and creation process.  
         [0024]      FIG. 9  is a functional flow diagram of an invoice sweep process.  
         [0025]      FIG. 10  is a ladder diagram illustrating a login and authorization process in an online jukebox system.  
         [0026]      FIG. 11  is a functional flow diagram of a DRM-compliant file import/play process in accordance with an embodiment.  
         [0027]      FIG. 12  is a functional flow diagram of a computer activation process.  
         [0028]      FIG. 13  shows a user interface in accordance with an embodiment of a jukebox system.  
         [0029]      FIG. 14  shows another user interface in accordance with an embodiment of a jukebox system.  
         [0030]      FIG. 15  shows yet another user interface in accordance with an embodiment of a jukebox system.  
         [0031]      FIG. 16  is a functional flow diagram of a login/signup process.  
         [0032]      FIG. 17  shows a login user interface.  
         [0033]      FIG. 18  is an exemplary user interface illustrating an integrated radio service, download store, and content management control.  
         [0034]      FIG. 19  illustrates a control bar for use in a user interface in accordance with one embodiment.  
         [0035]      FIG. 20  shows an example user interface pull-down menu for setting up an account.  
         [0036]      FIG. 21  shows an example user interface for controlling various settings of a jukebox system. 
     
    
       [0037]     Like reference symbols in the various drawings indicate like elements.  
       DETAILED DESCRIPTION  
       [0038]     This document discloses a juke box (JB) system suitable for a client/server computing environment which users operating a client computer can purchase, receive and/or play digital multimedia files transmitted from a server computer. One such suitable environment is a number of client computers connected to one or more server computers via the Internet. However, the methods and systems described herein are also applicable for any type of communication system including, but not limited to, a wireless communication system, an intranet, a wide area network (WAN), a local area network (LAN) and the like.  
         [0039]     A client computer is any type of personal computing device, including, without limitation, desktop or laptop PC, handheld computer such as a personal digital assistant (PDA), a cell phone, MP3 player, or other computing device.  
         [0040]      FIG. 1  shows a user interface (UI)  10  for a JB system according to an exemplary embodiment. The JB system integrates music download and purchase options into the user&#39;s normal listening environment via the UI  10 . The JB system also provides a download store, where the customer can purchase downloads. Accordingly, the JB system integrates radio services  12 , guide pages 14 and download pages 16 into a unified UI  10 .  
         [0041]     Two paths by which a user can first decide to download a track include: 1) the user discovers an artist while listening to one of the artist&#39;s tracks they have purchased, as represented by an MP3 file or the like, and notice they can easily buy more music from that artist; and 2) the user hears a track they like playing on a network radio service and are allowed to purchase it. In both cases, the first track purchase will be an impulse purchase. After that first impulse purchase, the JB system can encourage the user to continue shopping by providing a list of existing favorites and/or new music the user may want to buy. Personalization and popularity information are used, both in programming the original radio entertainment experience, as well as in enabling the user to navigate across the music databases to find other music they want to buy.  
         [0042]     In accordance with an exemplary embodiment, the JB system provides downloadable content at a quality and format of 160 kbps WMA9. Some independent content may also be provided at 160 kbps MP3. Tracks come pre-tagged with high resolution cover art. The JB system track catalogue preferably includes 250,000 tracks or more. In a specific embodiment, a user can burn one particular play list a predetermined number of times, i.e. 10 times. By making any changes to the play list, such as substituting one track with another, the user can burn the changed play list the same or another number of times. According to one embodiment, content can be played simultaneously on any number of authorized personal computers (PCs) simultaneously.  
         [0043]     In one embodiment, track content is playable on any player platform or device that supports secure WMA 9. The JB system encourages users to make backups of their downloaded files by copying them to alternate PCs or burning them as data files onto CDs. Users may restore these files onto a new PC and use their account to obtain new licenses (subject to the simultaneous PC limit, if applicable).  
         [0044]     In one embodiment, there are four integrated entry points into the download offering from music center controls: 1) Download music; 2) Radio; 3) Guide; and 4) Now Playing. Download Music displays a “store front” interface optimized for users to search, browse, and receive recommendations for music available for purchase. Radio displays an interface optimized for users to find and launch radio stations, or to create their own custom radio stations. Guide displays general information about music and artists. Now Playing displays information about the currently playing track, including links to purchase related music.  
         [0045]     Default views differ for pages of these different paths. For instance, the layout of the artist lists pages differs for pages shown in each of these modes. View settings for all pages are “sticky” from page to page. The Guide and Now Playing view settings are sticky even after the JB session ends. Radio and downloads are sticky only within a JB session.  
         [0046]     The JB system allows users to search the music databases by artist name, album name or track name. Other criteria can be used. In an embodiment, the user can manually select the mode in which they wish to search. For example, classical enthusiasts can type in a name of a composer in an artist view. Artist search results show fuzzy text matches. Album search results show text matches based on words in common with the query, and the various artists that published an album under the specified name. Track name search results show matches based on words in common with the query, and the artists and albums containing that track name.  
         [0047]     Downloads may be accessed from the Radio Play list control, via “Buy Track” buttons, and information buttons that take the user to the album page if possible, and the artist page if no album resolution is possible. In one embodiment, the “Buy Track” button only appears right justified for the highlighted track. The Buy, Go To Artist Page, and Go to Album Page are also accessible via “right clicks” of a two or more button mouse. (The buy right click opens the album page, or the artist page if album not found).  
         [0048]     Downloads may also be accessed from the File Play List control, via the information buttons that take the user to the album page if possible, and the artist page if no album resolution is possible. Information buttons are provided next to all tracks, and a play arrow next to the playing track. The Go To Artist Page, and Go to Album Page are also accessible via right clicks. In one embodiment, the jukebox has no knowledge of which tracks are for sale, except in radio mode. Users can create a wish list and add tracks to their wish list. To purchase a track from their wish list, the user can click on a buy track or buy album selector, depending on a chosen mode.  
         [0049]     The UI  10  includes a number of web pages for display in a client program such as a browser. These pages are described in further detail below.  
         [0050]     Home Pages. There are various types of home pages. In an exemplary embodiment, the system can include a Download Home Page, a Radio Home Page and a Guide Home Page, accessible from a music center “download music” button, a “radio” button, and a “guide” button respectively. When the system does not have personalized user information, it defaults to a standard view of each home page. When the system does have personalized user information, it defaults to a personalized view of each home page.  
         [0051]     Artist Pages. There are several views for every artist page. In an embodiment, these views include: 1) Download Tracks; 2) Download Albums; 3) Related Artists; and 4) Artist Info. If the user is in radio mode, only artists that have associated radio stations are listed, and the related artists shows the number of tracks in the station, and shows a custom playlist creation button. In radio mode, artist pages have one or more “Play” buttons that start the playback of the one or more stations based on that artist. In the Guide or Download mode, the artist list may contain only artists with content that can be purchased, as well as the number of downloads available.  
         [0052]     Station Pages. In one embodiment, there are three types of station pages: 1) Radio Pages; 2) Genre Pages; and 3) Era Pages. These station pages can include the same function controls such as buttons, tabs, etc., follow the same rules and behave in the same way. Each of these page types has two main views: 1) Download Tracks; and 2) Show Artists. Station pages have a “Play” button to start the playback of the station described on the page.  
         [0053]     Charts. In one embodiment, there are three charts pages: 1) Top Tracks; and 2) Top Albums and Top Artists. Each of these pages feature the top track, top album or top artist, respectively, according to ranking based on popularity. These pages can be updated periodically.  
         [0054]     New Music. In one embodiment, there are three new music pages: 1) New Tracks; 2) New Albums; and 3) New Artists. They feature the most popular new track, new album or new artist respectively. Pages are ranked according to popularity, and can be updated periodically, i.e. weekly.  
         [0055]     Album Pages. In one embodiment, there are three album page views: 1) Download Tracks; 2) Related Artists; and 3) Album Info. Users can access the album pages from most download track listings in the various artist and station pages, as well as the Download Albums view on the Artist pages.  
         [0056]     Custom Station Pages. Users can create multi-artist ArtistMATCH or multi-artist Artist on Demand (AOD) stations from any page with an artist list, which the user enters via the radio. An ArtistMATCH station is a station that plays the referenced artist as similar artists. An Artist-On Demand station is a station that plays the referenced artist exclusively or nearly exclusively. These include artist pages, with the related artists view, station pages, with the show artists view, and charts, new music or My Matches in an artist list view. All these pages can have a custom play list creation button. Once users click on the custom playlist creation button, they can see a page. Once a user has saved a custom station, it is added into My Favorites. In one embodiment, all custom stations have two views: 1) Download Tracks (the default); and 2) Show Artists.  
         [0057]     The UI  10  includes a control bar showing various information related to the user and his use of the system. For example, the control bar can include: 1) Log in Status, either user name/account type if the user is logged in, or “log in” if not, as well as an option to log out; 2) Navigation; 3) Requested Quality; 4) Help, including a tutorial sub-item; 5) Account; 6) Options, including an option to switch between shopping cart mode and instant checkout mode, as well as an option to “show again” for purchase confirmation; and 7) Search Bar (which by default will be open and set to search for artist. In one embodiment, banner ads can appear above the control bar.  
         [0058]     The UI  10  further includes a folder structure. The folder structure includes a number of folders according to which a user can catalog and organize information. In one embodiment, there are eight main folders: 1) Favorites; 2) My Matches; 3) Radio Stations; 4) Genre; 5) Era; 6) Charts; 7) New Music; and 8) Downloads. Several of these folders are described in further detail below.  
         [0059]     Favorites: Users can add any station to the Favorites folder by “right clicking” over any page, or by using a favorites manager accessible through the “favorites manager” button in front of the favorites folder. If the user clicks on “recommend new favorites,” the system can add a number of new recommended favorites to the Favorites folder based on the users listening profile. If the user accepts, the recommended stations are added into the user&#39;s Favorites folder. If the user has no listening profile, this can start the personalization process.  
         [0060]     Users can opt into the personalization process in several ways: 1) selecting the “recommend new favorites” control; 2) selecting a “personalize” control, preferably located in an unpersonalized home page; and/or 3) selecting the My Matches folder. In one process, the user&#39;s music recommendations can be “jumpstarted,” i.e. instantly generated. In another process, the system user can allow the system to track the music the user listens to. The system uses the following data sources to personalize: 1. My favorites, 2. jukebox play behavior, 3. self-described favorite artists from the jump start process, and 4. purchased downloads.  
         [0061]     My Matches. The My Matches folder can include a number of stations. In an embodiment, the folder includes the stations of My Track Matches, My Album Matches and My Artist Matches. Station lists within this folder can be ranked in expected preference order, and can be updated periodically.  
         [0062]     Downloads. Selecting the download folder opens up a track download manager (TDM) page that shows the complete record of all the music a user has purchased, and the status of each track. The TDM provides status positions such as: 1) “downloading—%”; 2) “queued”; and 3) “complete”. Local files may be playable from this page. From the setting in the main jukebox menu, the user can modify the destination directory for downloaded tracks.  
         [0063]     The JB system allows users to purchase content. In an example scenario, the JB system provides users who select any downloadable track with a short “clip” or partial segment of the track. The quality of the clip can correspond to Low/Mid/High settings in a main radio menu. In one embodiment, low corresponds to 24 kbps, and mid and high correspond to 64 kbps. A Preview function for these clips behaves similarly as a preview mode in the library. The track appears in the main player window, preferably with cover art, but does not appear in the playlist window. If the user is in radio mode, starting the clip stops or overrides the radio station. A user can select a download by selecting “buy track” or “buy album” from any download page, or selecting “buy track” in the radio playlist.  
         [0064]     If the user is not logged in to their account, the system asks them to log in, or get an account if they do not have one. Users can be asked to enter in a personal question and answer in case they forget their password and need to retrieve it later. If the user does not have an account, the system prompts the user to set one up. First, the user enters their email address and password. Once the user has chosen his or her password, he or she is asked to assent to an end user license agreement (EULA).  
         [0065]     Once the user has accepted the EULA, he or she enters in billing information in a Billing Information Page. The credit card is authorized to ensure that it is valid. If a track purchase is in progress, a standard authorization amount will be authorized (for example, $9.90). If a track purchase is not in progress, an authorization for a nominal amount ($1.00) is performed. In one embodiment, the authorization must succeed, or the user is not permitted to progress past the Billing Information page.  
         [0066]     Once the user has set up his or her account, the system informs them that account setup has been successful, and confirms whether they want to complete the original transaction. Subsequent transactions also require a confirmation. The system can include an automatic upgrade feature, wherein users of older versions of the system see a modified confirmation page that informs them that upgrade to a later version will be automatic upon confirmation. If agreed to by the user, the upgrade commences.  
         [0067]     Users may be given an option to use a shopping cart mode, for example from their options button on the main control bar. If the user selects shopping cart mode, selecting buy track or buy album gets shopping cart confirmation, and then adds selected tracks into their “cart” or electronic storage. The cart can be accessed via a cart folder in the browse bar. The cart folder shows the number of tracks currently in the shopping cart. Users can click on this folder to open their shopping cart, sample the tracks they&#39;ve added, ensure the total is correct, and then check out. In one embodiment, the shopping cart is only visible if it includes tracks.  
         [0068]     At the time of the first transaction of a session, the system verifies validity of the credit card, and that at least a nominal amount, i.e. $10, is available in the account. However, the credit card is not actually billed for a period of time, i.e. 24 hours, after completion of the first transaction, or until after the user has rung up the nominal value&#39;s worth in downloads, whichever comes first. Users receive an email confirmation after each credit card billing.  
         [0069]     In one embodiment, downloads start within one second after placing order. Progress may be viewed in the TDM. Users can click on the Downloads folder to open up the TDM and check the status of their downloads. Cover art and status indicator bar are optionally provided. Users can pause and resume downloads by right clicking on any download in progress in the TDM. Should the user&#39;s network connection fail during a download, the TDM automatically reconnects and finishes the download, without user intervention, as soon as reconnection is made.  
         [0070]     An animated icon that shows that there is a download in progress is displayed next to the download folder. By default, downloads automatically appear in the play list and the library upon completion, with the files appearing in the library as indicated by the relevant identifier tags. Users may change these settings via the standard options/setting menu.  
         [0071]     Once they have purchased and downloaded their music, users can play, manage, and mix purchased tracks into playlists, as with regular MP3s. In one embodiment, there is no visible differentiation between secure tracks purchased using the system, and any other track on the user&#39;s PC, except that the user may choose to expose the file format column in their library.  
         [0072]     According to an exemplary embodiment, users can selectively view only purchased content from the library view menu as one of the standard library views. Content can be sent to any WMA 9 compatible appliance as many times as the user wishes. Content can be “burned,” i.e. stored on a replayable persistent medium such as compact disk, using exactly the same interface and process as all other files, only constrained by a preselected number of identical playlists that may be burned.  
         [0073]      FIG. 2  is a flowchart of a general operation  60  according to one embodiment of a JB system. The user clicks on a “buy track” button at block  62 . At block  64 , the user logs in or sets up an account if not already logged in. At block  66 , if the user&#39;s computer has not been activated for this account, it is registered and counted against the user&#39;s limit. The user&#39;s credit card is authorized, an invoice is created at block  68 , and the track being purchased is added to the invoice. The track is then downloaded to the user&#39;s computer at block  70 , and the license for the track is obtained at block  72 .  
         [0074]      FIG. 3  is a block diagram of a JB system  100  architecture. The JB system includes a digital jukebox  102 , the core functionality of which, i.e. the downloading and licensing of purchased tracks, DRM, etc., is handled by a Track Download Manager (TDM). The digital jukebox  102  also includes the UI  10 , as described above. In one embodiment, the UI is a DHTML/XML/JavaScript based web interface that runs in a browser. The UI  10  and data is served from a guide server  108  that serves up guide data  109  such as biographical information about music artists, album information such as creation date, etc. The guide data  109  is periodically revised by a guide update process  130 . The digital jukebox  102  also includes a radio service  106 , a secure login capability  101 , and a licensing manager  103 .  
         [0075]     A login server  110  handles user login functions in cooperation with an account server  111 , which can handles specific logins such as premium services, etc. Track purchases are handled by the account server  111  and recorded in an account database in a production database  112 . A payment processing server  114  handles credit card transactions, and is responsive to an invoice sweeper process  116 . A license server  115  issues licenses for purchased DRM content. The license server  115  communicates with the account server  111  to verify that licenses are issued for purchased content, and reports data to the licensing manager  103 .  
         [0076]     The account server  111  manages invoices and authorizations of payment instrument such as credit cards. In an embodiment, the account server receives a signal that a particular user wishes to purchase, and then examines the profile of the user to determine the risk to the merchant of executing the purchase. On the basis of the risk profile, the account server executes logic to select a course of action among various options. The risk profile may be determined based on a number of factors, including for example, previous purchase behavior of the user, billing information associated with the account, and information passed along with the signal to purchase.  
         [0077]     The options generated by the account server  111  include, without limitation: requiring a payment instrument pre-authorization of at least the amount of the purchase be associated with the group of purchases before the purchase may be added to the group; allowing the purchase to be added to a group of purchases without a payment instrument pre-authorization and setting a maximum amount and age for the group of purchases, that once exceeded, will trigger the charging of the items as a group to the payment instrument; and requiring that the user enter additional information before performing a payment instrument authorization of at least the amount of the purchase. The additional information may include information associated with the credit card, and/or the IP address of the computer from which the purchase signal was received.  
         [0078]     A content server  118  downloads content, i.e. streams or other content transmission technique, to the radio service  106  and TDM  104  via a content data network  119 . The content is provided from a downloads repository  120 . The radio service  106  receives radio content from a radio sequence server  122  or its proxy. The radio content is streamed according to a sequence generated by a radio sequence generator  124 . A recommendation engine  126  provides personalized recommendation data to the guide server  108 . Many of the operations and processes are regulated by an inventory synchronization server  132  that operates on an inventory database  134 . This server determines, among other things, which tracks and albums are for sale and their current price.  
         [0079]      FIG. 4  is a ladder diagram illustrating communications among several components of the architecture  100  shown in  FIG. 3  to execute a track purchase according to one embodiment. The user logs in using the UI. The login server validates the username and password and issues credentials. The login server obtains the credentials from the account server and passes them back to the UI in the form of a ‘cookie’ attached to the login response. The user presses the “buy track” button in the UI and the UI sends the “buy” message to the account server passing the login credentials, the track ID and the price displayed in the interface. This allows the system to issue a warning if the UI is displaying a different price than the inventory database.  
         [0080]     The account server adds the track to the user&#39;s invoice and constructs the instructions needed to download the track. The instructions are returned as an XML document. The UI passes the XML to the TDM. The TDM requests a license for the track using the WMSDK or similar process. The WMSDK contacts the license server. The license server verifies with the account server that the user purchased the track. If acceptable, a license is returned to the WMSDK, and a success code is returned to the TDM. The TDM downloads the file from the content server, using a Content Delivery Network (CDN) as an “edge server” for example. The content server/CDN contacts the account server to authorize the download. The TDM contacts the account server to confirm successful delivery.  
         [0081]      FIG. 5  is a ladder diagram illustrating communications among components of the architecture  100  shown in  FIG. 3  to execute a track purchase according to an alternative embodiment. The user clicks the buy button. A “buy” message is sent over https to the account server. This message passes the secure login cookie (which identifies the user) as well as the identifier of the track to be purchased and the displayed purchase price (in case it is different from actual purchase price). In this embodiment, the account server has determined that the user&#39;s login has expired. An error code is returned, forcing the user to re-login. The UI collects the username and password and forwards them to the TDM, which calculates the PC Identifier from the hardware profile and sends the login request to the login server over https.  
         [0082]     On a valid login, the login server obtains the credentials from the account server as before. Embedded in the credentials is the status of the PC activation (activated, not activated). In this example, the PC is not activated. The UI must activate the PC before the purchase can proceed. The activate message is sent to the account server. In this example, the account server is configured to require that the user confirm the activation of a new PC. A return code and messaging is returned to the UI. The UI constructs the appropriate confirmation box for the user. The activation is retried following confirmation with a flag that forces activation without further confirmation. The “buy” request can now be sent to the account server. An XML document describing how to download and license the content is returned. This document is passed to the TDM for prosecution.  
         [0083]      FIG. 6  illustrates a functional flow of a download purchase process  138 . The user is presented with “buy” buttons whether logged in or not. If the user clicks this button, his or her Country as reported from the jukebox electronic registration is checked. A “sorry” page is displayed if he or she is non-US ( 160 ). For US users, a confirmation dialog is displayed ( 150 ). If the user confirms the purchase, his or her login state is determined. Users that are not logged in are offered the option to login or create an account ( 200 ). MX users are offered the option to activate their account for download purchases ( 300 ). The session expiration is checked for users with accounts. A re-login page, illustrated in  FIG. 15 , is displayed for users with expired sessions ( 140 ). These users must re-enter their password before purchasing the track. Once login is validated, the user&#39;s PC is activated if necessary ( 1000 ) and the track order is fulfilled ( 500 ).  
         [0084]      FIG. 7  is a functional flow diagram of a fulfillment process  500 . The fulfillment of a track commences with the identification of the user from the secure cookie ( 501 ). This cookie embodies the authorization for track purchases and includes an encrypted user Id and authorization timestamp among other things. If the cookie is expired, the user must re-login ( 502 ) to complete the purchase. Expiration is also checked when login state is determined, but is rechecked here because the transaction could be drawn out by the confirmation dialog ( 150 ).  
         [0085]     If the user does not currently have an open invoice, an invoice is opened. Opening the invoice ( 800 ) includes authorizing a credit card payment of the standard invoice amount, or the amount of the item (whichever is larger). If the authorization fails, a page is displayed ( 503 ) to notify the user of the failure and includes links to account management to correct the issue. If an invoice is already open, a check is performed to ensure that there is room for the new item on the invoice: the new item plus the current balance will not exceed the authorization amount. If there is insufficient room on the invoice, the invoice is closed ( 900 ) and a new invoice is opened ( 800 ). Closing an invoice may include charging the credit card. Once the item is added to an authorized invoice, it may be delivered to the customer ( 505 ).  
         [0086]      FIG. 8  illustrates an invoice opening process  800 . To open a new invoice, the system authorizes a credit card payment for the amount of the invoice ( 801 ). This is the larger of the requested amount or the standard invoice size. If the authorization is declined, the system does not open the invoice ( 802 ). The system can optionally insert security logic into the authorization process ( 801 ), for example, if a great deal of activity is detected on the account, the system fails an authorization and flags that a CVID is required. This forces the user to enter the security code from the credit card before authorizing additional purchases. Conversely, the system may decide, for reliable customers, to reduce the security constraints. That is, the invoice may be allowed to grow beyond its authorization amount, pre-authorizations may be suspended for the user, or new invoice limits for size and maximum age may be set. If the authorization succeeds, a new invoice is created ( 803 ) and associated with the authorization.  
         [0087]      FIG. 9  illustrates an invoice closing process  900 . Invoices are ‘marked for sweep’ as they become filled to the level of the corresponding credit card authorization. Periodically, a batch process runs that queries for invoices that are marked for sweep or have not been added to for some threshold of time ( 901 ). The amount of the invoice is charged to the card (settled) ( 902 ). If the settlement fails for a technical reason, such as a temporary network issue, the invoice can be marked for batch settlement. In the very rare case of a decline to settle an authorized transaction, a failure count is incremented such that the settlement can be retried later ( 906 ) and the user is not allowed to create a new invoice. Assuming the typical case of a successful settlement, the invoice is marked as closed ( 903 ) and an email receipt ( 904 ) is generated and sent to the user. For batch processing, a process can be run periodically that queries the system for invoices that are open and older than a given threshold. The threshold is less than the valid lifespan of a credit card authorization. The invoices are charged and closed.  
         [0088]     The system allows users to reset a forgotten password to a new value, but will not deliver the forgotten password to the user. They system verifies that the user has knowledge of the email address of a valid user and has control of the email account. For extra security, in one embodiment the system requires that a user re-enter credit card information or CVID after retrieving a lost password.  
         [0089]      FIG. 10  is a ladder diagram illustrating communications for licensing a track. The Jukebox attempts to play/burn/import a WMA file. The Jukebox checks with the WMSDK to see if the file must be licensed. In this example, the file needs to be licensed. The Jukebox requests a license using the URL embedded in the DRM file. This is an https request and passes the login cookie. The license server receives this request and contacts the account server to determine if the license should be granted. In this example, the account server determines that the user is not logged in. This triggers the login process.  
         [0090]     The login server returns both the login status and the activation status of this PC. If the PC is not activated, the Jukebox sends the activate message to the account server. In this example, the account server is configured to require that the user confirm the activation of a new PC. A return code and messaging is returned to the Jukebox. The Jukebox constructs the appropriate confirmation box for the user. The activation is retried following confirmation with a flag that forces activation without further confirmation. The Jukebox can now reissue the getLicense call.  
         [0091]     For downloads, enhanced performance can be achieved by storing the first N seconds of audio data in a semi-clear (i.e. very light encryption) format, such as can be used for track “samples.” While the first N seconds of data is being played, a background thread then opens DRM&#39;d content. After the DRM file is opened, and the semi-clear content has finished playing (this may be before N seconds), the DRM-protected content is seamlessly transitioned to and rendering is continued from there.  
         [0092]     When a track is provided into JB system, the decoder will first identify it as a DRM track, seek to the end of the track, “grab” the offset (i.e. the N seconds), and then seek to there and create a data stream starting point. In a specific embodiment, a custom tag called MM/ActualTrackDuration of type WMT_TYPE_DWORD can be created which will contain the actual track time in milliseconds. Note that the entire metadata set must be duplicated in the clear N seconds audio data portion of the file as well as the DRM&#39;d content area. It must be in the clear portion in order to optimize performance related to fetching tags, and it must exist in the protected area in order to maintain interoperability.  
         [0093]     Accordingly, in one embodiment, when a purchased track is downloaded, in addition to downloading the license and the DRM track, an N second (unprotected) clip associated with that track is first downloaded. The N second clip is first played. Meanwhile, in a background thread the actual DRM content is opened. The DRM content must be opened within N seconds At the end of the N second clip, the download process “jumps over” to the DRM track which has been opened already, and content downloading continues. Thus, in an embodiment the DRM track is appended to an associated N second clip at the location (time N) in the DRM track at which the clip ends.  
         [0094]      FIG. 11  is a flowchart of a method of importing/playing a file subject to DRM requirements  1101 . The user opens an unlicensed DRM file using JB ( 1101 ). JB checks the license status of the file ( 1102 ). If the file is already licensed, JB can play/burn or otherwise access the contents of the file ( 1103 ). If the file is not licensed, JB will request a license using the URL embedded in the file and passing extra information including the PCID of the current machine ( 1104 ). The login cookie that rides this request identifies the user. The license server (through the account server) requests a license for the particular track, for the particular user, for the particular PC.  
         [0095]     The license server either issues the license ( 1103 ) or returns an error that describes why the license was not issued ( 1106 ,  1112 ,  1113 ). If the user is logged in, but has not yet activated, the PC is activated ( 1105 ). If the user is not logged in, the user must login before a license can be obtained ( 1106 ,  1107 ).  
         [0096]     The response from the login server includes the activation state of the current PC. If the response indicates that the login succeeded and the PC is already active, JB re-requests the license ( 1104 ). If the response indicates that the login succeeded but the PC is not activated, the PC is activated ( 1105 ). If the PC activation ( 1105 ) may require explicit confirmation ( 1108 ), or it may fail if the maximum number of PCs have already been allocated ( 1110 ). If PC activation succeeds, the license request is retried.  
         [0097]      FIG. 12  is a flowchart of a PC activation request process  100 . The activation request is sent via https to the account server. The account server reads the per_id and PCID from the login cookie ( 1001 ). The PCID is compared against other PCIDs in the account ( 1002 ). The PCIDs may not match exactly if the user has reconfigured hardware. The PCID could be stored as a new “alias” for this PC if it is determined that the PCID is a match, but not an exact match ( 1003 ). The activation status of the existing PC is returned. Existing PCs may be active, deactivated by the user, or deactivated by customer support. If the PCID does not match an existing PC, the check is made to see if the maximum number of PCs is already active. If so, an error is returned.  
         [0098]     Next, business logic is checked to see if the user must confirm the activation of a PC. In one embodiment, the first PC is silently activated, but the user must confirm activation of PCs two and three. If a confirmation is needed, a special return code is generated along with the text of the messaging to use. The activation request can be flagged to indicate it is in response to a user confirmation. In this case, the activation proceeds. The PCID is added to the list of PCs associated with the account and marked as activated ( 1004 ). An email is generated to confirm the activation and to help educate the user about activation issues ( 1005 ).  
         [0099]     Account creation and activation are integrated into the track purchase process: for example, when an unauthorized user attempts to purchase a track, they are encouraged to activate or set up an account. If they succeed in setting up the account, the purchase is completed. Track purchase is, by default, a cart-less “micropay” system: i.e. the credit card is authorized as part of setting up an account. As each track is purchased, it is added to an open invoice associated with the account. When the invoice reaches a certain size or age, the credit card is charged and/or the invoice is closed. A separate shopping cart purchase process could allow users to purchase tracks using a cart and checkout.  
         [0100]     When a logged-out user accesses a service of the JB system, they will be presented with a Login/Signup page, as shown in  FIG. 13 . Users with accounts will be expected to log in from this page. Users without accounts will be enabled to sign up. The Signup process is customized to offer whatever service the user has just accessed, as shown in the example depicted in  FIG. 14 . Customers from countries that are not eligible for a service will see a message to that effect when they access the service. This is based on the country reported from JB (which uses the EREG data). These users will not see a SignUp button. If the Country reported by the Jukebox is incorrect, the system aborts the account creation process or changes offerings if a user reports an ineligible country in the Billing Info page. Popup info pages handle detailed product marketing.  
         [0101]      FIG. 16  is a functional flow diagram of a login/new account setup process  200 . Users that access a Nova feature and are not logged in see a page allowing them to login or initiate the account creation process ( 201 ). If the user logs into an account, he or she enters the process to activate his or her account ( 300 ). A new user can create an account ( 400 ) and become logged in to the JB system. All paths through account creation or login, whether successful or not, eventually lead back to the referring page ( 203 ). If the creation or login was successful, this will result in the completion of track purchase. The Login/Setup Page ( 201 ), as illustrated in  FIG. 17  is displayed when a user accesses a feature that requires login. The messaging at the top of this page will change depending on the context.  
         [0102]      FIGS. 18-21  show various UIs for controlling a JB in accordance with exemplary embodiments.  FIG. 18  is a UI  1800  of a radio service in accordance with an exemplary embodiment. In this embodiment, the UI  1800  is displayed as a web page loaded into a web browser component that is integrated with the Jukebox. The web page includes scripts (e.g. JavaScript) that can control certain elements of the presentation, and which can post and respond to events without requiring interaction with the server that loaded the web page. In particular, the scripts running in the web page can perform the actions required of the UI  1800  to instigate a track purchase as outlined above. One skilled in the art will recognize that there are many possible presentations of the catalog of music available for purchase and that as is customary with web based systems of this sort, the presentations can be changed frequently without departing from core functionality. Such presentations can be built using web authoring tools and other known technologies for building web pages.  
         [0103]     The UI  1800  includes a radio service display window  1802  that sequentially lists tracks as they are played in a radio session. Each track may be associated with a information control button, designated in  FIG. 18  as an “i” that the user can select to be linked to further information regarding the track. Individual tracks, whether currently-playing or recently-played, may also be associated with a download and purchase function, as indicated by a “buy” button next to the track title shown in  FIG. 18 . In one embodiment, the user can highlight the entire track title, and if purchasing the track is an option, i.e. allowed by license or other mechanism, then the purchase function will appear. Downloaded tracks related to the radio service may be stored as other purchased and downloaded tracks.  
         [0104]      FIG. 19  shows an exemplary control bar. Control bar elements include a status window  4102 . If the user is not logged in, the status window  4102  displays a “sign in” or similar message. If the user is logged in, the status window  4102  shows, user name|account type, if relevant. A home button  4104  takes the user to guide, radio or download home, depending on the entry point used. If the entry mode cannot be determined, (i.e. hyperlink from newsletter) the system assumes the download mode.  
         [0105]     A back/forward button  4106  is provided. The back/forward button  4106  does not differentiate between mode, that is, the back button will navigate back through the page history switching modes as appropriate. A radio quality control  4108  allows a user to adjust the quality of the played content, such as “Low,” “Med,” and “CD” quality. A help button  4110  pulls up a help menu. An account button  4112  pulls up an account log in page. A personalize button  4114  pulls up a personalization process for opt-out users. For opt-in users, this allows the user to edit his or her profile. In one embodiment, the button takes the user to the favorites manager.  
         [0106]     A search bar  4116  is a DHTML drop-down menu, with artist, album and track options. Artist search includes composers and works. Results show an artist hyperlink. Album search does not include fuzzy matching, and shows all exact match albums, listed according to popularity. Results show an album hyperlink and an artist hyperlink for returned results. Track search also does not include fuzzy matching, and shows all exact match track names, listed in terms of popularity. Results show artist and album hyperlinks in returned results.  
         [0107]      FIG. 20  shows an example UI pull down menu for setting up an account.  FIG. 21  shows an example UI for controlling various settings.  
         [0108]     Although a few embodiments have been described in detail above, other modifications are possible. The functional or logic flows depicted herein do not require the particular order shown, or sequential order, to achieve desirable results. Other embodiments may be within the scope of the following claims.