RELATED APPLICATIONS This application claims the priority of the following applications, which are herein incorporated by reference: U.S. Provisional Application Ser. No. 60/705,764, entitled, “SYSTEMS AND METHODS FOR PRESENTING MEDIA CONTENT”, filed 5 Aug. 2005; U.S. Provisional Application Ser. No. 60/705,969, entitled, “SYSTEMS AND METHODS FOR USING PERSONAL MEDIA DEVICE”, filed 5 Aug. 2005; and U.S. Provisional Application Ser. No. 60/705,747, entitled, “PERSONAL MEDIA DEVICE AND METHODS OF USING SAME”, filed 5 Aug. 2005.
TECHNICAL FIELD This disclosure relates to the queuing of purchase transactions and, more particularly, to the queuing of purchase transactions for media content from a media distribution system.
BACKGROUND Media distribution systems (e.g., the Rhapsody™ service offered by RealNetworks, Inc of Seattle, Wash.) may distribute media content (e.g., audio files, video files, and audio/video files) from a media server to a client electronic device (e.g., an MP3 player). A media distribution system may distribute media content by allowing a user to download media data files and/or receive and process media data streams.
When listening to a particular piece of media content, the user may wish to purchase such media content from the media distribution system, Unfortunately, if the client electronic device is not currently communicating with the media distribution system, the process of purchasing such media content may prove to be overly complicated.
SUMMARY OF DISCLOSURE In a first implementation, a method presents identifying information associated with at least one media content item, the identifying information being presented to a user on a personal media device. A purchase request to purchase the at least one media content item associated with the identifying information is received. Upon receiving the purchase request, a media content item identifier associated with the at least one media content item is stored in a purchase queue to initiate purchase of the at least one media content item at a later time.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will become apparent from the description, the drawings, and the claims.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a diagrammatic view of a DRM process, a media distribution system, a client application, a proxy application, and a personal media device coupled to a distributed computing network;
FIG. 2 is an isometric view of the personal media device ofFIG. 1;
FIG. 3 is a diagrammatic view of the personal media device ofFIG. 1;
FIG. 4 is a display screen rendered by the client application ofFIG. 1;
FIG. 5 is a display screen rendered by the client application ofFIG. 1;
FIG. 6 is a display screen rendered by the client application ofFIG. 1;
FIG. 7 is a display screen rendered by the client application ofFIG. 1;
FIG. 8 is a display screen rendered by the client application ofFIG. 1;
FIG. 9 is a display screen rendered by the proxy application ofFIG. 1;
FIG. 10 is a display screen rendered by the proxy application ofFIG. 1;
FIG. 11 is a display screen rendered by the proxy application ofFIG. 1;
FIG. 12 is a diagrammatic view of the media distribution system, personal media device, and distributed computing network ofFIG. 1;
FIG. 13 is a diagrammatic view of the media distribution system, personal media device, and distributed computing network ofFIG. 1;
FIG. 14 is a diagrammatic view of the two personal media devices coupled to each other with a secure communication channel;
FIG. 15 is a diagrammatic view of an asymmetric key block;
FIG. 16 is a diagrammatic view of a system for subscription based digital rights management (DRM) on a personal media device;
FIG. 17 is a flow chart illustrating a method of subscription based digital rights management on a personal media device;
FIG. 18 is a diagrammatic view of a system for bulk licensing pre-loaded content on a personal media device;
FIG. 19 is a flow chart illustrating a method of bulk licensing pre-loaded content;
FIG. 20 is a flow chart illustrating a method of rendering pre-loaded content;
FIG. 21 is a diagrammatic view of a system for queuing media content items on a personal media device for future purchase;
FIG. 22 is a flow chart illustrating a method of queuing media content items for future purchase;
FIG. 23 is a flow chart illustrating a method of purchasing media content items queued for future purchase;
FIG. 24 is a diagrammatic view of a system for automatically managing media content on a personal media device;
FIG. 25 is a flow chart illustrating a method of automatically loading media content;
FIG. 26 is a flow chart illustrating a method of automatically removing media content;
FIG. 27 is a diagrammatic view of a system for transferring playlists between personal media devices;
FIG. 28 is a flow chart illustrating a method of transferring playlists between personal media devices;
FIG. 29 is a flow chart illustrating a method of processing playlists transferred between personal media devices;
FIG. 30 is a diagrammatic view of a system for exchanging and dynamically updating user profiles on a personal media device;
FIG. 31 is a flow chart illustrating a method of exchanging user profiles between personal media devices;
FIG. 32 is a flow chart illustrating a method of dynamically updating user profiles;
FIG. 33 is a diagrammatic view of a system for comparing user media personas on a personal media device; and
FIG. 34 is a flow chart illustrating a method of comparing user media personas on a personal media device.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS System Overview:
Referring toFIG. 1, there is shown a DRM (i.e., digital rights management)process10 that is resident on and executed bypersonal media device12. As will be discussed below in greater detail,DRM process10 allows a user (e.g., user14) ofpersonal media device12 to manage media content resident onpersonal media device12.Personal media device12 typically receivesmedia content16 frommedia distribution system18.
As will be discussed below in greater detail, examples of the format of themedia content16 received frommedia distribution system18 may include: purchased downloads received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use in perpetuity); subscription downloads received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use while a valid subscription exists with media distribution system18); and media content streamed frommedia distribution system18, for example. Typically, when media content is streamed from e.g.,computer28 topersonal media device12, a copy of the media content is not permanently retained onpersonal media device12. In addition tomedia distribution system18, media content may be obtained from other sources, examples of which may include but are not limited to files ripped from music compact discs.
Examples of the types ofmedia content16 distributed bymedia distribution system18 include: audio files (examples of which may include but are not limited to music files, audio news broadcasts, audio sports broadcasts, and audio recordings of books, for example); video files (examples of which may include but are not limited to video footage that does not include sound, for example); audio/video files (examples of which may include but are not limited to a/v news broadcasts, a/v sports broadcasts, feature-length movies and movie clips, music videos, and episodes of television shows, for example); and multimedia content (examples of which may include but are not limited to interactive presentations and slideshows, for example).
Media distribution system18 typically provides media data streams and/or media data files to a plurality of users (e.g.,users14,20,22,24,26). Examples of such amedia distribution system18 include the Rhapsody™ service and Rhapsody-To-Go™ service offered by RealNetworks™ of Seattle, Wash.
Media distribution system18 is typically a server application that resides on and is executed by computer28 (e.g., a server computer) that is connected to network30 (e.g., the Internet).Computer28 may be a web server running a network operating system, examples of which may include but are not limited to Microsoft Windows 2000 Server™, Novell Netware™, or Redhat Linux™.
Typically,computer28 also executes a web server application, examples of which may include but are not limited to Microsoft IIS™, Novell Webserver™, or Apache Webserver™, that allows for HTTP (i.e., HyperText Transfer Protocol) access tocomputer28 vianetwork30.Network30 may be connected to one or more secondary networks (e.g., network32), such as: a local area network; a wide area network; or an intranet, for example.
The instruction sets and subroutines ofmedia distribution system18, which are typically stored on astorage device34 coupled tocomputer28, are executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intocomputer28.Storage device34 may include but are not limited to a hard disk drive, a tape drive, an optical drive, a RAID array, a random access memory (RAM), or a read-only memory (ROM).
Users14,20,22,24,26 may accessmedia distribution system18 directly throughnetwork30 or throughsecondary network32. Further, computer28 (i.e., the computer that executes media distribution system18) may be connected to network30 throughsecondary network32, as illustrated withphantom link line36.
Users14,20,22,24,26 may accessmedia distribution system18 through various client electronic devices, examples of which may include but are not limited topersonal media devices12,38,40,42,client computer44, personal digital assistants (not shown), cellular telephones (not shown), televisions (not shown), cable boxes (not shown), internet radios (not shown), or dedicated network devices (not shown), for example.
The various client electronic devices may be directly or indirectly coupled to network30 (or network32). For example,client computer44 is shown directly coupled tonetwork30 via a hardwired network connection. Further,client computer44 may execute a client application46 (examples of which may include but are not limited to Microsoft Internet Explorer™, Netscape Navigator™, RealRhapsody™ client, RealPlayer™ client, or a specialized interface) that allows e.g.,user22 to access and configuremedia distribution system18 via network30 (or network32).Client computer44 may run an operating system, examples of which may include but are not limited to Microsoft Windows™, or Redhat Linux™.
The instruction sets and subroutines ofclient application46, which are typically stored on astorage device48 coupled toclient computer44, are executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intoclient computer44.Storage device48 may include but are not limited to a hard disk drive, a tape drive, an optical drive, a RAID array, a random access memory (RAM), or a read-only memory (ROM).
As discussed above, the various client electronic devices may be indirectly coupled to network30 (or network32). For example,personal media device38 is shown wireless coupled tonetwork30 via awireless communication channel50 established betweenpersonal media device38 and wireless access point (i.e., WAP)52, which is shown directly coupled tonetwork30.WAP52 may be, for example, an IEEE 802.11a, 802.11b, 802.11g, Wi-Fi, and/or Bluetooth device that is capable of establishing thesecure communication channel50 betweenpersonal media device38 andWAP52. As is known in the art, all of the IEEE 802.11x specifications use Ethernet protocol and carrier sense multiple access with collision avoidance (i.e., CSMA/CA) for path sharing. The various 802.11x specifications may use phase-shift keying (i.e., PSK) modulation or complementary code keying (i.e., CCK) modulation, for example. As is known in the art, Bluetooth is a telecommunications industry specification that allows e.g., mobile phones, computers, and personal digital assistants to be interconnected using a short-range wireless connection.
In addition to being wirelessly coupled to network30 (or network32), personal media devices may be coupled to network30 (or network32) via a proxy computer (e.g.,proxy computer54 forpersonal media device12,proxy computer56 forpersonal media device40, andproxy computer58 forpersonal media device42, for example).
Personal Media Device:
For example and referring also toFIG. 2,personal media device12 may be connected toproxy computer54 via adocking cradle60. Typically,personal media device12 includes a bus interface (to be discussed below in greater detail) that couplespersonal media device12 to dockingcradle60. Dockingcradle60 may be coupled (with cable62) to e.g., a universal serial bus (i.e., USB) port, a serial port, or an IEEE 1394 (i.e., FireWire) port included withinproxy computer54. For example, the bus interface included withinpersonal media device12 may be a USB interface, anddocking cradle60 may function as a USB hub (i.e., a plug-and-play interface that allows for “hot” coupling and uncoupling ofpersonal media device12 and docking cradle60).
Proxy computer54 may function as an Internet gateway forpersonal media device12. Accordingly,personal media device12 may useproxy computer54 to accessmedia distribution system18 via network30 (and network32) and obtainmedia content16. Specifically, upon receiving a request formedia distribution system18 frompersonal media device12, proxy computer54 (acting as an Internet client on behalf of personal media device12), may request the appropriate web page/service from computer28 (i.e., the computer that executes media distribution system18). When the requested web page/service is returned toproxy computer54,proxy computer54 relates the returned web page/service to the original request (placed by personal media device12) and forwards the web page/service topersonal media device12. Accordingly,proxy computer54 may function as a conduit for couplingpersonal media device12 tocomputer28 and, therefore,media distribution system18.
Further,personal media device12 may execute a device application64 (examples of which may include but are not limited to RealRhapsody™ client, RealPlayer™ client, or a specialized interface).Personal media device12 may run an operating system, examples of which may include but are not limited to Microsoft Windows CE™, Redhat Linux™, Palm OS™, or a device-specific (i.e., custom) operating system.
DRM process10 is typically a component of device application64 (examples of which may include but are not limited to an embedded feature ofdevice application64, a software plug-in fordevice application64, or a stand-alone application called from within and controlled by device application64). The instruction sets and subroutines ofdevice application64 andDRM process10, which are typically stored on astorage device66 coupled topersonal media device12, are executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12.Storage device66 may be, for example, a hard disk drive, an optical drive, a random access memory (RAM), a read-only memory (ROM), a CF (i.e., compact flash) card, an SD (i.e., secure digital) card, a SmartMedia card, a Memory Stick, and a MultiMedia card, for example.
Anadministrator68 typically accesses and administersmedia distribution system18 through a desktop application70 (examples of which may include but are not limited to Microsoft Internet Explorer™, Netscape Navigator™, or a specialized interface) running on anadministrative computer72 that is also connected to network30 (or network32).
The instruction sets and subroutines ofdesktop application70, which are typically stored on a storage device (not shown) coupled toadministrative computer72, are executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intoadministrative computer72. The storage device (not shown) coupled toadministrative computer72 may include but are not limited to a hard disk drive, a tape drive, an optical drive, a RAID array, a random access memory (RAM), or a read-only memory (ROM).
Referring also toFIG. 3, a diagrammatic view ofpersonal media device12 is shown.Personal media device12 typically includesmicroprocessor150, non-volatile memory (e.g., read-only memory152), and volatile memory (e.g., random access memory154); each of which is interconnected via one or more data/system buses156,158.Personal media device12 may also include anaudio subsystem160 for providing e.g., an analog audio signal to anaudio jack162 for removable engaging e.g., aheadphone assembly164, aremote speaker assembly166, or anear bud assembly168, for example. Alternatively,personal media device12 may be configured to include one or more internal audio speakers (not shown).
Personal media device12 may also include auser interface170 and adisplay subsystem172.User interface170 may receive data signals from various input devices included withinpersonal media device12, examples of which may include (but are not limited to): rating switches74,76; backward skipswitch78; forward skipswitch80; play/pause switch82;menu switch84;radio switch86; andslider assembly88, for example.Display subsystem172 may provide display signals to displaypanel90 included withinpersonal media device12.Display panel90 may be an active matrix liquid crystal display panel, a passive matrix liquid crystal display panel, or a light emitting diode display panel, for example.
Audio subsystem160,user interface170, anddisplay subsystem172 may each be coupled withmicroprocessor150 via one or more data/system buses174,176,178 (respectively).
During use ofpersonal media device12,display panel90 may be configured to display e.g., the title and artist of various pieces ofmedia content92,94,96 stored withinpersonal media device12.Slider assembly88 may be used to scroll upward or downward through the list of media content stored withinpersonal media device12. When the desired piece of media content is highlighted (e.g., “Phantom Blues” by “Taj Mahal”),user14 may select the media content for rendering using play/pause switch82.User14 may skip forward to the next piece of media content (e.g., “Happy To Be Just . . . ” by “Robert Johnson”) using forward skipswitch80; or skip backward to the previous piece of media content (e.g., “Big New Orleans . . . ” by “Leroy Brownstone”) usingbackward skip switch78. Additionally,user14 may rate the media content as they listen to it by using rating switches74,76.
As discussed above,personal media device12 may include abus interface180 for interfacing with e.g.,proxy computer54 viadocking cradle60. Additionally and as discussed above,personal media device12 may be wireless coupled tonetwork30 via awireless communication channel50 established betweenpersonal media device12 and e.g.,WAP52. Accordingly,personal media device12 may include awireless interface182 for wirelessly-couplingpersonal media device12 to network30 (or network32) and/or other personal media devices.Wireless interface182 may be coupled to anantenna assembly184 for RF communication to e.g.,WAP52, and/or an IR (i.e., infrared)communication assembly186 for infrared communication with e.g., a second personal media device (such as personal media device40). Further and as discussed above,personal media device12 may include astorage device66 for storing the instruction sets and subroutines ofdevice application64 andDRM process10. Additionally,storage device66 may be used to store media data files downloaded frommedia distribution system18 and to temporarily store media data streams (or portions thereof) streamed frommedia distribution system18.
Storage device66,bus interface180, andwireless interface182 may each be coupled withmicroprocessor150 via one or more data/system buses188,190,192 (respectively).
As discussed above,media distribution system18 distributes media content tousers14,20,22,24,26, such that the media content distributed may be in the form of media data streams and/or media data files.
Accordingly,media distribution system18 may be configured to only allow users to download media data files. For example,user14 may be allowed to download, frommedia distribution system18, media data files (i.e., examples of which may include but are not limited to MP3 files or AAC files), such that copies of the media data file are transferred fromcomputer28 to personal media device12 (being stored on storage device66).
Alternatively,media distribution system18 may be configured to only allow users to receive and process media data streams of media data files. For example,user22 may be allowed to receive and process (on client computer44) media data streams received frommedia distribution system18. As discussed above, when media content is streamed from e.g.,computer28 toclient computer44, a copy of the media data file is not permanently retained onclient computer44.
Further,media distribution system18 may be configured to allow users to receive and process media data streams and download media data files. Examples of such a media distribution system include the Rhapsody™ and Rhapsody-to-Go™ services offered by RealNetworks™ of Seattle, Wash. Accordingly,user14 may be allowed to download media data files and receive and process media data streams frommedia distribution system18. Therefore, copies of media data files may be transferred fromcomputer28 to personal media device12 (i.e., the received media data files being stored on storage device66); and streams of media data files may be received fromcomputer28 by personal media device12 (i.e., with portions of the received stream temporarily being stored on storage device66). Additionally,user22 may be allowed to download media data files and receive and process media data streams frommedia distribution system18. Therefore, copies of media data files may be transferred fromcomputer28 to client computer44 (i.e., the received media data files being stored on storage device48); and streams of media data files may be received fromcomputer28 by client computer44 (i.e., with portions of the received streams temporarily being stored on storage device48).
Typically, in order for a device to receive and process a media data stream from e.g.,computer28, the device must have an active connection tocomputer28 and, therefore,media distribution system18. Accordingly, personal media device38 (i.e., actively connected tocomputer28 via wireless channel50), and client computer44 (i.e., actively connected tocomputer28 via a hardwired network connection) may receive and process media data streams from e.g.,computer28.
As discussed above,proxy computers54,56,58 may function as a conduit for couplingpersonal media devices12,40,42 (respectively) tocomputer28 and, therefore,media distribution system18. Accordingly, whenpersonal media devices12,40,42 are coupled toproxy computers54,56,58 (respectively) via e.g., dockingcradle60,personal media devices12,40,42 are actively connected tocomputer28 and, therefore, may receive and process media data streams provided bycomputer28.
User Interfaces:
As discussed above,media distribution system18 may be accessed using various types of client electronic devices, which include but are not limited topersonal media devices12,38,40,42,client computer44, personal digital assistants (not shown), cellular telephones (not shown), televisions (not shown), cable boxes (not shown), internet radios (not shown), or dedicated network devices (not shown), for example. Typically, the type of interface used by the user (when configuringmedia distribution system18 for a particular client electronic device) will vary depending on the type of client electronic device to which the media content is being streamed/downloaded.
For example, as the embodiment shown (inFIG. 2) ofpersonal media device12 does not include a keyboard and thedisplay panel90 ofpersonal media device12 is compact,media distribution system18 may be configured forpersonal media device12 viaproxy application98 executed onproxy computer54.
The instruction sets and subroutines ofproxy application98, which are typically stored on a storage device (not shown) coupled toproxy computer54, are executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intoproxy computer54. The storage device (not shown) coupled toproxy computer54 may include but are not limited to a hard disk drive, a tape drive, an optical drive, a RAID array, a random access memory (RAM), or a read-only memory (ROM).
Additionally and for similar reasons, personal digital assistants (not shown), cellular telephones (not shown), televisions (not shown), cable boxes (not shown), internet radios (not shown), and dedicated network devices (not shown) may useproxy application98 executed onproxy computer54 to configuremedia distribution system18.
Further, the client electronic device need not be directly connected toproxy computer54 formedia distribution system18 to be configured viaproxy application98. For example, assume that the client electronic device used to accessmedia distribution system18 is a cellular telephone. While cellular telephones are typically not physically connectable to e.g.,proxy computer54,proxy computer54 may still be used to remotely configuremedia distribution system18 for use with the cellular telephone. Accordingly, the configuration information (concerning the cellular telephone) that is entered via e.g.,proxy computer54 may be retained within media distribution system18 (on computer28) until the next time that the user accessesmedia distribution system18 with the cellular telephone. At that time, the configuration information saved onmedia distribution system18 may be downloaded to the cellular telephone.
For systems that include keyboards and larger displays (e.g., client computer44),client application46 may be used to configuremedia distribution system18 for use withclient computer44.
Referring also toFIG. 4, when usingclient application46 to accessmedia distribution system18,user22 may be presented with aninformation display screen200 rendered byclient application46.Client application46 typically includes a user interface202 (e.g., a web browser) for interfacing withmedia distribution system18 and viewinginformation display screen200.
When e.g.,user22 streams/downloads media content from e.g.,computer28,media distribution system18 may monitor the media content streamed/downloaded to the user's client electronic device (e.g.,client computer44, for example), resulting in the generation of amedia history file100 for that user. Whilemedia history file100 is typically maintained locally (e.g., maintained on client computer44),media history file100 may alternatively/additionally be maintained remotely (e.g., maintained on computer28) as a remotemedia history file100′.
The user (e.g., user22) may save this media history file (or portions thereof) as a playlist. A playlist is typically a group of tracks (examples of which may include, but are not limited to, songs, videos, news broadcasts, sports broadcasts, etc) thatmedia distribution system18 will render in sequence. This, in turn, allows the user to compile custom music compilations (in the form of multiple playlists).
Ahistory window204 may be rendered byclient application46 that itemizes the information contained withinmedia history file100. In this example,history window204 itemizes ten (10) media data streams (e.g., “Jailhouse Rock”; “Surf City”; “Runaround Sue”; “The Wanderer”; “The Great Pretender”; “Blueberry Hill”; “I'm Walkin'”; “Blue Christmas”; “Yakety Yak”; and “Peggy Sue”), thus indicating thatuser22 had previously listened to those ten (10) media data streams.
In addition to media data streams (i.e., media data streams received from a remote device e.g., computer28),client application46 allowsuser12 to render local media data files. As discussed above, a local media data file may be a purchased download received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use in perpetuity); a subscription download received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use while a valid subscription exists with media distribution system18); and/or a media data file extracted (i.e., ripped) from e.g., a music compact disc, for example. These local media data files are typically stored locally on e.g.,storage device48 coupled toclient computer44.
Ifuser22 wishes to render a local media data file (i.e., a file stored on client computer44),user22 may e.g., select the file(s) to be rendered usingclient application46. Accordingly,user22 may select the dropdown “File”menu206 usingscreen pointer208, which is controllable by a pointing device (e.g., a computer mouse, not shown). Selecting the “Open” command may result inclient application46 renderingfile management window210, which allowsuser22 to select local media data files for playback.
In this example,file management window210 defines three (3) local media data files, namely: “Chantilly Lace”212; “Great Balls of Fire”214; and “Tutti Frutti”216, all of which are stored within the folder “My Music”.User22 may select any (or all) of these files for playback onclient application46.
Asearch window218 allows a user (e.g., user22) to search for media content. For example,user22 may enter search terms (e.g., “Elvis Presley”), select the appropriate term type (e.g., artist), and execute a query. In the event that multiple artists satisfy the query, a result set is generated from whichuser22 may select e.g., the appropriate artist. Once the appropriate artist is selected,user22 may review the various albums released by the selected artist (or that include tracks by the selected artist).User22 may then render one or more of the various tracks included within any of the albums. Once a track is rendered, identifying information concerning the track rendered is added to localmedia history file100 and/or remotemedia history file100′ and is included inhistory window204. In addition to being able to search for media content by artist,user14 may also be able to search for media content by e.g., keyword, track, album and/or composer.
Referring also toFIG. 5 and assuming thatuser22 selects all three local media data files for playback,media history file100 is amended to include three additional entries, namely one for “Chantilly Lace”; one for “Great Balls of Fire”; and one for “Tutti Frutti”. Accordingly, ashistory window204 itemizes the information contained withinmedia history file100,history window204 will include three additional entries (i.e.,entries220,222,224), which correspond to local media data file “Chantilly Lace”212; local media data file “Great Balls of Fire”214; and local media data file “Tutti Frutti”216.
Assuming thatuser22 wishes to save this collection of music for future playback,user22 may save the current media history file100 (or a portion thereof) as a playlist102 (FIG. 1). Whileplaylist102 is typically maintained locally (e.g., maintained on client computer44),playlist102 may alternatively/additionally be maintained remotely (e.g., maintained on computer28) as aremote playlist102′.
Referring also toFIG. 6,user22 may select the “save” button240 (using screen pointer208). Once the “save”button240 is selected, aplaylist naming window242 is rendered (by client application46) that allowsuser22 to specify a unique name forplaylist102 within thename field244 ofplaylist naming window242.
Assuming thatuser22 selects “50's Hits” as a playlist name,playlist102 is saved (i.e., as “50's Hits”) and defines the location of all of the pieces of media content itemized withinhistory window204.
Referring also toFIG. 7, onceplaylist102 is stored, alink260 to playlist102 (e.g., “50's Hits”) appears indirectory window262.User22 may then select link260 usingscreen pointer208. Once selected, the tracks included within playlist102 (e.g., “50's Hits”) are itemized within a playlist window264 (e.g., a web page) viewable viauser interface202. As discussed above, ten of these entries (namely “Jailhouse Rock”; “Surf City”; “Runaround Sue”; “The Wanderer”; “The Great Pretender”; “Blueberry Hill”; “I'm Walkin'”; “Blue Christmas”; “Yakety Yak”; and “Peggy Sue”) define the location of media data streams and three of these entries (namely “Tutti Frutti”; “Chantilly Lace”; and “Great Balls of Fire”) define the location of media data files.
Typically,
playlist window264 includes hyperlinks that locate (i.e., provide addresses for) the streams/files associated with the individual entries itemized within
playlist102. This location information is stored within
playlist102. For example, the following table correlates the track name of an entry in
playlist102 with an address for the stream/file associated with that track name:
|
|
| Track Name | Address |
|
| Jailhouse | www.musicshop.com\songs\jailhouse_rock.ram |
| Rock |
| Surf City | www.musicshop.com\songs\surf_city.ram |
| Runaround | www.musicshop.com\songs\runaround_sue.ram |
| Sue |
| The Wanderer | www.musicshop.com\songs\the_wanderer.ram |
| The Great | www.musicshop.com\songs\the_great_pretender.ram |
| Pretender |
| Blueberry Hill | www.musicshop.com\songs\blueberry_hill.ram |
| I'm Walkin' | www.musicshop.com\songs\im_walkin.ram |
| Blue Christmas | www.musicshop.com\songs\blue_christmas.ram |
| Yakety Yak | www.musicshop.com\songs\yakety_yak.ram |
| Peggy Sue | www.musicshop.com\songs\peggy_sue.ram |
| Tutti Frutti | c:\my music\tutti_frutti.mp3 |
| Chantilly Lace | c:\my music\chantilly_lace.mp3 |
| Great Balls | c:\my music\great_balls_of_fire.mp3 |
| of Fire |
|
As the first ten entries (namely “Jailhouse Rock”; “Surf City”; “Runaround Sue”; “The Wanderer”; “The Great Pretender”; “Blueberry Hill”; “I'm Walkin'”; “Blue Christmas”; “Yakety Yak”; and “Peggy Sue”) identify media data streams, the address provided for each entry points to a media stream available from e.g.,media distribution system18. Further, as the last three entries (namely “Tutti Frutti”; “Chantilly Lace”; and “Great Balls of Fire”) identify media data files, the address provided for each entry points to a media data file available from e.g.,client computer44.
Playlist window264 is typically tabular and may include acolumn266 identifying a media type (i.e., media data stream or media data file, for example) for each entry withinplaylist window264. Typically,column266 includes icons that identify the media type (e.g.,icon268 identifies a media data file andicon270 identifies a media data stream).User22 may select the “play”button272 to renderplaylist102.
As discussed above,media distribution system18 typically provides media data streams and/or media data files to users (e.g., user22). Typically, metadata is associated with each media data stream provided bymedia distribution system18. This metadata may include (but is not limited to) an artist identifier, an album identifier, a track identifier, an album cover image, and a music genre identifier, for example.
Accordingly, whenever e.g.,user12 renders a remote media data stream,media distribution system18 may compile and save this metadata (on a per-user basis) to track e.g., listening trends and musical preferences of individual users, for example.
As discussed above, a local media data file may be a purchased download received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use in perpetuity); a subscription download received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use while a valid subscription exists with media distribution system18); and/or a media data file extracted (i.e., ripped) from e.g., a music compact disc, for example.
If the purchased download and/or the subscription download were provided bymedia distribution system18, these local media data files would typically also include the metadata described above. Accordingly, when these purchased/subscription downloads are rendered by e.g.,user22, the metadata concerning these purchased/subscription downloads may be transmitted fromcomputer44 tocomputer28, such that the metadata is compiled and saved (on a per user basis) to track e.g., listening trends and musical preferences, for example.
However, for media data files that were e.g., extracted from music compact discs, these data files may not include the above-described metadata. As discussed above, media data files (i.e., files stored on client computer44) may be rendered usingclient application46 and added to playlists (e.g., playlist102). Accordingly, wheneveruser22 attempts to add a media data file (that does not include metadata) to a playlist (e.g., playlist102),user22 may be prompted to provide metadata concerning that media data file.
Referring also toFIG. 8 and continuing with the above-stated example, ifuser22 attempts to save a playlist (e.g., playlist102) that includes three local media data files (namely “Tutti Frutti”; “Chantilly Lace”; and “Great Balls of Fire”), assuming that these three local media data files do not include metadata,client application46 may render ametadata entry form280 that allowsuser22 to enter metadata concerning each of the three media data files.
In this example,metadata entry form280 includes five user-editable fields, namely anartist field282, analbum field284, atrack field286, an albumcover image field288, and a music genre field290. Albumcover image field288 may allowuser22 to define a drive, a path, and a filename for an album cover image. Music genre field290 may be a drop-down menu (operable via screen pointer208) that allowsuser22 to select a music genre from a number of predefined music genres (not shown).
Typically, if the title of the media data file is descriptive of the track name, thetrack field286 may be automatically-populated with whatclient application46 suspects is the track title. As the first local media data file is named “tutti frutti”,track field286 would typically be populated with the suspected name “tutti frutti”.User22 may populate the remaining fields and select the save button292 (using screen pointer208) or alternatively select the cancelbutton294.
In order to further automate the metadata generation process,client application44 may interface with a remote metadata database (not shown) served by e.g.,media distribution system18 or a third party (not shown). This metadata database may define metadata for various tracks and albums. An example of such a database is the CDDB™ database maintained by Gracenote™ of Emeryville, Calif. (www.gracenote.com). For example, ifuser22 ripped each track from an entire compact disc, the metadata database may be accessed byclient application44 and a query may be structured that defines e.g., the total number of tracks included on the compact disc, the length of each track included on the compact disc, and the total length of the compact disc. Assuming that a definitive result is produced by this query, the metadata for each track ripped from the compact disc would be produced. In the event that an indefinite result set (i.e., one that identifies multiple possible compact discs) is generated,user22 may be prompted to select the appropriate compact disc from a list of possible matches (not shown).
As discussed above, the type of interface used by the user (when configuringmedia distribution system18 for a client electronic device) may vary depending on the type and the capabilities of the client electronic device to which the media content is being streamed/downloaded. Accordingly and as discussed above,media distribution system18 may be configured forpersonal media device12 viaproxy application98 executed onproxy computer54.
Proxy application98 may be automatically executed uponpersonal media device12 being placed intodocking cradle60 by e.g.,user14. Alternatively,proxy application98 may be fully or partially loaded upon boot up ofproxy computer54.Proxy application98 may then operate in the background untilpersonal media device12 is placed intodocking cradle60, at whichtime proxy application98 may be fully loaded and/or moved to the foreground for execution. Further,proxy application98 may be manually executed byuser14. As will be discussed below in greater detail, proxy application98 (once executed) may be used to e.g., configurepersonal media device12 and transfer media data files to and remove media data files frompersonal media device12, for example.
Referring also toFIG. 9, when usingproxy application98 to accessmedia distribution system18,user14 may be presented with ainformation display screen300 rendered byproxy application98.Proxy application98 typically includes a user interface302 (e.g., a web browser) for interfacing withmedia distribution system18 and viewinginformation display screen300.
Asearch window304 allows a user (e.g., user14) to search for media content. For example,user14 may enter search terms (e.g., “Elvis Presley”) intosearch field306, select the appropriate term type (e.g., artist), and execute a query. In the event that multiple artists satisfy the query, a result set is generated from whichuser14 may select e.g., the appropriate artist. Once the appropriate artist is selected,user14 may review the various albums released by the selected artist (or that include tracks by the selected artist).User14 may then download (for use on personal media device12) one or more of the various tracks included within any of the albums. In addition to being able to search for media content by artist,user14 may also be able to search for media content by e.g., keyword, track, album and/or composer.
Additionally, in a fashion similar to that ofclient application46,proxy application98 may be configured to allowuser12 to render (via proxy computer54) one or more of the various tracks included within any of the albums of the selected artist.
Acontent window308 may be rendered byproxy application98 that allowsuser14 to review the contents ofpersonal media device12. As discussed above,personal media device12 is coupled toproxy computer54 via e.g., a USB port, serial port, or FireWire port. Upon or during execution ofproxy application98,proxy application98 may pollpersonal media device12 to retrieve information concerning the media content currently ondevice12. This polling may occur in a fashion similar to the manner in which the content of a USB hard drive is determined. In this particular example,content window308 includes ten (10) entries, namely: “Jailhouse Rock”; “Surf City”; “Runaround Sue”; “The Wanderer”; “The Great Pretender”; “Blueberry Hill”; “I'm Walkin'”; “Blue Christmas”; “Yakety Yak”; and “Peggy Sue”, thus indicating that ten (10) media data files had been previously downloaded topersonal media device12, which are typically stored onstorage device66 ofpersonal media device12.
Content window308 may be tabular and itemize various pieces of information concerning the downloaded files, including the track310, theartist312, the track length314 and thetrack size316. Additionally,proxy application98 may pollpersonal media device14 to retrieve device identification information, which is rendered within adevice type field320 and a deviceserial number field322 included withincontent window308. Further,content window308 may include asummary information field324 concerning the current capacity ofdevice12, including one or more of e.g., “Unused Space” in gigabytes; “Used Space” in gigabytes; “Unused Space” in percentage of total capacity; and “Used Space” in percentage of total capacity, for example.
Referring also toFIG. 10 and continuing with the above-stated example, assume thatuser14 enters the search term “Elvis Presley” intosearch field306 ofsearch window304, selects the term type “artist” viadropdown menu340, and executes the query by selecting the “Go”button342 withscreen pointer208.
Assuming that no other artist satisfies the query,information screen300 may be presented touser14 with information concerning Elvis Presley, which may include: anartist information screen344, atop track list346, analbum list348, and asimilar artist list350, for example.
User14 may download media data files frommedia distribution system18 for use onpersonal media device12 by selecting thedownload button352 corresponding to the track to be downloaded. Additionally,user14 may download groups of tracks (e.g., each track included withintop track list346, or all tracks included within an single album) by selecting the download allbutton354 corresponding to the tracks to be downloaded.
Onceuser14 selects a track for downloading,proxy application98 may render adownload window356 that e.g., includes atrack title field358 that identifies the title of the track being downloaded and anartist field360 that identifies the artist of the track being downloaded.
As discussed above, files may be downloaded frommedia distribution system18 as purchased downloads (i.e., media content licensed to e.g.,user14 for use in perpetuity), or subscription downloads (i.e., media content licensed to e.g.,user14 for use while a valid subscription exists with media distribution system18). Provideduser14 has a current subscription withmedia distribution system18, there is typically no additional fee charged for each subscription download, as the downloaded media content is only renderable while the user has a valid subscription. However, a user typically must pay a fee (e.g., 79¢, 89¢, or 99¢, for example) for each purchased download, as the media content is renderable regardless of the status of the user's subscription.
Accordingly,download window356 may include apurchase button362 and adownload button364, both of which are selectable viascreen pointer208. In this example, ifuser14 selectspurchase button362 withscreen pointer208, a media data file for “Hound Dog” by “Elvis Presley” will be transferred fromcomputer28 topersonal media device12. Typically,user14 will be charged e.g., a one-time download fee for downloading this media data file. However, as this is a purchased download, the media data file received is renderable regardless of the status of the user's subscription withmedia distribution system18.
Alternatively, ifuser14 selectsdownload button364 withscreen pointer208, a media data file for “Hound Dog” by “Elvis Presley” will be transferred fromcomputer28 topersonal media device12. Typically,user14 will not be charged a fee for downloading this media data file. However, as this is a subscription download, the media data file received is only renderable whileuser14 has a valid subscription withmedia distribution system18.
Download window356 typically also includes a cancelbutton366 for allowinguser14 to cancel the download andclose download window356.
Ifuser14 selects eitherpurchase button362 ordownload button364, the download of the selected media data file will be initiated.Download window356 may include adownload status indicator368 for indicating the progress of the download of e.g., “Hound Dog” by “Elvis Presley”.
Referring also toFIG. 11, once the download of the media data file for “Hound Dog” by “Elvis Presley” is completed,content window308 will be updated to include anentry380 for “Hound Dog” by “Elvis Presley”, indicating that “Hound Dog” by “Elvis Presley” was successfully downloaded frommedia distribution system18 topersonal media device12.
In a fashion similar to that described above concerningclient application46,user14 may useproxy application98 to define playlists concerning various media data files stored onpersonal media device12. For example, assume thatuser14 wished to save the first thirteen tracks (namely “Jailhouse Rock”; “Surf City”; “Runaround Sue”; “The Wanderer”; “The Great Pretender”; “Blueberry Hill”; “I'm Walkin'”; “Blue Christmas”; “Yakety Yak”; “Peggy Sue”; “Tutti Frutti”; “Chantilly Lace”; and “Great Balls of Fire”) as a playlist,user14 would highlight the desired selection of tracks (using screen pointer208) and select thesave button382 usingscreen pointer208. Aplaylist naming window384 may be rendered (by proxy application98) that allowsuser14 to specify a unique name for the playlist within thename field386 ofplaylist naming window384.
Assuming thatuser14 selects “50's Hits” as a playlist name, playlist104 (FIG. 1) named “50's Hits” is defined that locates (within personal media device12) all of the pieces of media content itemized withinplaylist104. Onceplaylist104 is stored, alink388 to playlist104 (e.g., “50's Hits”) appears indirectory window390.User14 may then select link388 usingscreen pointer208.
Once selected, the tracks included within playlist104 (e.g., “50's Hits”) are typically itemized within a playlist window392 (e.g., a web page) viewable viauser interface302.
As with the playlists described above as being generated usingclient application44, playlists generated usingproxy application98 are typically maintained locally (e.g., maintained on personal media device12). However and as discussed above, playlists may alternatively/additionally be maintained remotely (e.g., maintained on computer28) asremote playlist104′.
Device Initialization:
Media distribution system18 is typically a subscription-based service, in that e.g.,user14 subscribes tomedia distribution system18 and pays e.g., a monthly subscription fee to be granted access tomedia distribution system18. Onceuser14 subscribes tomedia distribution system18,user14 may obtain media content (for use with personal media device12) in the form of: purchased downloads received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use in perpetuity); subscription downloads received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use while a valid subscription exists with media distribution system18); and media content streamed frommedia distribution system18, for example. Typically, when accessingmedia distribution system18,user14 must provide user “credentials” that identify the user (e.g., user14) and/or the device (e.g., device12) tomedia distribution system18. Upon receiving these credentials,media distribution system18 may attempt to verify the credentials and, if verified,grant user14 and/ordevice12 access tomedia subscription system18. The credentials received and verified bymedia distribution system18 may include, but are not limited to, a user name, a user password, a user key, a device name, a device password, a device key, and/or one or more digital certificates.
Typically, uponpersonal media device12 being placed intodocking cradle60,personal media device12 establishes a connection withmedia distribution system18 viaproxy computer54. As discussed above,proxy computer54 may function as an Internet gateway forpersonal media device12 and, therefore, allowpersonal media device12 to accesscomputer28 andmedia distribution system18.
Once a connection is establish withmedia distribution system18,DRM process10 may be initiated.DRM process10 is typically executed at the timepersonal media device12 is initially configured (i.e., the first timepersonal media device12 establishes a connection with media distribution system18). As will be discussed below in greater detail,DRM process10 may be systematically and repeatedly executed to verify that device12 (and/or user14) are active subscribers ofmedia distribution system18.
Referring also toFIG. 12, at the time of manufacture,personal media device12 may include a private encryption key (e.g., device private key400) and a public encryption key (e.g., device public key402) stored in non-volatile memory (e.g.,ROM152 and/or storage device66).Keys400,402 may be 1024-bit asymmetric encryption keys and may be referred to as DRM (i.e., digital rights management) keys.
As is known in the art, a private key/public key encryption methodology allows users of an unsecure network (e.g., the Internet) to securely exchange data through the use of a pair of encryption keys, namely the private encryption key (e.g., device private key400) and the public encryption key (e.g., device public key402). The private key/public key encryption methodology is typically referred to as an asymmetric encryption methodology, in that the key used to encrypt a message is different than the key used to decrypt the message.
In private key/public key encryption, the private encryption key (e.g., device private key400) and the public encryption key (e.g., device public key402) are typically created simultaneously using the same algorithm (e.g., the RSA algorithm created by Ron Rivest, Adi Shamir, and Leonard Adlemana, for example). Deviceprivate key400 is typically given only to the requesting party and devicepublic key402 is typically made publicly available (e.g., as part of digital certificate404). Typically, deviceprivate key400 is not shared and is maintained securely within e.g.,personal media device12.
Accordingly, when a secure message is to be sent from a sender to a recipient, the public key (e.g., device public key402) of the recipient (which is readily accessible to the sender) is used to encrypt the message. Once encrypted, the message is sent to the recipient and can only be decrypted using the recipient's private key (e.g., device private key400). Asprivate key400 is maintained securely by the recipient, only the recipient can decrypt the encrypted message.
In addition to encrypting and decrypting messages, a sender may authenticate their identity by using their private key (e.g., device private key400) to encrypt a digital certificate, which is then sent to a recipient (i.e., the person to which they are authenticating their identity). Accordingly, when the digital certificate is received by the recipient, the recipient can decrypt the encrypted digital certificate using the sender's public key (e.g., device public key402), thus verifying that the digital certificate was encrypted using the sender's private key (e.g., device private key400) and, therefore, verifying the identity of the sender.
DRM process10 may generate achallenge406, which is typically a random number generated by a random number generation process (not shown) included withinpersonal media device12. Once generated,challenge406 is paired with device digital certificate404 (which typically includes device public key402), to form alicense request408. Devicedigital certificate404, which may be referred to as a DRM digital certificate, may include additional information such as a device serial number (e.g., 137660523-1 from deviceserial number field322,FIG. 9), for example.
As discussed above,proxy application98 allows the owner of device12 (e.g., user14) to: configuredevice12 for use withmedia distribution system18; and configuremedia distribution system18 for use withdevice12. Typically, whenproxy application98 is configured onproxy computer54,user14 may be required to provide user credentials that identify the user (e.g., user14) and define a valid subscription that would allowuser14,device12, andproxy application98 to accessmedia distribution system18. Alternatively or additionally,personal media device12 may be configured to allow the user (e.g., user14) to directly enter the user credentials (via device12) whendevice12 is initially configured.
DRM process10 may provide license request408 (vianetwork30 and/or network32) tomedia distribution system18. Additionally, if defined withinpersonal media device12, a user ID410 (e.g., enumerating the user credentials described above) may also be included withinlicense request408. As discussed above, the user credentials (i.e., included within user ID410) may include, but are not limited to, a user name, a user password, a user key, a device name, a device password, a device key, and/or one or more digital certificates. Prior to being provided tomedia distribution system18,DRM process10 may digitally signlicense request408 using deviceprivate key400.
A digital signature is an electronic signature that uses the private key/public key encryption methodology (described above) and allows a sender of a message to authenticate their identity and the integrity of message sent. A digital signature may be used with both encrypted and non-encrypted messages and does not impede the ability of the receiver of the message to read the message.
For example, assume thatDRM process10 digitally signedlicense request408 prior to providinglicense request408 tomedia distribution system18. When digitally signinglicense request408, a mathematical function is typically performed on the content oflicense request408. For example, a message hash oflicense request408 may be calculated bypersonal media device12, such that a message hash is the mathematical output of a known one-way hash function that transforms a string of characters (e.g., license request408) into a usually shorter fixed-length value that represents the original string of characters. As the hashing function is a one-way mathematical function, once a message hash is generated, the original message cannot be retrieved by processing the message hash.DRM process10 may then encrypt the message hash (using device private key400) to create the digital signature (not shown). This digital signature may then be attached to licenserequest408. Accordingly, while the digital signature is encrypted, the original message (i.e., license request408) need not be. Therefore,license request408 may be processed bymedia distribution system18 even if the digital signature is not processed.
Continuing with the above-stated example,license request408 and the digital signature may be received bymedia distribution system18, andmedia distribution system18 may use the same hash function to generate a message hash oflicense request408.Media distribution408 will also decrypt the digital signature received frompersonal media device12 using device public key402 (included within device digital certificate404) to recreate the message hash calculated bypersonal media device12.Media distribution system18 may then compare the decrypted digital signature to the message hash calculated by themedia distribution system18. If the message hashes match, the integrity oflicense request408 and the identity ofpersonal media device12 are both validated.
Additionally, the integrity of device digital certificate404 (and, therefore, device public key402) may be verified whenlicense request408 is received frompersonal media device12. Digital certificates are typically issued and digitally signed by e.g.,certification authority412 using CAprivate key414. Accordingly, devicedigital certificate404 may be verified by obtaining the CApublic key416 to verify the digital signature of devicedigital certificate404.
Oncechallenge406, devicedigital certificate404, and user ID410 (i.e., license request408) are received bymedia distribution system18,media distribution system18 may accessdata store418 to retrieve subscription information concerning user14 (i.e., the user defined within user ID410) and determine e.g., the date at which the current subscription ofuser14 will expire.Data store418 may be maintained onstorage device34 coupled tocomputer28.
Assume, for illustrative purposes, thatmedia distribution system18 is configured to automatically bill each subscriber on the first of each month for the subscription fee for the upcoming month. Accordingly, on 1 Mar. 2005,user14 will be billed for the cost of their March 2005 subscription. Therefore, ifmedia distribution system18 retrieves subscriptioninformation concerning user14 on 6 Mar. 2005, the subscription information retrieved will indicate thatuser14 has a valid subscription until 31 Mar. 2005.
Accordingly and continuing with the above-stated example, whenlicense request408 is received,media distribution system18 may retrieve subscriptioninformation concerning user14. In this example, the subscription information will indicate thatuser14 is a valid subscriber (to media distribution system18) through 31 Mar. 2005.
Media distribution system18 may generate atimeout indicator420, which indicates e.g., the user's subscription information and the expiration date of the user's current subscription. In this example,timeout indicator420 will indicate e.g., that the subscription ofuser14 will expire on 31 Mar. 2005.Media distribution system18 may obtain user encryption key422 (i.e., the encryption key for user14) fromdata store418.Media distribution system18 may then encryptuser encryption key422, using devicepublic key402, to generate encrypteduser encryption key422′ (shown with a hash fill).Timeout indicator420,challenge406, device digital certificate404 (including device public key402),user ID410, and encrypteduser encryption key422′ may be combined (by media distribution system18) to formdevice license424.
Device license418 may further include asystem time indicator426, which indicates the system time as defined bymedia distribution system18.System time indicator426 may be used to synchronize a system clock194 (FIG. 3) included withinpersonal media device12 with asystem clock428 included withinmedia distribution system18.
Device license424 may further include a licensing service (i.e., LS)digital certificate430, which typically includes a licensing service (i.e., LS)public key432.
Media distribution system18 may digitally signdevice license424 using licensing service (i.e., LS) private key434 (of media distribution system18) and providedevice license424 topersonal media device12. Licensing systemprivate key434 may be stored ondata store418.
Whendevice license424 is received frommedia distribution system18,DRM process10 may verify the integrity of LS digital certificate430 (and, therefore, LS public432). As discussed above, digital certificates are typically issued and digitally signed by e.g.,certification authority412 using CAprivate key414. Accordingly, LSdigital certificate430 may be verified by obtaining the CApublic key416 to verify the digital signature of LSdigital certificate430.
DRM process10 may use LS public key432 (included within LS digital certificate430) to verify device license424 (which was digitally signed using LS private key434).DRM process10 may additionally verifychallenge value406, devicepublic key402, and the device serial number (included within device digital certificate404) to ensure thatdevice license424 is intended forpersonal media device12.DRM process10 may then decrypt, with deviceprivate key400, encrypteduser encryption key422′ (that was encrypted using device public key402) to generate user encryption key422 (which may be stored in non-volatile memory, examples of which include ROM152 (FIG. 3) and/or storage device66 (FIG. 3).User ID410,user encryption key422, andtimeout indicator420 may be saved on e.g., non-volatile memory, examples of which include ROM152 (FIG. 3) and/or storage device66 (FIG. 3), for use whenpersonal media device12 renders media content downloaded frommedia distribution system18. Additionally, as will discussed below in greater detail,DRM process10 may retain a copy ofdevice license424 for use when transferring media content betweenpersonal media device12 and e.g.,personal media device40.
Obtaining Media Content:
As discussed above, onceuser14 subscribes tomedia distribution system18,user14 may obtain frommedia distribution system18 media content (for use with personal media device12) in the form of: purchased downloads received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use in perpetuity); subscription downloads received from media distribution system18 (i.e., media content licensed to e.g.,user14 for use while a valid subscription exists with media distribution system18); and media content streamed frommedia distribution system18, for example.
Referring also toFIG. 13, eachmedia data file450,452,454,456,458 downloadable frommedia distribution system18 may be encrypted using a unique CEK (i.e., content encryption key)460,462,464,466,468 respectively. For example, ifmedia distribution system18 includes 1,000,000 media data files available for downloading to e.g.,personal media device12,media distribution system18 will encrypt each media data file using a unique encryption key. Accordingly, for 1,000,000 media data files, 1,000,000 unique CEK's will be required, each of which is bound to the media data file to which the CEK is related. Accordingly,CEK460 is bound to media data file450, andCEK462 is bound to media data file452, for example.
Each CEK (e.g.,keys460,462,464,466,468) may be a symmetric encryption key, in that the key used to encrypt a media data file may also be used to decrypt the same media data file. Additionally, each media data file may be stored on e.g.,storage device34 attached tocomputer28.
As discussed above, search window304 (FIG. 10) ofproxy application98, may allowuser14 to search for media data files. Additionally,user14 may download media data files frommedia distribution system18 for use onpersonal media device12 by selecting the download button352 (FIG. 10) corresponding to the media data file to be downloaded.
Once the download of a media data file is initiated,personal media device12 may submit the appropriate request(s) tomedia distribution system18. For example, assume thatuser14 wished to download three media data files, namely media data files450,454,456.DRM process10 would submitrequests470,472,474 respectively, each of which requests the desired file. For security and authentication purposes,requests470,472,474 may be e.g., encrypted by personal media device12 (using e.g., LS public key432) and/or digitally signed by personal media device12 (using e.g., device private key400). Accordingly, if a request is encrypted (using e.g., LS public key432), the encrypted request may subsequently be decrypted bymedia distribution system18 using LSprivate key434. Further, if a request is digitally signed (using e.g., device private key400), the signed request may subsequently be verified bymedia distribution system18 using devicepublic key402.
Once e.g., requests470,472,474 are received and processed bymedia distribution system18,media distribution system18 may retrieve the requested media data files450,454,456 from e.g.,storage device34. As discussed above, each media data file is currently encrypted using a unique CEK, such that the CEK is bound to the media data file.
Prior to being downloaded topersonal media device12, each media data file to be downloaded is bound to the user (e.g., user14) who requested the download. As discussed above, during device initialization,personal media device12 provideslicense request408 tomedia distribution system18.Media distribution system18 in turn processes license408 and obtains current subscription information concerning the user associated with license request408 (e.g., user14). As discussed above, this initialization process may occur periodically and, therefore, may occur at the time thatpersonal media device12 is placed into docking cradle60 (FIG. 2). Accordingly and for this example, assume thatpersonal media device12 has provided the required user credentials to properly accessmedia distribution system18. As discussed above, the user credentials provided tomedia distribution system18 may include, but are not limited to, a user name, a user password, a user key, a device name, a device password, a device key, and/or one or more digital certificates.
Oncemedia distribution system18 retrieves the requested media data files450,454,456 from e.g.,storage device34,media distribution system18 binds the retrieved media distribution files450,454,456 touser14 e.g., the user requesting the media data files, thus creating bound media data files476,478,480. Accordingly, the content encryption key (e.g., CEK460) associated with each media data file (e.g., media data file450) is encrypted using the encryption key (e.g., user encryption key422) of the user requesting the media data files (e.g., user14). Accordingly,CEK460 is encrypted to generateCEK460′,CEK464 is encrypted to generateCEK464′, andCEK466 is encrypted to generateCEK466′. Once encrypted, bound media data files476,478,480 (including encrypted CEK's460′,464′,466′ respectively) are provided topersonal media device12. As the CEK of each bound media data files476,478,480 is encrypted using e.g.,user encryption key422, bound media data files476,478,480 may only be processed (e.g., rendered) by a personal media device in possession ofuser encryption key422. As discussed above, a copy ofuser encryption key422 is stored on non-volatile memory withinpersonal media device12. Once bound media data files476,478,480 are received by personal media device, they may be stored on e.g.,storage device66 withinpersonal media device12.
Media Content Playback:
As discussed above,user ID410,user encryption key422, andtimeout indicator420 may be saved for use whenpersonal media device12 renders media content downloaded frommedia distribution system18.
Continuing with the above-stated example, ifuser14 wishes to render one of bound media data files476,478,480,user14 may select the appropriate media data file via the controls (e.g., backward skipswitch78; forward skipswitch80; play/pause switch82;menu switch84;radio switch86; andslider assembly88, for example) anddisplay panel90 ofpersonal media device12. Once one or more media data files are selected for playback, the appropriate file(s) are retrieved from e.g.,storage device66. As discussed above, prior to each media data file being provided topersonal media device12, the CEK of each media data file may be encrypted (by media distribution system18) usinguser encryption key422. As discussed above,user encryption key422 may be a symmetric encryption key and, therefore, the key used to e.g., encryptCEK460 may also be used to decryptencrypted CEK460′.
Once the appropriate bound media data files are retrieved from e.g.,storage device66,DRM process10 may decrypt the appropriate CEK (using user encryption key422) so that the media data file can be processed and rendered onpersonal media device12. For example, ifuser14 wished to render bound media data files476,478,personal media device12 would decryptencrypted CEK460′ to generateCEK460.CEK460 may then be used byDRM process10 to decrypt media data file450 for playback bypersonal media device12. Further,DRM process10 would decryptencrypted CEK464′ to generateCEK464.CEK464 may then be used byDRM process10 to decrypt media data file454 for playback bypersonal media device12.
Typically, prior to processing and rendering e.g., bound media data files476,478,DRM process10 will verify that e.g.,user14 has sufficient rights to process and render the bound media data files.
As discussed above,media distribution system18 is typically a subscription-based service, in that e.g.,user14 subscribes tomedia distribution system18 and pays e.g., a monthly subscription fee to be granted access tomedia distribution system18. Further,user14 may obtain frommedia distribution system18 subscription downloads that allowuser14 to process and playback the subscription downloads only while a valid subscription exists withmedia distribution system18.
Assuming that bound media data files476,478,480 are subscription downloads (as opposed to purchased downloads that are licensed in perpetuity for use by user14), prior to rendering and/or processing bound media data files476,478,480,DRM process10 may obtaintimeout indicator420, which as discussed above may be stored on e.g., non-volatile memory, examples of which include ROM152 (FIG. 3) and/or storage device66 (FIG. 3).DRM process10 may then compare the expiration date (e.g., 31 Mar. 2005) defined withintimeout indicator420 to the date and/or time defined withinsystem clock194 to determine if e.g.,user14 is still allowed to render bound media data files476,478,480. In this example, asuser14 has a valid subscription through 31 Mar. 2005 and the current date and time (as defined by system clock194) is 17:53 GMT on 6 Mar. 2005, the subscription of user14 (with respect to media distribution system18) is valid and current. Accordingly, bound media data files476,478,480 may be processed for playback.
Device-To-Device Media Content Transfer:
As discussed above,media distribution system18 is typically a subscription-based service, in that e.g.,user14 subscribes tomedia distribution system18 and pays e.g., a monthly subscription fee to be granted access tomedia distribution system18. Further,user14 may obtain frommedia distribution system18 subscription downloads that allowuser14 to process and playback the subscription downloads only while a valid subscription exists withmedia distribution system18. Accordingly, since the rights associated with a subscription download are based upon the existence of a valid subscription withmedia distribution system18, subscription downloads may be transferred from a first personal media device to a second media device, as long as a valid subscription exists concerning the second personal media device.
Referring also toFIG. 14 and continuing with the above-stated example, assume thatuser14 has downloaded bound media data files476,478,480 which are stored on e.g.,storage device66 withinpersonal media device12. Further, assume thatuser26 wishes to obtain a copy of bound media data file476 for playback onpersonal media device40. As discussed above, when a device is initialized, a copy of a device license is transferred to and retained on the personal media device for use when transferring media content between personal media devices. Accordingly,personal media device12 includessource device license424 andpersonal media device40 includestarget device license500.
Typically, a device-to-device content transfer is initiated by the user of the source device. In the above-stated example,personal media device12 is the source device andpersonal media device40 is the target device. Accordingly,user14 may initiate the transfer of bound media data file476 frompersonal media device12 topersonal media device40.
Referring again toFIG. 2, if e.g.,user14 wishes to transfer a media data file to another personal media device,user14 may depressmenu switch84, resulting in the generation of e.g., pop-upmenu106. Usingslider assembly88,user14 may select the “Share Content”command108 from pop-upmenu106, resulting in the generation ofcontent window110. Fromcontent window110,user14 may select the appropriate file for transfer. Assume thatuser14 selects “Peggy Sue”, which corresponds to bound media data file476. Onceuser14 selects the track for transfer,device application64 may render atransfer window112 that e.g., includes atrack title field114 that identifies the title of the track being transferred and anartist field116 that identifies the artist of the track being transferred.
Transfer window112 may include a transfer button118 (selectable via slider assembly88) for initiating the transfer of bound media data file476 to e.g.,personal media device40. In this example, ifuser14 selectstransfer button118 withslider assembly88, the transfer of bound media data file476 (i.e., “Peggy Sue” from “Buddy Holly”) frompersonal media device12 to (in this example)personal media device40 is initiated.Transfer window112 may include atransfer status indicator120 for indicating the progress of the transfer of e.g., “Peggy Sue” by “Buddy Holly”.Transfer window112 may further include a cancelbutton122 for allowinguser14 to cancel the file transfer andclose download window112.
Referring again toFIG. 14, once the transfer of bound media data file476 is initiated, the devices may exchange device digital certificates for authentication purposes. For example,DRM process10 may provide source device digital certificate404 (which includes source device public key402) to devicepersonal media device40 for authentication. As discussed above, the integrity of source device digital certificate404 (and, therefore, source device public key402) may be verified (by personal media device40) via CA public key416 (a copy of which is typically stored innon-volatile memory502 of personal media device40), as source devicedigital certificate404 was issued and digitally signed by e.g., certification authority412 (FIG. 12) using CA private key414 (FIG. 12).
Further,personal media device40 may provide target device digital certificate504 (which includes target device public key506) to devicepersonal media device12 for authentication. The integrity of target device digital certificate504 (and, therefore, target device public key506) may be verified byDRM process10 via CA public key416 (a copy of which is typically stored innon-volatile memory66/152 of personal media device12), as target devicedigital certificate504 would typically also have been issued and digitally signed by e.g., certification authority412 (FIG. 12) using CA private key414 (FIG. 12).
As discussed above and as illustrated inFIG. 3, personal media devices (e.g., personal media device12) may include awireless interface182 for wirelessly-couplingpersonal media device12 to network30 (or network32) and/or other personal media devices.Wireless interface182 may be coupled to anantenna assembly184 for RF communication to e.g.,WAP52, and/or an IR (i.e., infrared)communication assembly186 for infrared communication with e.g., a second personal media device (such as personal media device40). Accordingly, communication betweenpersonal media devices12,40 may occur wirelessly via RF communication and/or infrared communication. Additionally, an external connector (not shown) may be included within each personal media device that allows for the hardwired-interconnection of multiple personal media devices.
Oncecertificates404 and504 are verified,personal media device40 providestarget device license500 topersonal media device12. As with device license424 (FIG. 11),target device license500 may include: LS digital certificate508 (which includes LS public key432),system time indicator512, timeout indicator514 (i.e., for the subscription of user26), encrypted user encryption key516 (i.e., for user26), user ID518 (i.e., for user26),challenge520, and target device digital certificate502 (which includes a copy of target device public key504).
Upon receivingtarget device license500 frompersonal media device40,DRM process10 may verify the integrity oftarget device license500. Accordingly,DRM process10 may verify the integrity of LS digital certificate508 (and, therefore, LS public key432). As discussed above, digital certificates are typically issued and digitally signed by e.g., certification authority412 (FIG. 12) using CA private key414 (FIG. 12). Accordingly, LSdigital certificate508 may be verified byDRM process10 using CApublic key416.
DRM process10 may use LS public key432 (included within LS digital certificate508) to verify target device license500 (which was digitally signed using LS private key434 (FIG. 12)).DRM process10 may additionally verify thatuser26 has a valid subscription tomedia distribution system18 by comparing timeout indicator514 tosystem clock194. For example, asuser26 has a valid subscription through 22 Mar. 2005 (as defined by timeout indicator514) and the current date and time (as defined by system clock194) is 22:06 GMT on 13 Mar. 2005, the subscription of user26 (with respect to media distribution system18) is valid and current.
Assuming that the integrity oftarget device license500 is verified, the transfer of bound media data file476 may begin. Depending on the manner in whichDRM process10 is configured,user26 may be required to have a valid and current subscription (with media distribution system18) prior to initiating the transfer of any media data files topersonal media device40. However and as discussed above, since the personal media device checks for the existence of a valid and current subscription prior to rendering media data files, even is the transfer was effectuated whileuser26 did not have a valid and current subscription withmedia distribution system18,user26 would be prohibited from rendering the transferred media data files.
In order to effectuate the media data file transfer,DRM process10 generates a random session key (i.e., RSK)522, which is encrypted using target device public key504 (included within target device digital certificate504) to generateencrypted RSK522′.DRM process10 providesencrypted RSK522′ topersonal media device40, which is decrypted (using target device private key (not shown)) to retrieveRSK522.RSK522 may be a 1024-bit symmetric encryption key.
Aspersonal media device12 andpersonal media device40 each contain a copy ofRSK522, asecure communication channel524 may be established betweendevices12,40, in which all data transmitted acrosssecure communication channel524 is encrypted (using RSK522) prior to transmission and decrypted (using RSK522) upon receipt.Secure communication channel524 may be a wireless communication channel (using e.g., RF communication and/or infrared communication), or a wired communication channel (using an external connector (not shown) ondevices12,40).
DRM process10 may retrieve (from e.g., storage device66) bound media data file476 for transmission topersonal media device40. However and as discussed above, asCEK460′ of bound media data file476 was encrypted using the encryption key of user12 (e.g., user encryption key422), bound media data file476 will not be accessible (in its current form) byuser26. Therefore, bound media data file476 must be unbound fromuser12 and bound touser26. Accordingly,DRM process10 obtains bound media data file476 from e.g.,storage device66 and decryptsCEK460′ (using user encryption key422) to obtainCEK460. Unbound media data file526 may be transferred (via secure communication channel524) frompersonal media device12 topersonal media40. Upon receipt,personal media device40 may encryptCEK460 of unboundmedia data file526, using the encryption key of user26 (i.e., user encryption key528) to generate bound media data file530, which includesencrypted CEK460″.Personal media device40 may store bound media data file530 for subsequent rendering innon-volatile memory502.
User encryption key422 is described above as typically being a symmetric encryption key, in that the same key that is used to encrypt a CEK may also be used to decrypt the encrypted version of the CEK. Further and as described above, the sameuser encryption key422 is used to encrypt all CEK's. Therefore, if one-hundred bound media data files are downloaded to and stored uponpersonal media device12, the sameuser encryption key422 may be used to decrypt each of the one-hundred encrypted CEKs. However, other configurations ofuser encryption key422 are possible.
For example,user encryption key422 may be a symmetric key block, as opposed to a single symmetric key. Referring also toFIG. 15, there is shown a 32-byte (i.e., 256-bit) symmetrickey block600. Assume for this example that a 16-byte (i.e., 128-bit) key is used to encrypt and decrypt each encrypted CEK. Through the use of one e.g., 256-bit symmetrickey block600, multiple 128-bit symmetric keys (e.g., user encryption keys602,604,606,608 may be defined. For example, a first user encryption key602 may be defined as bits000-127 of symmetrickey block600. A second user encryption key604 may be defined as bits004-131 of symmetrickey block600. A third user encryption key606 may be defined as bits128-255 of symmetrickey block600. And a fourth user encryption key608 may be defined as bits124-251 of symmetrickey block600. Accordingly, a plurality of unique symmetric user encryption keys may be defined using a single symmetrickey block600. Accordingly, to properly define the individual user encryption keys, in this particular example, abit shift parameter610 is defined for each user encryption key602,604,606,608, which defines the starting point of the respective key. For example, user encryption key602 starts at bit-0 of symmetrickey block600 and, therefore, has abit shift610 of 0-bits. As user encryption key604 starts at bit-4 of symmetrickey block600, user encryption key604 has abit shift610 of 4-bits. As user encryption key606 starts at bit-128 of symmetrickey block600, user encryption key606 has abit shift610 of 128-bits. As user encryption key608 starts at bit-124 of symmetrickey block600, user encryption key608 has abit shift610 of 124-bits.
While various user encryption keys are defined within symmetrickey block600 by shifting the starting point of each individual user encryption key, other configurations are possible. For example, keys may be defined using only odd or even bits in conjunction with a bit shift. Additionally and/or alternatively, keys may be defined within symmetrickey block600 algorithmically, in that an algorithm is used to define the individual bits used (within symmetric key block600) to define a unique user encryption key.
Various systems and methods of using a personal media device are described below. Each of these systems and methods may be implemented on apersonal media device12 and in connection with amedia distribution system18, for example, as described above. The systems and methods may be implemented using one or more processes executed bypersonal media device12,proxy computer54 and/orserver computer28, for example, in the form of software, hardware, firmware or a combination thereof. Each of these systems and methods may be implemented independently of the other systems and methods described herein. As described above,personal media device12 may include a dedicated personal media device (e.g., an MP3 player), a personal digital assistant (PDA), a cellular telephone, or other portable electronic device capable of rendering digital media data.
Subscription-Based Digital Rights Management:
Referring toFIGS. 16 and 17, there is shown a system and method for providing subscription-based digital rights management (DRM) onpersonal media device12. According to subscription-based DRM,personal media device12 is licensed or registered to a user and content rights associated with licensedmedia content1102 are bound to the user ofpersonal media device12 under a subscription to amedia distribution system18. Thus, a user is able to obtain and/or render licensedmedia content1102 onpersonal media device12 provided thatpersonal media device12 maintains a valid license under a user subscription.
Licensedmedia content1102 may be provided as one or more media data files pre-loaded on, downloaded to, or transferred topersonal media device12. As described above, licensedmedia content1102 may include media data files such as audio files (e.g., music), video files, audio/video files, and multimedia content. Licensedmedia content1102 may be arranged and presented as individual media content items (e.g., musical tracks) that may be individually and selectively rendered (e.g., subscription content or purchased content) or as multiple content items (e.g., a series of musical tracks) that may only be played in a defined sequence in compliance with performance complement requirements and with limited or no user interaction (e.g., non-interactive content).
Media content1102 licensed bymedia distribution system18 may have different content rights associated with different media data files. Content rights may include, for example: non-subscription rights (e.g., purchased content rights) that allow content to be rendered and/or copied (e.g., burned to CD) by the licensed user indefinitely independent of a valid subscription; and subscription-based rights that allow content to be streamed, downloaded, rendered and/or transferred by the licensed user for a limited period of time under a valid subscription. Content rights associated with a particular media data file may be defined in a content license associated with the media data file (e.g., embedded in the media data file or in a separate content license database).
To protect licensedmedia content1102, media data files may be encrypted with associatedcontent encryption keys1104. To bind the licensedcontent1102 to a user,content encryption keys1104 may be encrypted withuser encryption key422, for example, as described above.User encryption key422 may be included indevice license424 with other “user credentials” such asuser ID410 and expiration data420 (e.g., a timeout indicator) used to verify the user's subscription.
DRM process1110 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with digital rights management (e.g., as described above).Content playback engine1120 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with rendering media content such as processing media data files. Althoughcontent playback engine1120 andDRM process1110 are shown as separate functional components,DRM process1110 may be incorporated withincontent playback engine1120.DRM process1110 andcontent playback engine1120 may be components of device application64 (FIG. 1), for example, as an embedded feature, software plug-in, or stand-alone application. The instruction sets and subroutines ofDRM process1110 andcontent playback engine1120 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12.
An exemplary method of subscription-based DRM is illustrated inFIG. 17 and is described below. A user may be registered1150 withmedia distribution system18 to obtain a subscription to the media distribution system, for example, during the device initialization process (as described above). The user may also register1150 to obtain the subscription before the device initialization process.Personal media device12 may be registered1152 withmedia distribution system18 under the user subscription, for example, during the device initialization process (as described above).DRM process1110 onpersonal media device12, for example, may perform the core functions and/or processes associated with the user registration and/or device registration during device initialization. As a result of auser registration1150 anddevice registration1152,device license424 may be generated and stored onpersonal media device12.
During use,personal media device12 may receive1154 a request by the user to obtain and/or render licensedmedia content1102 licensed bymedia distribution system18. Upon receiving a request to obtain and/or render a content item,personal media device12 may determine1160 e.g., if the content rights associated with the corresponding media data file are non-subscription rights or subscription rights.DRM process1110 and/orcontent playback engine1120, for example, may access the content license associated with the media data file. If the content rights are non-subscription rights,personal media device12 may obtain and/or render1162 the media content regardless of the subscription status.DRM process1110 and/orcontent playback engine1120, for example, may retrieve, decrypt and process the media data file associated with the selected non-subscription content item without having to verifydevice license424.
If the content rights are subscription rights,personal media device12 may verify1164 the subscription associated with thepersonal media device12.DRM process1110 onpersonal media device12, for example, may accessdevice license424 to determine if the subscription is valid and may compareexpiration data420 tosystem clock194 to determine if the content has expired. If the subscription cannot be verified (e.g., the content expired or the subscription is invalid or never existed),personal media device12 may attempt to renew1166 an existing subscription or initiate a new subscription. If the subscription can be verified,personal media device12 may obtain and/or render1162 the licensed media content item.DRM process1110 and/orcontent playback engine1120 onpersonal media device12, for example, may retrieve, decrypt and process the media data file associated with the selected subscription content item.
Accordingly, a subscription-based DRM system and method allows a user to render media content under a user subscription on a licensedpersonal media device12 without having to track content licenses associated with each media data file individually.
Bulk Licensing Pre-Loaded Media Content:
Referring toFIGS. 18-20, there is shown a system and method for bulk licensing pre-loaded media content on apersonal media device12.Personal media device12 may be pre-loaded with media content1200 (e.g., onstorage device66 shown inFIG. 3), which may be licensed in bulk, for example, during device initialization. In general,pre-loaded content1200 may be any content that is not downloaded topersonal media device12, for example, frommedia distribution system18.Pre-loaded content1200 may be pre-loaded by storing the content whenpersonal media device12 is manufactured, or may be pre-loaded by transferring the content from another storage medium provided with personal media device12 (e.g., from a CD or DVD).
As described above,pre-loaded media content1200 may include media data files such as audio files (e.g., music), video files, audio/video files, and multimedia content.Pre-loaded content1200 may be arranged and presented as individual media content items (e.g., musical tracks) that may be individually and selectively rendered (e.g., subscription content) and/or as multiple content items that may only be rendered in a defined sequence in compliance with performance complement requirements and with limited or no user interaction (e.g., non-interactive content). Non-interactive content (also referred to as radio content), for example, may allow a user to start and stop rendering the sequence of content items and to skip a limited number of content items.
In one example,personal media device12 may include about 5 to 10 gigabytes ofpre-loaded content1200 including content data for about 10 to 15 non-interactive content sequences (e.g., radio stations).Pre-loaded content1200 may correspond to a particular type or category of media content to provide a “specialized”personal media device12. For example,personal media device12 may be pre-loaded with music of a particular genre, for example, to provide a Jazz personal media device or with music of a particular artist, for example, to provide an Elvis personal media device.
According to one embodiment,personal media device12 renders media content ifpersonal media device12 is initialized and registered or licensed to a user, for example, under a user subscription to a media distribution system.Pre-loaded content1200 may be pre-loaded beforepersonal media device12 is initialized and licensed to a user. In contrast, downloadedcontent1202 may be downloaded topersonal media device12, for example, frommedia distribution system18, after the user initializes and licenses the device. Thus,pre-loaded content1200 may advantageously save download bandwidth. Thepersonal media device12 may also enable a limited time trial ofpre-loaded content1200 without having to subscribe to a media distribution system and downloadcontent1202.
DRM process1210 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with digital rights management, for example, as described above.Content playback engine1220 may be resident on and executed bypersonal media device12 to perform the core functions or processes associated with rendering media content such as processing media data files. Althoughcontent playback engine1220 andDRM process1210 are shown as separate functional components,DRM process1210 may be incorporated withcontent playback engine1220.DRM process1210 andcontent playback engine1220 may be components of device application64 (FIG. 1), for example, as an embedded feature, software plug-in, or stand-alone application. The instruction sets and subroutines ofDRM process1210 andcontent playback engine1220 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12.
To prevent media content onpersonal media device12 from being accessed or rendered without authorization, media content may be encrypted using content encryption keys (CEKs), as described above.Downloaded content1202 may include embedded contentlicenses including CEKs1208, which may used to decrypt the downloadedcontent1202.Pre-loaded content1200, on the other hand, may be pre-loaded without embedded content licenses and CEKs. Thus, the user initially may not renderpre-loaded content1200 onpersonal media device12 becausepre-loaded content1200 is encrypted and the CEKs for decrypting thepre-loaded content1200 are not pre-loaded.Content licenses1204 includingCEKs1208′ corresponding to thepre-loaded content1210 may be downloaded in bulk, for example, when thepersonal media device12 is activated. To bind media content to a subscriber or licensed user ofpersonal media device12,CEKs1208,1208′ may be encrypted withuser encryption key422, for example, as described above.User encryption key422 may then be used by the registered user or subscriber to decryptCEKs1208,1208′ needed to decrypt media content.
Individual media content items may be identified using content item identifiers, such as digital rights management (DRM) IDs used to uniquely identify content withinmedia distribution system18. In one embodiment,content licenses1204 may be provided as a sorted or indexed database withcontent licenses1204 indexed using content item identifiers corresponding to content item identifiers associated with content items inpre-loaded content1200.
An exemplary method of bulk licensing pre-loaded content is illustrated inFIG. 19 and is described below.Personal media device12 withpre-loaded content1200 may establish communication withmedia distribution system18, for example, to register and licensepersonal media device12 during the device initialization process described above. When communication is established,media distribution system18 may receive1250 a request to register and licensepersonal media device12 for use withmedia distribution system18.Media distribution system18 may then establish1252 user encryption key422 (in addition to other user credentials), for example, as described above.
As part of the process of registering and/or licensingpersonal media device12,media distribution system18 may receive1254 an identification ofpre-loaded content1200 to be licensed.Personal media device12, for example, may transmit tomedia distribution system18 the content item identifiers corresponding to content items inpre-loaded content1200.Media distribution system18 may then obtain1256 corresponding content licenses for pre-loaded content onpersonal media device12.Media distribution system18, for example, may generate a sorted or indexed pre-build database including content licenses1204 (andCEKs1208′) associated with the content item identifiers provided bypersonal media device12.Media distribution system18 may encryptCEKs1208′ in thecontent licenses1204 with theuser encryption key422, for example, in the manner described above for encrypting CEKs embedded in downloaded content.Media distribution system18 may then transmit1260 topersonal media device12 thecontent licenses1204 with encryptedCEKs1208′ forpre-loaded content1200, which have been bound to user ofpersonal media device12.
An exemplary method of rendering pre-loaded content is illustrated inFIG. 20 and described below. When a request to render one or more media content items is received1270,content playback engine1220 may first attempt to access1272 an embedded license, for example, in the header of the requested media data file. If the requested media data file includes an embedded license, a CEK in the embedded license may be decrypted1274 withuser encryption key422. If the requested media data file does not include an embedded license,personal media device12 may locate1276 the CEK associated with the requested media data file and decrypt1280 the associated CEK withuser encryption key422.DRM process1210 and/orcontent playback engine1220, for example, may use the content item identifier associated with the requested content item to locate the content license (and encrypted CEK) in a database of content licenses. Once the corresponding CEK is located and decrypted, the media content item may be decrypted1282 with the CEK and the media data file may be rendered.
Accordingly, the system and method of bulk licensing enables pre-loaded content to be securely provided on a personal media device and then licensed to a user of the personal media device at a later time in an efficient manner.
Queuing Media Content for Future Purchase:
Referring toFIGS. 21-23, there is shown a system and method for queuing media content onpersonal media device12 for future purchase frommedia distribution system18. In general, whenpersonal media device12 is unable to complete a purchase transaction (e.g., whenpersonal media device12 is not communicating with media distribution system18), media content may be queued for future purchase at a subsequent time whenpersonal media device12 is e.g., communicating withmedia distribution system18.
Media content that may be queued for future purchase may include any media content purchasable frommedia distribution system18. Media content may be identified inmedia distribution system18 using a digital rights management (DRM) media content identifier. As described above, media content that may be purchased may include media data files such as audio files (e.g., music), video files, audio/video files, and multimedia content. Such media content may includesubscription content1312 stored onpersonal media device12 andnon-interactive content1314 stored onpersonal media device12.Subscription content1312 may be arranged and presented as individual media content items that may be individually and selectively rendered.Non-interactive content1314 may be arranged as multiple content items that may only be rendered in a defined sequence in compliance with performance complement requirements and with limited or no user interaction (e.g., radio content). Bothsubscription content1312 andnon-interactive content1314 may only be rendered for a limited period of time under a valid subscription withmedia distribution system18. In contrast, purchasedmedia content1310 may be rendered and/or transferred by the user indefinitely and independent of a subscription status.
Media content items to be purchased may also include media content items that are identified by personal media device12 (e.g., in a playlist) but are not stored onpersonal media device12. Content items to be purchased may further include content items that are not rendered by personal media device12 (e.g., because there is no valid subscription).
DRM process1310 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with digital rights management (e.g., as described above).Content playback engine1320 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with rendering media content (e.g., processing media data files). Althoughcontent playback engine1320 andDRM process1310 are shown as separate functional components,DRM process1310 may be incorporated withcontent playback engine1320.DRM process1310 andcontent playback engine1320 may be components of device application64 (FIG. 1) as e.g., an embedded feature, a software plug-in, or a stand-alone application. The instruction sets and subroutines ofDRM process1310 andcontent playback engine1320 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12.
An exemplary method for queuing content items for future purchase is illustrated inFIG. 22 and described below.Personal media device12 may present1350 identifying information associated with one or more media content items.Personal media device12 may present such identifying information, for example, whencontent playback engine1320 renders the associated media data file. Alternatively,personal media device12 may present such identifying information e.g., in a content library listing and/or a playlist including the associated media content item. Identifying information associated with the media content items may be obtained from media content metadata (not shown) stored onpersonal media device12 and/or provided frommedia distribution system18.
Personal media device12 may receive1354 a purchase request to purchase a media content item presented onpersonal media device12. For example, user interface170 (FIG. 3) may be used to enter the purchase request when the media content item is being rendered onpersonal media device12. Alternatively,user interface170 may be used to enter the purchase request for a media content item selected from a library listing and/or a playlist.
Upon receiving a purchase request,personal media device12 may determine1356 whether communication withmedia distribution system18 is established. If communication is established,personal media device12 and/ormedia distribution system18 may execute1358 a secure purchase transaction to complete the purchase of the selected media content item. A secure purchase transaction may be executed in accordance with techniques known to those skilled in the art.
If the purchased media content item is currently stored onpersonal media device12 as either e.g.,subscription content1312 ornon-interactive content1314, the purchased media content item may then be re-licensed1360 as purchased media content.DRM process1310 onpersonal media device12 may e.g., update and/or modify the content license associated with the purchased media content item (e.g., a content license embedded in the media data file or a content license in a separate content license database) to reflect the new status as purchased media content. If the purchased media content item is not currently stored on personal media device12 (e.g., as eithersubscription content1312 or non-interactive content1314), the media data file for the purchased media content item may be downloaded frommedia distribution system18 to personal media device12 (e.g., as described above).
If communication is not active (e.g.,personal media device12 is not docked or communicating viaWAP52,FIG. 1), the content item selected for purchase (e.g., via user interface170) may be identified1362 inpurchase queue1316. In an exemplary embodiment,purchase queue1316 may be implemented as a purchase queue log file stored on storage device66 (FIG. 1) and DRM content item identifiers corresponding to the content items selected for purchase may be defined within the purchase queue log file. This purchase queue log file may be encrypted and/or authenticated to provide security for purchase transactions.
An exemplary method for automatically handling purchase transactions for content items queued for purchase is illustrated inFIG. 23 and is described below.Personal media device12 may establish1370 communication withmedia distribution system18 after e.g., one or more media content items are identified inpurchase queue1316. For example, communication may be established whenever:personal media device12 is docked and coupled toproxy computer54; orpersonal media device12 is located within range ofWAP52.
Upon establishing communication withmedia distribution system18,personal media device12 may transmit1372 a queue purchase request tomedia distribution system18 to purchase one or more media content items identified inpurchase queue1316. For example,DRM process1310 onpersonal media device12 may encrypt and/or authenticate (e.g., digitally sign) all or a portion of the above-described purchase queue log file (e.g., using encryption and/or authentication techniques such as those described above) to generate the above-described queue purchase request.
If the user is authorized1374 for automatic purchase transactions frommedia distribution system18,media distribution system18 may process the queue purchase request andpersonal media device12 may receive1376 confirmation of completed purchase transactions. Authorization for automatic purchase may be indicated in user subscription data provided by the user (e.g., upon registering and/or modifying a subscription) and may be stored onpersonal media device12 and/ormedia distribution system18.
If the user is not authorized1374 for automatic purchase transactions frommedia distribution system18, the user may be prompted1380 to provideconsent1382. If the user does not manually consent, the purchase transaction may be aborted1384. When a purchase transaction is completed, the purchased content item may be re-licensed1378 onpersonal media device12 as purchased content1310 (as opposed tosubscription content1312 or non-interactive content1314). For example,DRM process1310 onpersonal media device12 may update and/or modify a content license associated with the purchased content item (e.g., a content license embedded within the media data file or a content license in a separate content license database) to reflect the new status as purchased content.
Accordingly, a user of a personal media device may request purchase of one or more media content items at any time during use of the personal media device, regardless of the communication status withmedia distribution system18 or the status of the user's subscription.
Automatically Managing Media Content:
Referring toFIGS. 24-26, there is shown a system and method for automatically managing media content stored onpersonal media device12.Media content1400 may be automatically loaded onto personal media device12 (e.g., onstorage device66,FIG. 1) and may be automatically removed/released frompersonal media device12 to free up storage space for new media content to be loaded ontopersonal media device12.Media content1400 may include one or more media content items in the form of media data files (e.g., audio data files, video data files, audio/video data files, and multimedia data files) renderable onpersonal media device12.
Media content1400 stored onpersonal media device12 may include:non-interactive media content1410 including a plurality of media content items that may be rendered together in a defined sequence with little or no user interaction (e.g., radio content);subscription media content1412 including individual media content items that may be selectively rendered as long as a user has a valid subscription; purchasedmedia content1414 including individual media content items purchased from e.g.,media distribution system18 to be rendered by the purchasing user without restrictions; and importedmedia content1416 including media content items imported from another source (e.g., ripped from a CD).
As used herein, non-interactive is intended to mean not allowing a user to request a particular media content item for rendering. For example,non-interactive media content1410 may include a plurality of media content items selected and arranged randomly (or pseudo-randomly) for rendering to a user (e.g., as a radio station). Non-interactive media content playback may allow some level of user control over playback. For example, a user may start and stop the playback and/or skip media content items within certain restrictions, as described in greater detail in U.S. Provisional Patent Application Ser. No. 60/705,764 (Attorney Docket No. REA014), entitled “Systems and Methods for Presenting Media Content”, filed 5 Aug. 2005 and fully incorporated herein by reference. Non-interactive content may also allow some level of user input as to the nature of the content. For example, during non-interactive music content playback, a user may suggest a musical artist or a genre of music, which may form the basis for randomly (or pseudo-randomly) selecting media content items for playback.
Non-interactive media content1410,subscription media content1412, purchasedmedia content1414, and importedmedia content1416 may be loaded ontopersonal media device12 at the request of a user (i.e., user added media content). Further,non-interactive media content1410 andsubscription media content1412 may also be automatically loaded ontopersonal media device12 without being requested by a user (i.e., automatic media content). Automatic media content may be pre-loaded ontopersonal media device12 before the user activates/initializespersonal media device12 or may be automatically loaded ontopersonal media device12 after initialization e.g., based on user preferences, user activity and user ratings. Information associated with media content1400 (e.g., whether media content was added by a user or added automatically) may be stored onpersonal media device12 e.g., as metadata associated with media data files.
Personal media device12 may also includeuser data1440 associated with a user ofpersonal media device12, such asuser playlists1442,user preferences1444, anduser metadata1446.User playlists1442 may include a list of media content items (e.g., musical tracks) selected by the user to be rendered in sequence.User preferences1444 may define the preferences of a user with respect to media content in general (as opposed to a specific media content item).User preferences1444 may be based on user selections and/or recent listening activity and may include favorite genres, favorite artists, and favorite radio stations, for example.User metadata1446 may include user activity data (e.g., play count, date added, last played) and user ratings associated with one or more of the media content items stored onpersonal media device12.
Automaticcontent loading process1424 may be resident on and executed bycomputer28 and/orproxy computer54. Automaticcontent loading process1424 may associate other media content with media content preferred by the user ofpersonal media device12 and may load the associated content automatically. Automaticcontent loading process1424 may be a component ofmedia distribution system18 or proxy application98 (FIG. 1), for example, as an embedded feature, software plug-in, or stand-alone application. The instruction sets and subroutines of automaticcontent loading process1424 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intocomputer28 and/orproxy computer54.
Automaticcontent removal process1430 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with the automatic removal of content based on the relative weighting of the content. Automaticcontent removal process1430 may be a component of device application64 (FIG. 1) as e.g., an embedded feature, a software plug-in, or a stand-alone application. The instruction sets and subroutines of automaticcontent removal process1430 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12.
An exemplary method of automatically adding media content topersonal media device12 is illustrated inFIG. 25 and described below.Media distribution system18 may receive1450user data1440′ frompersonal media device12.User data1440′ may be provided frompersonal media device12 tomedia distribution system18 via e.g., proxy computer54 (whenpersonal media device12 is docked) or WAP52 (FIG. 1).Media distribution system18 may also include content similarities data1422 defining relationships or associations between various media content items. For example, inmedia distribution system18, content similarities data1422 may associate similar musical artists by defining, for each musical artist, artists who are influences, contemporaries or followers.
Based onuser data1440′ and content similarities data1422,media distribution system18 may determine1452 similar content associated with content preferred by the user. Automaticcontent loading process1424 ofmedia distribution system18 may e.g., retrieveuser data1440′ representing content preferred by the user (of personal media device18) and may derive associations with other content from content similarities data1422. Ifuser data1440′ indicates that the user has rated certain media content items (e.g., musical tracks) highly, for example, automaticcontent loading process1424 may determine (using content similarities data1422) the artists associated with those highly rated media content items and may retrieve media content items from those associated artists (e.g., influences, contemporaries and followers). Ifuser data1440′ indicates a favorite artist and/or genre, automaticcontent loading process1424 may retrieve similar artists from that genre using content similarities data1422.
Similarmedia content data1420 may be retrieved1454 for transmission topersonal media device12 and may be automatically loaded1456 ontopersonal media device12. Onceuser data1440′ is sent tomedia distribution system18, the process of determining and retrieving similar content may occur whilepersonal media device12 is offline (i.e., not in communication with media distribution system18).Media distribution system18 may communicate withproxy computer54, for example, and transmit similar content toproxy computer54 for loading ontopersonal media device12 during e.g., the next communication session.
Media content data1420 may be automatically loaded as subscription media content or as non-interactive media content.Non-interactive media content1410 may be constructed and loaded, for example, onproxy computer54.Non-interactive media content1410 may also be constructed automatically based on content similarities data1422.
Media content may be automatically loaded or added topersonal media device12 untilpersonal media device12 reaches a predetermined storage limit. The predetermined storage limit may be less than the maximum storage capacity ofpersonal media device12, thus allow some additional storage space onpersonal media device12 for user added media content (or other data). Alternatively, the predetermined storage limit may be set equal to the available space on e.g.,storage device66. If the predetermined storage limit has been reached,personal media device12 may also attempt to automatically remove media content, as described below.
An exemplary method of automatically removing or releasing media content frompersonal media device12 is illustrated inFIG. 26 and described below. Whenpersonal media device12 receives1480 a request to load new media content,personal media device12 may compare1482 the size of the new media content with the storage space remaining onpersonal media device12 to determine1484 ifpersonal media device12 has sufficient storage space. As discussed above, this determination may be made by e.g., determining if a predetermined storage limit has been reached or determining if there is physically enough storage space available to load the new media content. Media content may be added topersonal media device12 frommedia distribution system18, fromnon-interactive media content1410, fromsubscription media content1412, from purchasedmedia content1414, from client computer54 (e.g., as imported media content1416), or from another personal media device (e.g., as “shared” subscription media content1412), for example.
Ifpersonal media device12 determines1484 that enough space is available, the new media content may be loaded1492 (e.g., by storing the content onstorage device66 shown inFIG. 3). Ifpersonal media device12 determines that there is insufficient space for the new media content,personal media device12 may ascertain (e.g., evaluate and/or determine)1486 the relative weight associated with one or more media content items currently stored onpersonal media device12. The relative weight of a media content item generally corresponds to a likelihood that the media content item will be rendered onpersonal media device12 when compared to the other media content items onpersonal media device12. Automaticcontent removal process1430 onpersonal media device12 may e.g., evaluate media content items (to determine their relative weights) by examininguser metadata1446,user preferences1444 anduser playlists1442 and may apply a series of algorithms to determine which media content item has a low relative weight.
Concerning the algorithms applied, automaticcontent removal process1430 may consider e.g., whether a media content item was added by the user, rated by the user, played by the user, or associated with content rated or played by the user. In an exemplary embodiment, a media content item that was automatically added (e.g.,non-interactive content1410 or subscription content1412), that has not been played or rated by the user, and is not associated with content played or rated by the user may be weighted lower. On the other hand, a user added media content item (especially, for example, purchasedmedia content1414 and imported media content1416) may be weighted higher.
Automaticcontent removal process1430 may also consider whether a media content item can no longer be rendered onpersonal media device12 because e.g., the media content item has expired. For example,non-interactive media content1410 may only be rendered once because of performance complement restrictions required by the Digital Millennium Copyright Act (“DMCA”). Accordingly, non-interactive media content items that have already been rendered may also be weighted lower.
When ascertaining the relative weight of automatic media content that has been played and/or rated by the user, automaticcontent removal process1430 may become increasingly complex. If automaticcontent removal process1430 must choose between automatic media content associated with e.g., two different artists, automaticcontent removal process1430 may look to other factors such asuser data1440. If media content items have been played by a user but not rated, for example, automaticcontent removal process1430 may determine which media content items have the lower weight by ascertaining which media content items have been played less frequently and/or which media content items are not associated with preferred artists or genres. In one embodiment, user added media content items may not be automatically removed, although it may be possible to automatically remove user added content, for example, by looking to user data (e.g., user ratings and preferences).
Automaticcontent removal process1430 may automatically delete1488 one or more media content items having a comparatively low relative weight. For example, automatic content removal process1430 (on personal media device12) may delete media data associated with media content item(s) identified as having a low relative weight. Ifpersonal media device12 determines1490 that sufficient space is still not available, the process of ascertaining1486 relative weights and automatically deleting1488 may be repeated. When sufficient storage space is available, the new media content items may be loaded1492.
Accordingly, the system and method for automatically managing media content onpersonal media device12 intelligently loads content appropriate for the user ofpersonal media device12 and intelligently releases content to make room for new content.
Transferring Media Content Playlists:
Referring toFIGS. 27-29, there is shown a system and method for transferring media content playlists betweenpersonal media devices12,12′.Playlists1512 may be shared betweenpersonal media devices12,12′ independent of the architectures, operating systems, and subscription status of thepersonal media devices12,12′. For example, a playlist generated onpersonal media device12 that is used in connection with a first media distribution system (e.g., a media player used with the Rhapsody™ service) may be transferred topersonal media device12′ that is used in connection with a second media distribution system (e.g., an iPod™ player used with the iTunes™ service).
Playlists1512 may include a list of media content items (e.g., musical tracks and/or videos) presented to a user for rendering in sequence by e.g.,personal media device12. Media content items may be identified inplaylists1512 using identifying information associated with the media content items, such as track titles, artist names, various metadata, and/or content item identifiers used by a media distribution system to identify the media content items. Media content items identified inplaylists1512 may include media content1516 (e.g., media data files) stored onpersonal media device12 and/or media content (not shown) stored onmedia distribution system18.Playlists1512 may also identify media content items stored on neitherpersonal media device12 nor media distribution system18 (e.g., local media content stored onproxy computer54,FIG. 1 or on a differentpersonal media device12′).
Playlists1512 may be generated by a user, for example, by selecting each of the media content items (e.g., tracks) for inclusion in the playlist or by saving a media history file generated while rendering a series of media content items.Playlists1512 may also be generated automatically (also referred to as instant playlists) from user data representing a user's listening activities and/or preferences with respect to media content. User data may include user metadata associated with specific media data files (e.g., a user rating, number of times played, last played) and/or general user preferences (e.g., favorite artist(s) and favorite genre(s)). A playlist compilation system and method is described in greater detail in U.S. patent application Ser. No. 11/112,441 (Attorney Docket No. REA002) entitled PLAYLIST COMPILATION SYSTEM AND METHOD, filed on 22 Apr. 2005, which is fully incorporated herein by reference.
DRM process1510 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with digital rights management (e.g., as described above).Content playback engine1520 may be resident on and executed bypersonal media device12 to perform the core functions or processes associated with rendering media content (e.g., processing media data files). Althoughcontent playback engine1520 andDRM process1510 are shown as separate functional components,DRM process1510 may be incorporated withcontent playback engine1520.
Playlistformat conversion process1522 may be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with conversion of playlists to a common format for transmission to anotherpersonal media device12′.Data transfer process1524 may also be resident on and executed bypersonal media device12 to perform the core functions and/or processes associated with the transfer of data betweenpersonal media devices12,12′.
DRM process1510,content playback engine1520, playlistformat conversion process1522 anddata transfer process1524 may be components of device application64 (FIG. 1) as e.g., an embedded feature, software plug-in, or stand-alone application. The instruction sets and subroutines ofDRM process1510,content playback engine1520, playlistformat conversion process1522, anddata transfer process1524 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12.
An exemplary method of transferring one ormore playlists1512 betweenpersonal media devices12,12′ is illustrated inFIG. 28 and described below. To initiate a playlist transfer from a firstpersonal media device12 to a secondpersonal media device12′, a user may select1550 one ormore playlists1512 onpersonal media device12. In an exemplary embodiment,personal media device12 may display title(s) ofplaylists1512 ondisplay90 andslider assembly88 may be used to scroll through and select playlists (FIG. 2).
When a transfer is initiated, selectedplaylists1512 may be converted1552 into a common format. Alternatively,playlists1512 may be converted1552 into a common format at any time before transferring playlists1512 (e.g., before or after the transfer is initiated). In an exemplary embodiment, playlistformat conversion process1522 onpersonal media device12 may reformat identifying information and/or metadata (e.g., track titles, artist names, genre, and play time) associated with content items in selected playlists into a common format using a standard transport protocol. The common format may be any format capable of being processed by different architectures (e.g., an mp3 player, a cellular telephone, or a handheld device) and/or operating systems (e.g., Microsoft Windows CE™, Redhat Linux™, Palm OS™, or other device-specific operating systems).
To share playlists in the common format (once they are converted1552),personal media device12 may establish1554 communication with anotherpersonal media device12′ andtransfer1556 one ormore playlists1512 in the common format to anotherpersonal media device12′.Data transfer process1524 onpersonal media device12, for example, may transmit and/or receive the playlist metadata in the common format. Communication may be established upon initiation of a playlist transfer or may already be established when the playlist transfer is initiated.
Personal media devices12,12′ may communicate directly through a wireless communication channel, for example, using IR communication assembly186 (FIG. 3) and an infrared data communications protocol known to those skilled in the art, such as a protocol complying with a standard defined by the Infrared Data Association (IrDA).Personal media devices12,12′ may also communicate directly through a physical coupling such as a wired connection or initiated by physical contact betweenpersonal media devices12,12′ as disclosed in U.S. Provisional Patent Application Ser. No. 60/705,747 (Attorney Docket No. REA016), entitled “Personal Media Device”, which was filed on 5 Aug. 2005 and is fully incorporated herein by reference. Alternatively,personal media devices12,12′ may establish communication indirectly, for example, throughproxy computer54 and/or network(s)30,32 (FIG. 1). Transferring playlists betweenpersonal media devices12,12′ may accompany a device-to-device media content transfer but may not require the security measures discussed above with respect to device-to-device media content transfers.
An exemplary method of receiving and processing a transferred playlist is illustrated inFIG. 29 and described below.Personal media device12 may receive1570 a transferred playlist in the common format, which has been transferred from anotherpersonal media device12′.Personal media device12 may then convert1572 the playlist in the common format to aplaylist1512 in a format compatible withpersonal media device12. For example, playlistformat conversion process1522 onpersonal media device12 may re-format the identifying information and/or metadata associated with each of the media content items in the transferred playlist into a format that is recognizable and processable bypersonal media device12. Playlistformat conversion process1522 may also add metadata, such as media content item identifiers, used by the media distribution system for whichpersonal media device12 is registered. For example, if a playlist generated in connection with the iTunes™ service is converted to a playlist for use in connection with the Rhapsody™ service, media content item identifiers unique to the Rhapsody™ service may be added to the metadata in the playlist.
After converting the transferred playlist metadata, a user may initiate playback of the transferredplaylists1512. Accordingly,personal media device12 may receive1574 a request to obtain and/or render media content identified in the transferred playlist. The user may initiate playback, onpersonal media device12, of all ofplaylist1512, a portion ofplaylist1512, or a single media content item withinplaylist1512. Playback may be initiated, for example, by selecting the playlist or media content item on display panel90 (FIG. 2) and actuating play/pause switch82 (FIG. 2). Upon receiving a request to obtain and/or render media content items in the transferred playlist,content playback engine1520 onpersonal media device12 may attempt1575 to retrieve and render media data file(s) for the selected media content item(s).
Beforecontent playback engine1520 renders media content items identified in a transferred playlist,content playback engine1520 may determine if the media data files are available1576 (e.g., stored on personal media device12). If a media data file is not available,content playback engine1520 may attempt to retrieve1575 another media data file for another content item identified in the transferred playlist. Alternatively, if media data files are not available onpersonal media device12,personal media device12 may attempt to obtain the unavailable media data files by e.g., establishing communication with media distribution system18 (as described above).Personal media device12 may also attempt to obtain media data files by establishing communication with proxy computer54 (FIG. 1) and/or by initiating a device-to-device media content transfer with anotherpersonal media device12′ (e.g., as described above).
Beforecontent playback engine1520 renders media content items identified in the transferred playlist,content playback engine1520 may also determine ifpersonal media device12 and/or the user has appropriate content rights to render each media content item.DRM process1510 and/orcontent playback engine1520, for example, may access content licenses associated with the media data files selected for playback to determine the content rights associated with the media data files. If the content rights indicate non-subscription rights1582 (e.g., the content item has been purchased or imported), for example,content playback engine1520 may retrieve and render1584 the media data file without verifying a subscription.
If the content rights indicate subscription rights,personal media device12 may attempt to verify1586 a device license to determine ifpersonal media device12 has valid subscription rights for the media content item to be rendered.DRM process1510, for example, may verify the device license and determine if a timeout has expired (e.g., as described above). If subscription rights are not available and/or cannot be verified,DRM process1510 may attempt1588 to subscribe and/or renew a subscription (e.g., as described above). If subscription rights are verified,content playback engine1520 may retrieve and render the media data file. This process may be repeated for each media content item to be rendered in the transferred playlist.
Accordingly, the system and method enables playlists to be shared betweenpersonal media devices12,12′ independent of device architectures, operating systems, and subscriptions.
Exchanging and Dynamically Updating User Profiles:
Referring toFIGS. 30-32, there is shown a system and method for exchanging user profiles betweenpersonal media devices12,12′ and dynamically updating the exchanged user profiles. User profiles may be exchanged to and frompersonal media device12 and then dynamically updated whenpersonal media device12 establishes communication withmedia distribution system18.User profile1610 may be stored on personal media device12 (e.g., on storage device66) and may include at least a user ID capable of identifying a user withinmedia distribution system18.User profile1610 may also include other information associated with the user such as a user name, age, gender, contact information (e.g., email address, telephone number, instant messenger address) and other information associated with the user's media content activity and preferences.
Data transfer process1620 may be resident on and executed bypersonal media device12 and may perform the core functions and/or processes associated with data transfer betweenpersonal media device12 and a secondpersonal media device12′.Data transfer process1620 may be a component of device application64 (FIG. 1), for example, as an embedded feature, software plug-in, or a stand-alone application.
Dynamic updating process1622 may be resident on and executed bypersonal media device12, proxy computer54 (FIG. 1) or server computer28 (FIG. 1) and may update user profiles inuser profile database1618.Dynamic updating process1622 may be a component of device application64 (FIG. 1), proxy application98 (FIG. 1) ormedia distribution system18, for example, as an embedded feature, software plug-in, or stand-alone application. The instruction sets and subroutines ofdata transfer process1620 anddynamic updating process1622 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12,proxy computer54 and/orserver computer28.
An exemplary method of exchanging user profiles betweenpersonal media devices12,12′ is illustrated inFIG. 31 and described below.Personal media device12 may generate1650user profile1610 associated with the registered user ofpersonal media device12. Typically,personal media device12 has only one registered user, although multiple registered users and user profiles are possible.User profile1610 may be generated, for example, during the device initialization process described above, and/or whenmedia distribution system18 establishes a unique user ID to identify the registered user ofpersonal media device12 withmedia distribution system18. A user may also be prompted to enter any additional information to be included withinuser profile1610. A user may also configurepersonal media device12 by entering configuration settings that define the level or degree of sharing that is authorized foruser profile1610. For example, the user may authorize sharing of only a user ID without any other personal information. The user may also authorize sharing ofuser profile1610 automatically with any other personal media device (e.g., secondpersonal media device12′) without any user action. Alternatively, the user may authorize sharing ofuser profile1610 only when initiated by the user or only to certain other personal media devices (e.g., devices with matching media content personas, as described below). Further, the user may configurepersonal media device12 to disable sharing entirely.
Before transferring data,personal media device12 may establish1652 communication with secondpersonal media device12′.Personal media devices12,12′ may communicate directly through a wireless communication channel, for example, using IR communication assembly186 (FIG. 3) and an infrared data communications protocol known to those skilled in the art, such as a protocol complying with a standard defined by the Infrared Data Association (IrDA).Personal media devices12,12′ may also communicate directly through a physical coupling such as a hard-wired connection. Communication may be initiated by physical contact betweenpersonal media devices12,12′ as disclosed in U.S. Provisional Patent Application Ser. No. 60/705,747 (Attorney Docket No. REA016), entitled “Personal Media Device and Methods of Using Same”, which was filed on 5 Aug. 2005 and is fully incorporated herein by reference. Alternatively,personal media devices12,12′ may establish communication indirectly, for example, through proxy computer54 (FIG. 1) and/or network(s)30,32 (FIG. 1).
Once communication has been established, one or bothpersonal media devices12,12′ may initiate1654 a user profile exchange or transfer. A user profile exchange may occur whenpersonal media devices12,12′ are sharing other data e.g., a device-to-device media content transfer or a playlist transfer. Alternatively, a user profile exchange may occur independently (i.e., without transferring or sharing other data).
When a profile exchange or transfer is initiated by secondpersonal media device12′,personal media device12 may confirm1656 thatpersonal media device12 is authorized to share profile1610 (e.g., by checking user configuration settings and prompting the user if necessary). If authorized to shareprofile1610,personal media device12 may transmit1660user profile1610 topersonal media device12′ and/or may receive1662 a user profile (e.g., a friend's user profile) from another personal media device (e.g., secondpersonal media device12′).
Data transfer process1620 onpersonal media device12 may transmit and/or receive user profiles. User profiles received from other personal media devices may be stored bypersonal media device12 as e.g., friend profile(s)1612. As mentioned above, eachfriend profile1612 may include at least a user ID associated with the user of the other personal media device. In one embodiment, user profiles exchanged betweenpersonal media devices12,12′ may include only a user ID, and other user profile data may be obtained by establishing communication with media distribution system18 (to be discussed below in greater detail).
An exemplary method of dynamically updating profiles is illustrated inFIG. 32 and is described below.Personal media device12 may establish1670 communication with media distribution system18 (e.g., viaproxy computer54 or via a WAP52).Media distribution system18 may includeuser profile database1618 that includes user profiles for registered users/subscribers ofmedia distribution system18.User profile database1618 may include, in addition to user IDs, additional information associated with the user's media content activity and preferences. In an exemplary embodiment ofmedia distribution system18, user profiles may define playlists generated by the user, music genres selected by the user, artists selected by the user, and recent listening activities (e.g., tracks and/or artists) of the user.
Upon establishing communication withmedia distribution system18;personal media device12,media distribution system18 and/orproxy computer54 may determine ifuser profile1610 inuser profile database1618 is up-to-date. This determination may be made by comparing the version ofuser profile1610 stored withindatabase1618 to the version ofuser profile1610 stored onpersonal media device12. If the version ofuser profile1610 stored withindatabase1618 needs to be updated,dynamic updating process1622 may update1672database1618 by uploading1674 all or a portion of the version ofuser profile1610 stored onpersonal media device12 touser profile database1618. Accordingly,dynamic updating process1622 may synchronize the version ofuser profile1610 stored onpersonal media device12 and the version ofuser profile1610 stored withindatabase1618. As discussed above, user profiles may define e.g., a user ID, a user name, age, gender, contact information (e.g., email address, telephone number, instant messenger address), playlists generated by the user, music genres selected by the user, artists selected by the user, and recent listening activities (e.g., tracks and/or artists) of the user, for example.
Upon establishing communication withmedia distribution system18;personal media device12,media distribution system18 and/orproxy computer54 may also determine iffriend profile1612 is up-to-date. This determination may be made by comparing the version offriend profile1612 stored withindatabase1618 to the version of thefriend profile1612 stored onpersonal media device12. If the version offriend profile1612 stored onpersonal media device12 needs to be updated,dynamic updating process1622 may update1676personal media device12 by downloading1680 all or a portion of the version offriend profile1612 stored withindatabase1618 topersonal media device12. Additionally/alternatively, the up-to-date friend profile may be presented to the user as e.g., a web page and may be accessed usingpersonal media device12 or proxy computer54 (FIG. 1), for example
When afriend profile1612 onpersonal media device12 includes only a user ID, the user ID infriend profile1612 may provide a link to a more complete friend profile inuser profile database1618, which may be downloaded to personal media device12 (as described above) or presented to the user as e.g., a webpage (as described above).
The user ofpersonal media device12 may continue to obtain updated information associated withfriend profile1612 that was transferred from another personal media device (e.g., secondpersonal media device12′) touser profile database1618. Once completed, the profile updating process may be stopped1682.
Accordingly, a system and method for exchanging and dynamically updating profiles allows users ofpersonal media devices12,12′ to establish relationships.
Comparing User Media Personas:
Referring toFIGS. 33 and 34, there is shown a system and method for comparing user media personas onpersonal media devices12,12′. The system and method may compare user media personas associated with users ofpersonal media devices12,12′ within proximity of each other to determine if the users have similar interests or patterns in media content (e.g., similar music interests or patterns).
User profile1710 may be stored onpersonal media device12 and may include at least a user ID capable of identifying a user within media distribution system18 (e.g., as described above).User profile1710 may also include other information associated with a user such as a user name, age, gender, contact information (e.g., email address, telephone number, instant messenger address).User persona1712 may also be stored onpersonal media device12 and may include other information associated with the user's media content activity and preferences. For example, for a music distribution system, a user persona may include data representing the music that the user has listened to, the type of music playlists the user has generated, and the type of artists and/or genres the user prefers.
Data transfer process1720 may be resident on and executed bypersonal media device12 and may perform the core functions and/or processes associated with the transfer of data to and frompersonal media devices12,12′.Persona generation process1730 may be resident on and executed bypersonal media device12 to generate a user persona based on user preferences and user activities.
Pattern matching process1732 may be resident on and executed bypersonal media device12 to match multiple personas to determine similarities in user preferences and user activities.Data transfer process1720,persona generation process1730 andpattern matching process1732 may be components of device application64 (FIG. 1), for example, as an embedded feature, a software plug-in, or a stand-alone application. The instruction sets and subroutines ofdata transfer process1720,persona generation process1730, andpattern matching process1732 may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated intopersonal media device12.
An exemplary embodiment of exchanging and comparing user media personas is illustrated inFIG. 34 and is described below.Personal media device12 may generate1750user media persona1712 fromuser data1740 stored onpersonal media device12.Persona generation process1730 onpersonal media device12, for example, may compile data representinguser media persona1712 fromuser playlists1742 generated by the user,general user preferences1744 entered by the user (e.g., favorite genres and artists), anduser metadata1744 associated with specific content items (e.g., user ratings, number of times played, last played).User media persona1712 may include, for example, data identifying tracks that have been highly rated, listened to frequently, listened to recently, and/or added to playlists; data identifying favorite artists; and data identifying favorite genres.Persona generation process1730 may then store the data representinguser media persona1712 as a file or data structure onpersonal media device12.
Personal media devices12,12′ may establish1752 communication, for example, using a wireless protocol.Personal media devices12,12′ may initiate wireless communication with other personal media devices within the wireless communication range ofpersonal media devices12,12′ (e.g., in a round robin fashion). Alternatively,personal media devices12,12′ may establish communication using an IR data communications protocol or using a physical coupling (e.g., a cable), as described above. Communication may be established as part of another data transfer (e.g., a device-to-device transfer, a user profile transfer, or playlist transfer).
Once communication is established, onepersonal media device12 may receive1754 a user media persona transferred by thedata transfer process1720 of anotherpersonal media device12′. For example,personal media device12 may receive the user media persona for the user ofpersonal media device12′. In particular,personal media device12′ may act as a master device and push a user media persona (defining the likes/interests of the user ofpersonal media device12′) to personal media device12 (which acts as a slave device). A user may configurepersonal media device12 to transmit/receive media personas only to/from certain other users or to disable the process of transmitting and/or receiving media personas from other personal media devices.
Personal media device12 (i.e., the slave device) may then compare1756 the received user media persona (which defines the likes/interests of the user ofpersonal media device12′) with user media persona1712 (which defines the likes/interests of the user of personal media device12).Pattern matching process1732 onpersonal media device12, for example, may compare the data included within the user media personas to determine1758 if there is any matching data (e.g., artists, genres, tracks) between the two personas. A user may configurepattern matching process1732 to define what constitutes matching data. The matching degree may be set, for example, to require an exact match of all user media persona data (e.g., all artists, genres, and tracks), a match of most user media persona data (e.g., 51% of all artists, genres, and tracks), or a match of any user media persona data (e.g., any artist, genre, or track).
Upon determining a matching pattern, personal media device12 (i.e., the slave device) may generate1760 a matching persona notification notifying the user of personal media device12 (i.e., the slave device) and/or the user ofpersonal media device12′ (i.e., the master device) that a user with similar interests and patterns has been located.
The notification may provide additional information such as the physical distance of the other personal media device having the matching persona and/or a summary of the matching data. Upon notification of a match,personal media devices12,12′ may also exchange personal information such as a name and contact information (e.g., email address, instant messenger address, and/or telephone number) to allow the users to communicate.Personal media devices12,12′ may also exchange user profiles1710 (e.g., as described above). Personal information and/oruser profile1710 may be transmitted automatically upon receiving notification of matching user persona data, or may be transmitted in response to the authorization of the user. The user may also configurepersonal media device12 to suppress the transmission of personal information and/or user profiles. Upon notification of a match, users ofpersonal media devices12,12′ may also initiate a device-to-device media content transfer, as described above.
Accordingly, a system and method of comparing user media personas may allow a user to identify and locate other users with similar media content interests and patterns (e.g., similar music interests and listening patterns).
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. Accordingly, other implementations are within the scope of the following claims.