MEDIA DISTRIBUTION SYSTEM

Abstract: A method and system for a media distribution system for automating the distribution of streaming media content is disclosed. According to the method, the distribution of media content over a network is regulated by generating a subscription package that includes a set of distribution rules and one or more encrypted media files; receiving a request to deliver the subscription package to an affiliate server connected to the network; in response to receiving the request, delivering the subscription package to the affiliate server; and upon receiving requests from clients connected to the network, the affiliate server decrypting one of the one ore more encrypted media files and delivering the decrypted media file to the clients based on the set of distribution rules.

Description: MEDIA DISTRIBUTION SYSTEM This patent application claims priority from, U.S. Provisional Patent Application No. 60/119,762, filed on February 11, 1999, entitled PRODUCTION SYSTEM FOR DIGITALLY ENCODING INFORMATION; U.S. Provisional Patent Application No. 60/120,209, filed on February 11, 1999, entitled MEDIA DISTRIBUTION SYSTEM; U.S. Provisional Patent Application No. 60/120,207, filed on February 11, 1999, entitled SYSTEM FOR REMOTE PREFORMANCE OF DIGITAL ENCODING; U.S. Provisional Patent Application No. 60/120,206, filed on February 11, 1999, entitled DIGITAL VCR; U.S. Provisional Patent Application No. 60/120,208, filed on February 11, 1999, entitled SYSTEM FOR HANDLING VOICE MAIL IN AN E-MAIL SYSTEM; and U.S. Provisional Patent Application No. 60/156,817, filed on September 29, 1999, entitled STREAMING MEDIA ENCODING AGENT FOR TEMPORAL MODIFICATIONS; the content of which are hereby incorporated by reference in their entirety. FIELD OF THE INVENTION The present invention generally relates to computer systems, and more specifically to a media distribution system for automating the distribution of media content. BACKGROUND OF THE INVENTION In the traditional world of audio/video ownership, media content owners typically enter into syndication contracts with "affiliates" to distribute their product. In general, these contacts allow the media content owners to control and regulate how their assets are used and distributed to the general public. For example, a media content owner, such as MGM Grand or Dream Works, routinely enter into contracts with large movie theatre owners, such as United Artists or Century theatres, to have their movies shown at multiple different theatres throughout the United States. In general, to control the manner in which the theatre owners can reproduce and show the movies (for example, when, where and how long the movies will be playing), the media content owners require the movie theatre owners to enter into a distribution or syndication contract. Likewise, television show producers, such as NBC and CBS, generally enter into syndication contracts with affiliate television stations to control the manner in which their television shows are aired. In recent years, the media industry has expanded its horizons beyond the traditional methods of media content distribution. Recorded media programs, such as audio, photographs, and even feature films are now being recorded or converted into a variety of different digital encoding formats. For example, digital movies may now be encoded using a variety of different encoding formats such as RealVideo, RealMedia, MPEG, QuickTime and Windows Media encoding formats. Likewise, digital audio recordings may be encoded using a variety of different encoding formats such as RealAudio, Liquid Audio and Windows Media encoding formats. One advantage of encoding the media content in the different encoding formats is that it allows the media content to be distributed or streamed over a network, such as the Internet. Thus, media content that was previously only available in movie theatres, on VCR tapes, DVDs or compact disks (CDs), can now be distributed to consumers via the Internet. As such, a new channel of distribution has been created that will allow media owners to distribute their media content to consumers throughout the world. However, one drawback with using the Internet to distribute media content is that the network servers ("sites") that a typical consumer visits, varies from person to person. Thus, if the media content is distributed from only a small group of servers, the distribution ofthe media content will be limited to only those consumers that visit those particular sites. One method of expanding the number of consumers that visit servers that are configured to distribute an owner's media content is to distribute the media content from a significantly large number of network servers. For example, by providing media content from many different sites, that are often visited by a percentage ofthe consumers throughout the world, a media content owner can expose millions of people to their media content. Furthermore, by increasing the number of servers that distribute the media content, the bandwidth and throughput problems that are often associated with a popular site can be significantly reduced. However, a drawback with distributing media content from a plurality of different servers is that there is currently no mechanism for regulating or controlling the manner in which the media content is distributed from the different sites. For example, if a media content owner contracts to have their media content be distributed from affiliate servers A, B, C, D and E, the content owner must provide each affiliate with a copy ofthe media content. To regulate or monitor the duration in which the affiliate may distribute the media content to consumers, the content owner is required to monitor each ofthe affiliate sites. In addition, the content owner is generally limited as to the type of distribution contract that it may enforce even if the monitoring services are in place. For example, if the content owner would like to enter into a distribution contract that limits the number of times that an affiliate server can stream a particular movie to requesting consumers, there currently does not exists any monitoring mechanism that can regulate or control the number of times that an affiliate server can stream a movie to requesting consumers. Furthermore, and potentially even more problematic, is that to allow each ofthe different affiliates to distribute the media content, the content owner must provide each affiliate with a copy ofthe media content. For example, if Lucas Films desires to have the movie "Star Wars" streamed from fifty (50) different affiliate servers, each affiliate must be given a copy ofthe movie in streaming format. Thus, with today's reproduction technology, even if Lucas Films can regulate and control the distribution from all fifty affiliate servers, there is no way of guaranteeing that one or more copies of the film were not made and distributed to consumers throughout the world, thus significantly reducing the retail value ofthe media content. Based on the foregoing, it is clearly desirable to provide a mechanism for regulating and controlling the distribution of media content over a network. It is also desirable to provide a mechanism that allows for distribution of media content from affiliate servers but which reduces the chance that unauthorized copies of the media content are reproduced. SUMMARY OF THE INVENTION The present invention comprises, in one aspect, a method for regulating the distribution of media content over a network, including the steps of: ; receiving a first request that requests the delivery ofthe subscription package; in response to receiving said first request, generating the subscription package, wherein the subscription package includes a set of distribution rules and one or more encrypted media files; and delivering the subscription package to an affiliate server connected to the network; wherein the affiliate server upon receiving requests from clients connected to the network, is configured to decrypt one ofthe one or more encrypted media files and to deliver the decrypted media file to the clients based on the set of distribution rules. The invention also encompasses a computer-readable medium, and an apparatus configured to carry out the foregoing steps. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is illustrated by way of example, and not by way of limitation, in the figures ofthe accompanying drawings and in which like reference numerals refer to similar elements and in which: FIG. 1 is a block diagram of a media distribution system in which certain embodiments ofthe invention may be used; FIG. 2 is a block diagram showing certain internal details ofthe system depicted in FIG. 1; FIG. 3 illustrates a mechanism for placing encoding orders with an encoding service; FIG. 4 illustrates a mechanism for registering encoded files and their associated program metadata into a distribution server; FIG. 5 illustrates an example of how a subscription may be generated; FIG. 6 illustrates a mechanism for allowing a user to publish previously unpublished subscriptions; FIG. 7 illustrates a mechanism for generating a subscription package; FIG. 8 illustrates an example of a registration sequence that may be used to register affiliate servers with a distribution server; FIG. 8 A illustrates another example of a registration sequence that may be used to register affiliate servers with a distribution server; FIG. 9 illustrates an example of a media content downloading sequence that may be used to download a subscription package from a distribution server to an affiliate server; FIG. 9A illustrates another example of a communication sequence that may be used to download a subscription packages from a distribution server to an affiliate server; FIG. 10 illustrates an example of a media content registration sequence for registering media content contained within a downloaded subscription package; FIG. 11 illustrates an example of a media content streaming sequence that may be performed to stream a media file to a requesting client; FIG. 12 is a block diagram of another computer system architecture upon which embodiments ofthe invention may be implemented; and FIG. 13 is another block diagram of a media distribution system in which certain embodiments ofthe invention may be used. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT A media distribution system for automating the distribution of streaming media content is disclosed. In the following description, for the purposes of explanation, numerous specific details are set forth to provide a thorough understanding ofthe present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form to avoid unnecessarily obscuring the present invention. CONTEXT OVERVIEW Information or content that may be encoded in a particular encoding format is generally referred to herein as a "media program". For example, the term media program includes any information or content that may be stored or contained on a variety of different types of storage mediums, including but not limited to such storage mediums as VHS, Reel-to-Reel or 8-MM tapes, DVDs or Laser Discs, BetaCams or Digital Video Cassettes, Compact Discs (CDs), audio cassettes or 8-Track tapes, in addition to a variety of different computer-storage units or devices. In addition, the term media program includes information that may be received from a source other than a pre-recorded storage medium, such as live feed information received from an analog or digital camera, or from a satellite, cable or network feed. As described herein, a media program may consist of an entire work, such as the entire movie stored on a VHS tape; or may instead consist of only a portion of a work, such as a single song stored on a CD that contains a plurality of recorded songs. In addition, the term "program metadata" refers to the information that is associated with a particular media program but which is not actually part ofthe information that is typically heard or seen when viewing or listening to the media program. Program metadata may consist of information that is of written form, such as printed information on a CD jacket, or electronically encoded information, such as serial numbers and track information that is typically coded within the CD itself. For example, the artist name, song titles and copyright information associated with a CD represents program metadata which is not typically heard when playing the CD. MEDIA DISTRIBUTION SYSTEM OVERVIEW According to one aspect ofthe invention, a media distribution system is provided for automating the distribution of streaming media content. In one embodiment, a distribution server is configured to store and manage a set of distribution rules and a plurality of media programs, which may be encoded in a variety of different formats. As described herein, the distribution rules represent a set of rules that may be applied to one or more media programs to regulate and control the use ofthe media programs. Once applied, these rules regulate how, when and to whom an affiliate server may present a media program in streaming format. FIG. 1 is a block diagram of a media distribution system 100 in which certain embodiments ofthe invention may be used. Generally, distribution system 100 includes a delivery unit 102, a distribution server 104, one or more affiliate servers 106,108,110, and a plurality of clients 112-124. As is depicted in FIG. 1, the components of system 100 are connected through one or more network systems. These one or more network systems may include, but are not limited to, Local Area Networks (LAN), and Wide Area Networks (WAN), including the Internet. Thus, the media distribution system allows each component to be separately located. Delivery unit 110 is a combination of hardware and/or software components that are configured to communicate with distribution server 104 for delivering media programs over a network. In one embodiment, the media programs are encoded using a particular encoding format, such as Real or Windows media streaming format, prior to being delivered to distribution server 104. For example, a single media program may be encoded using a variety of different encoding formats that includes, but is not limited to such formats as Real Media, Liquid Audio, Windows Media, and QuickTime. Thus, a single media program may be encoded in one or more encoding formats and delivered by delivery unit 102 to distribution server 104. A variety of methods may be used to encode the media programs prior to delivery to distribution server 104. For example, several methods for encoding media programs are described in co-pending U.S. Patent Application Number , entitled " DISTRIBUTED PRODUCTION SYSTEM FOR DIGITALLY ENCODING INFORMATION," filed by Martin Tobias, Beverley Kite, Mathews Brown, Eric Lindvall, Jeffrey Oberlander, Aaron Roberts, Anna Hansen, Greg Malley and Ken Suzuki on (Attorney Docket Number 53326-016), the content of which is hereby incorporated by reference in its entirety. In one embodiment, messages or packets containing the media programs are encrypted prior to delivery from delivery unit 102 to distribution server 104. For example, delivery unit 102 may be configured to encrypt each message or packet that it communicates to distribution 104. In this manner, the delivery unit 102 can guarantee secure delivery of media programs to distribution server 104 even when communicating over a non-private network. The distribution server 104 is a combination of hardware and/or software components that are configured to manage both encoded media programs and a set of distribution rules that may be applied to the media programs. In one embodiment, distribution server 104 is configured to communicate with one or more affiliate servers 106,108,110 and to receive distribution requests that identify one or more media programs. Upon receiving a distribution request, the distribution server 104 generates a "subscription" which includes the one or more encrypted media programs (identified in the request) and a set distribution rules, which are to be applied to the distribution ofthe media programs. In one embodiment, a user interface is provided that allows individuals to select and configure a set of distribution rules that they would like to have applied to one or more media programs. Thus, a mechanism is provided that allows certain individuals the ability to dynamically generate a set distribution rules and to apply the distribution rules to media programs that are to be delivered to affiliate servers. For example, Table 1 illustrates an example of a few ofthe types of distribution rules that may be applied to the media programs. TABLE 1. Distribution Rules In one embodiment, the distribution server includes an encryption mechanism that encrypts each media program that is included within a particular subscription. In certain embodiments, the encryption mechanism uses a unique key, or set of keys, to encrypt the media programs that are provided to a particular authorized affiliate server. As will be explained in further detail below, by encrypting the media programs the distribution server 104 can ensure that the media programs are distributed only by authorized affiliate servers and that the authorized affiliate servers adhere to the distribution rules that have been attached to each ofthe media programs. Thus, the encryption mechanism provides a method/system for enforcing the distributions rules that have been associated with (applied to) a particular set of media programs by ensuring that the content (media programs) can be delivered to requesting clients (112-124), only by the specific affiliate server and only based on the distribution rules that have been applied to the particular set of media programs. After generating a subscription, the distribution server 104 delivers the subscription to the requesting affiliate server (106,108,110). The affiliate servers 106,108,110 are a combination of hardware and/or software components that are configured to communicate with distribution server 104 to download subscriptions and to distribute the media programs to requesting clients (112-124) based on the distribution rules that have been assigned to each media program. For example, an affiliate server may be a portal server, such as a Broadcast.com server that is configured to stream media content to requesting clients in a manner that is consistent with the distribution rules that have been assigned to media content. Clients 112-124 may be a device, such as a personal computer, workstation, or other like device that is capable of communicating with affiliate servers 106, 108, 110 over a network. In one embodiment, clients 112-124 are configured to include a browser application that is capable of retrieving and displaying electronic document information that is received from affiliate servers 106, 108 and 110. For example, clients 112-124 may be configured to include a browser program, such as Microsoft Internet Explorer® or Netscape Navigator® that is used to communicate with and to retrieve electronic documents (such as Web Pages) from affiliate servers 106, 108 and 110. As such, end- users may interact with clients 112-124 to request delivery (for example streaming) of selected media programs. OBTAINING ENCODED FILES FIG. 2 is a block diagram ofthe system of FIG. 1 showing certain internal details. In one embodiment, an encoding service 200 is configured to receive encoding orders for content that is to be managed by distribution server 104. For example, FIG. 3 illustrates a mechanism for placing encoding orders with encoding service 200. As depicted, by interacting with a client 304 that is connected to encoding service 200, a user 302 is presented with an HTML order form 306 for ordering the encoding of one or more media programs in one or more encoding formats. In response to completing the order form 306, an order entry servlet 308 receives the order for processing by encoding service 200. In addition to the HTML order form 306, the user 302 may also complete an XML metadata form 312 to enter program metadata that is associated with the one or more media programs. In response to completing the XML metadata form 312, an XML entry servlet 314 receives the form data for processing by encoding service 200. Thereafter, encoding service 200 completes the encoding order for delivery to distribution server 104 via delivery unit 102. In one embodiment, the encoding service 200 uses XML to describe the data that is contained within a completed encoding order. Referring back to FIG. 2, the delivery unit 102 is configured to receive completed encoding orders (encoded media files), containing the one or more encoded media programs and associated program metadata, from encoding service 200 and to deliver encoded media files to distribution server 104. As depicted in FIG. 2, delivery unit 102 includes a delivery manager 202 and a security manager 204. Upon receiving a completed encoding order for distribution server 104, security manager 204 encrypts the encoded media files to ensure secure delivery to distribution manager 104. For example, the security manger 204 may encrypt the encoded files into one or more compressed packages using an agreed-upon password. Once encrypted, delivery manager 202 then transmits the one or more encrypted packages to distribution server 104. MANAGING DELIVERED CONTENT As depicted in FIG. 2, in certain embodiments the distribution server 104 includes a registration manager 206, a subscription manager 208, a security manager 210, a delivery manager 212, an order manager 214 and one or more data containers or repositories 216 and 218. Repositories 216 and 218 may be configured as databases, file systems or any other type of storage unit or device that may be used to store and manage information. In one embodiment, repositories 216 and 218 are configured to store encoded media files, program metadata, media content distribution rules, affiliate registration information and any other information that is required for managing the distribution of media content. Furthermore, repositories 216 and 218 may be configured as a single physical unit or a plurality of units that are maintained on separate devices or computer systems. Delivery manager 212 is configured to receive encoded files that are contained within encrypted messages or packets sent from delivery unit 102. Upon receiving an encrypted message, delivery manager 212 interacts with security manager 210 to decrypt the message and to register the one or more encoded files (encoded media programs and associated program metadata) into repositories 216, 218. FIG. 4 illustrates a mechanism for registering encoded media programs and their associated program metadata into distribution server 104. As depicted, upon receiving an encrypted message from delivery manager 202, delivery manager 212 interacts with security manager 210 to decrypt the message. Once the package is decrypted, the delivery manager stores the encoded media files in repository 216 and interacts with the XML parser 402 to parse the XML data that describes the package and to store the program metadata into repository 218. In certain embodiments, repository 218 is configured as a database system, such as an Oracle or SQL server and is used to store and maintain metadata that is associated with the encoded programs. In addition, repository 216 may be configured as flat file system for storing and maintaining the encoded media programs. CREATING SUBSCRIPTIONS In one embodiment, subscription manager 208 (FIG. 2) is configured to generate subscriptions based on the encoded files and the set of distribution rules that are maintained by distribution server 104. For example, FIG. 5 illustrates how a subscription may be generated using a distribution rule and one or more encoded media files. As depicted, subscription manager 208 provides a user interface that allows a user 510 to enter a subscription request for generating a subscription. In one embodiment, the subscription manager 208 generates a graphical user interface (GUI) for displaying to a user 510 a list of media programs and distribution rules that are available for generating a subscription. The user 510 may then interact with the GUI to select one or more media programs and a distribution rule for generating a subscription. In certain embodiments, subscription manager 208 is configured so as to allow the user 510 to view the different media programs. For example, the subscription manager 208 may be built using the Java Media Framework (JMF) to allow users to preview a streaming media programs prior to generating a subscription. In certain embodiments, when user 510 submits a subscription request, subscription manager 208 communicates with repository 502 (repositories 216, 218) to retrieve the corresponding encoded media files 506 and distribution rules 504. Subscription manager 208 then combines the distribution rules 504 and encoded media files 506 to create a subscription 508. Thereafter, the subscription manager 208 stores the subscription 508 in memory for subsequent delivery to a requesting affiliate server. In one embodiment, order manager 214 is configured to provide a user interface that allows individuals associated with an authorized affiliate server to submit subscription requests. In certain embodiments, the user interface may be dynamically generated based on the subscriptions that are available ("active") in the system. For example, order manager 214 may be configured to receive requests over the network and to verify that the request is from a user that is associated with an authorized affiliate server (authorized affiliate user). Upon authenticating the authorized affiliate user, the order manager 214 may dynamically generate a graphical user interface (GUI) for displaying a list of media programs and distribution rules that are available for generating a subscription. The authorized affiliate user may then interact with the GUI to select one or more media programs and a distribution rule for generating a subscription (i.e., place a subscription order). In one embodiment, the authorized affiliate user is provided with the ability to preview the available media programs prior to submitting a subscription order. In another embodiment, an external e-commerce engine, such Qpass or Vitessa is used to handle the processing of authorized affiliate user orders/transactions. For example, upon receiving a subscription order, distribution server 104 may communicate with an e-commerce engine to determine whether the order can or should be fulfilled. If the e-commerce engine determines that the order/transaction should be fulfilled, the security manager 210 and the delivery manager 212 then generate a subscription package and deliver the package to the requesting authorized affiliate server. In one embodiment, if it is determined that the order/transaction should be fulfilled, a charge is automatically made to an account, possibly a credit card account, that is associated with the affiliate. Thereafter, the distribution server 104 initiates the delivery ofthe subscription package to the affiliate server. PUBLISHING SUBSCRIPTIONS Once a subscription has been generated it may then be scheduled for publication or advertisement to affiliate servers. In one embodiment, a publishing service is provided that allows a user to schedule subscriptions for publication. In this manner, a user associated with the distribution server 104 can choose which of their subscriptions will be made available for purchase (i.e., included within the subscription catalog) by authorized affiliate servers. For example, FIG. 6 illustrates a mechanism in which a user 510 interacts with the subscription manager 208 to publish previously unpublished subscriptions. In one embodiment, subscription manager 208 provides a GUI to user 510 for scheduling the publication of one or more unpublished subscription. In this example, in response to user 510 submitting a publication request, subscription manager 208 communicates with repository 502 to retrieve a list of unpublished subscriptions 602. The user 510 may then select one or more subscriptions from the list of unpublished subscriptions 602 and enter a date/time to schedule their publication. The publication service 604 then schedules the selected subscriptions for publication based on the requested date/time entry. Thereafter, as depicted in FIG. 7, at the scheduled date/time, a publication manager 702 initiates the publication ofthe selected unpublished subscriptions. In one embodiment, to initiate the publication, publication manager 702 communicates with repository 502 to identify the scheduled unpublished subscriptions and the corresponding encoded media files 506 that are associated with the scheduled unpublished subscriptions. Next, for each scheduled publication, the publication manager 702 retrieves the corresponding encoded media files 506 from repository 502 and communicates with security manager 210 to generate encrypted files 706. In addition, publication manager 702 retrieves the subscription rules 704 (assigned distribution rules) that were previously assigned to the unpublished subscription, encrypts the rules, and combines them with the encrypted file to generate a subscription package 708. However, in certain embodiments, the subscription rules are encrypted after arriving at an affiliate server, thus allowing the distribution rules to remain unencrypted at the distribution server 104. In one embodiment, a subscription rule XML Document Type Definition (DTD) is used to define the rules associated with a subscription. An XML file is sent with the encrypted content, then imported into the affiliate system. Once the rules are imported into the affiliate system, they are encrypted for protection against tampering. In one embodiment, messages or packets that are sent between distribution server 104 and an affiliate server are encrypted to protect against unauthorized access. As is discussed further below, the encrypted files 706 are encrypted in such a manner to guarantee that they can only be played or streamed by an authorized affiliate server and in a manner that is consistent with the assigned distribution rules. In addition, because the encrypted files can only be played or streamed by an authorized affiliate server, there is little incentive for anyone to generate and distribute unauthorized copies ofthe encrypted media files. Moreover, by encrypting the distributions rules that are associated with an encrypted media file, a mechanism is provided that reduces the ability of someone circumventing the particular distribution rules that have been applied to the media file. In one embodiment, to publish a subscription, publication manager 702 updates a subscription catalog to include a reference to the particular subscription. By allowing a user ofthe distribution server 104 to add and remove the references to the subscription catalog, the user is provided with a mechanism that allows them easily to turn on and off the availability of a particular subscription. The use of subscription catalogs are explain in further detail below. REGISTERING AFFILIATE SERVERS Before an affiliate server can decrypt and stream an encrypted file (encoded media program), the affiliate server is first required to register with the distribution server 104. In one embodiment, registration manager 206 (FIG. 2) is configured to provide a user interface that allows affiliate servers to register with distribution server 104. FIG. 8 illustrates an example of a registration sequence that may be used to register affiliate servers with distribution server 104. In this example, an affiliate user 802 interacts with an affiliate client 804, typically through a browser program, to request registration with registration manager 206. In response to receiving the request, registration manager 206 provides an affiliate registration form 806 which may then be filled out by affiliate user 802. Once the registration form 806 is completed, an affiliate registration servlet enters the information into repository 502. The registration manager 206 then provides affiliate user 802 with an affiliate software download form 810 for downloading the "distribution control software" that is required for the affiliate server to become an "authorized" affiliate server. In other words, before an affiliate server can decrypt and stream an encrypted file 706, the affiliate server must first download distribution control software that can decrypt the one or more encrypted files 706 within a subscription package 708 and which then regulates the streaming ofthe encrypted file content based on the distribution rules that have been assigned to the encrypted file content and included within the subscription package. In one embodiment, the distribution server 104 includes an affiliate software download servlet 812 that is configured to download and install the distribution control software on a requesting affiliate server 106. Thereafter, the registration manager 206 updates the repository 502 to indicate that affiliate server 106 is now an authorized affiliate server. In certain embodiments, the distribution control software is configured as Java based server software that can be downloaded, installed and executed on a variety of different computers and operating systems. In another embodiment, the affiliate server 106 installs the distribution control software independent of its registration with distribution server 104. Once the distribution control software has been installed, the affiliate server 106 may then register with a distribution server to become an authorized affiliate server. For example, as illustrated in FIG. 8A, in certain embodiments, in registering with a distribution server, the authorized affiliate server is provided with a user name and password (that is generally distribution server specific) through which the affiliate server can access the distribution server to retrieve and download subscription packages. As such, an affiliate server may register with multiple distribution servers to retrieve and download subscription packages from one or more specific distribution servers. DOWNLOADING ENCODED CONTENT Once an affiliate server has been authorized it can then communicate with distribution server 104 to retrieve and download subscription packages. Referring back to FIG. 2, in one embodiment, in response to downloading the distribution control software, affiliate server 106 is configured to include a subscription manager 220, a delivery Manager 222, and a security manager 224. The subscription manager 220 is configured to communicate with subscription manager 208 of distribution server 104 to allow an affiliate user to select a subscription package for download. The delivery manager 222, on the other hand, is configured to communicate with delivery manager 208 of distribution server 104 to download the selected subscription package. Once a subscription package is downloaded to affiliate server 106, delivery manager 208 interacts with security manager 224 to register the subscription with in repository 226. Once a subscription package is downloaded, the encrypted media files and associated distribution rules are stored in their encrypted state. In certain embodiments, the encrypted media files and associated distribution rules remain in their encrypted state and are only decrypted by the distribution control software during real-time delivery of the media program to a requesting client. FIG. 9 illustrates an example of a media content downloading sequence that may be used to download a subscription package from distribution server 104 to affiliate server 106. In this example, affiliate user 802 interacts with client 804 to connect and login into distribution server 104. For example, in response to connecting to distribution server 104, affiliate user 802 may be presented with an affiliate login form 902. In one embodiment, in response to completing the affiliate login form 902, affiliate user 802 is presented with a subscription catalog 904 that contains a list of subscription packages that are available for download by affiliate server 106. The affiliate user 802 may then add one or more subscription packages to shopping cart 906 and submit the order for download. In one embodiment, affiliate server 106 is automatically charged a monetary fee based on the particular subscription packages that are submitted for download. For example, a subscription package that includes the movie "Stars Wars" and which has been assigned a distribution rule that allows it to be streamed to requesting clients for thirty (30) days may be given a monetary value of X-dollars. Alternatively, a subscription package that includes a "Windows 95 training film" and which has been assigned a distribution rule that allows it to be streamed to requesting clients a maximum of two-hundred (200) times may be given a monetary value of Y-dollars. FIG. 9A illustrates another example of a communication sequence that may be used to download subscriptions from a distribution server to an authorized affiliate server. Once a subscription order is submitted, delivery manager 212 retrieves the corresponding subscription packages and transmits them to affiliate server 106 through delivery manager 222. Thereafter, affiliate server 106 parses the subscription packages and registers the media content within its repository. For example, FIG. 10 illustrates an example of a media content registration sequence that may be performed by affiliate server 106 to register media content that is contained within a downloaded subscription package. In this example, upon completion ofthe download sequence (FIG. 9), delivery manager 212 notifies affiliate user 802 that the download has completed. In one embodiment, upon completing a successful download of a subscription package, delivery manager 212 automatically notifies affiliate user 802, for example by sending an email message or posting information at a Web site that the download has completed successfully. Once a download sequence completes, the subscription is registered into the affiliate server 106. In one embodiment, affiliate server stores the encrypted media files in a repository 227 and interacts with an XML parser 1004 to parse the XML data that describes the package and to store the program metadata and subscription rules into a repository 226. In one embodiment, repository 227 is a flat file system that can be used to search and retrieve the encrypted media files. Alternatively, repository 226 is database or database system, such as a relational database management system (RDBMS) or an Object Orientated Database (OODB) system that is configured to store the subscription rules that are assigned to each ofthe encrypted media files. In certain embodiments, upon registering a new subscription, affiliate server 106 automatically generates an electronic document, such as a Web page, that includes a link for playing the media content that was contained within the subscription package. In one embodiment, for each media file that is contain within a subscription package, a user interacting with the affiliate server 106, generates or updates one or more Web pages that (1) describe the contents ofthe media file; and (2) includes a link that may be selected by an end-user to request the streaming ofthe media file. STREAMINGMEDIA CONTENT As depicted in FIG. 2, affiliate server 106 is configured to include one or more streaming media servers 228 and 230 for streaming media content over a network. In this example, client 114 is configured to include a browser program 232 that can be used to request and display electronic documents that are maintained by affiliate server 106. In response to an end-user selecting a link within an electronic document that is associated with a media file, the affiliate server 106 decrypts the corresponding encrypted file and forwards the file to the appropriate streaming server 228,230. Thereafter, the streaming server initiates the streaming ofthe media file to client 114. FIG. 11 illustrates an example of a media content streaming sequence that may be performed by affiliate server 106 in response to a client requesting the streaming of a particular media file. In this example, when an end-user 1002 interacts with browser program 232 to request a list of available media content, affiliate server 106 causes an electronic document 1104 to be displayed that includes a link to one or more media files. In response to the end-user 1102 selecting a particular media file link, subscription manager 220 retrieves the subscription rules that were assigned to the media file to determine whether the media program may be streamed to client 114. If the subscription manager 220 determines based on the set of subscription rules that the media file cannot be streamed to client 114, the affiliate server 106 sends a message to client 114 indicating that the request has been denied. Alternatively, if the subscription manager 220 determines based on the set of subscription rules that the media file can be streamed to client 114, the security manager 224 retrieves the corresponding encrypted media file from repository 227, decrypts the encrypted media file, and forwards the file to the appropriate streaming sever 228,230. Thereafter, the streaming server 228 performs the necessary steps to stream the media file to the requesting client 114. For example, if the end-user requests a media file that is encoded in Windows Media streaming format, the media file is forwarded to a Windows Media server 228 for streaming to a windows media player 234 on client 114. In one embodiment, the actual player that is needed to play the streaming video is built into the user interface that is displayed at client 114. As such, the end-user 1102 is not required to invoke a separate application (for example, a media player application) to receive and play the streaming media file. HARDWARE OVERVIEW Fig. 12 is a block diagram that illustrates a computer system 1200 upon which an embodiment ofthe invention may be implemented. Computer system 1200 includes a bus 1202 or other communication mechanism for communicating information, and a processor 1204 coupled with bus 1202 for processing information. Computer system 1200 also includes a main memory 1206, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 1202 for storing information and instructions to be executed by processor 1204. Main memory 1206 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1204. Computer system 1200 further includes a read only memory (ROM) 1208 or other static storage device coupled to bus 1202 for storing static information and instructions for processor 1204. A storage device 1210, such as a magnetic disk or optical disk, is provided and coupled to bus 1202 for storing information and instructions. Computer system 1200 may be coupled via bus 1202 to a display 1212, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 1214, including alphanumeric and other keys, is coupled to bus 1202 for communicating information and command selections to processor 1204. Another type of user input device is cursor control 1216, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1204 and for controlling cursor movement on display 1212. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. The invention is related to the use of computer system 1200 for a media distribution system for automating the distribution of streaming media content. According to one embodiment ofthe invention, a media distribution system is provided by computer system 1200 in response to processor 1204 executing one or more sequences of one or more instructions contained in main memory 1206. Such instructions may be read into main memory 1206 from another computer-readable medium, such as storage device 1210. Execution ofthe sequences of instructions contained in main memory 1206 causes processor 1204 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 1206. In alternative embodiments, hard- wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments ofthe invention are not limited to any specific combination of hardware circuitry and software. The term " computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 1204 for execution. Such a medium may take many forms, including but not limited to, non- volatile media, volatile media, and transmission media. Non- volatile media includes, for example, optical or magnetic disks, such as storage device 1210. Volatile media includes dynamic memory, such as main memory 1206. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1202. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 1204 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 1200 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 1202 can receive the data carried in the infrared signal and place the data on bus 1202. Bus 1202 carries the data to main memory 1206, from which processor 1204 retrieves and executes the instructions. The instructions received by main memory 1206 may optionally be stored on storage device 1210 either before or after execution by processor 1204. Computer system 1200 also includes a communication interface 1218 coupled to bus 1202. Communication interface 1218 provides a two-way data communication coupling to a network link 1220 that is connected to a local network 1222. For example, communication interface 1218 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a conesponding type of telephone line. As another example, communication interface 1218 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1218 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information. Network link 1220 typically provides data communication through one or more networks to other data devices. For example, network link 1220 may provide a connection through local network 1222 to a host computer 1224 or to data equipment operated by an Internet Service Provider (ISP) 1226. ISP 1226 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 1228. Local network 1222 and Internet 1228 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 1220 and through communication interface 1218, which carry the digital data to and from computer system 1200, are exemplary forms of carrier waves transporting the information. Computer system 1200 can send messages and receive data, including program code, through the network(s), network link 1220 and communication interface 1218. In the Internet example, a server 1230 might transmit a requested code for an application program through Internet 1228, ISP 1226, local network 1222 and communication interface 1218. In accordance with the invention, one such downloaded application provides for a media distribution system for automating the distribution of streaming media content as described herein. The received code may be executed by processor 1204 as it is received, and/or stored in storage device 1210, or other non- volatile storage for later execution. In this manner, computer system 1200 may obtain application code in the form of a carrier wave. ALTERNATIVES, EXTENSIONS The media distribution mechanism that is described herein provides an automated system for regulating and controlling the syndication of media content. As explained, by encrypting the media content and by providing only authorized affiliate servers the ability to decrypt and distribute the media content based on an assigned set of distribution rules, content owners can regulate and control the manner in which their content is distributed over a network. Further, because only authorized affiliate servers are configured with the means of decrypting the encrypted media files, the incentive to generate unauthorized copies ofthe encrypted media files is significantly reduced. In describing certain embodiments ofthe invention, several drawing figures have been used for explanation purposes. However, the invention is not limited to any particular context as shown in drawing figures. For example, FIG. 2 illustrates distribution server 104 and affiliate server 106 as being configured as separate components. However, in certain embodiments, distribution server 104 and affiliate server 106 may actually be configured as a single component operating in a single computer unit or system. Thus, embodiments ofthe invention may include one or more of the components actually being configured to execute on a single computer unit or system. As a further example, although the FIG. 1 depicts a single distribution server 104, as illustrated in FIG. 13, in certain embodiments multiple distribution servers 104,105 are each configured to communicate and service a plurality of affiliate servers 106,108, 110, for delivering media content to a variety of different clients 112-124. In addition, although examples have depicted the distribution server 104 receiving encoded media files from delivery unit 102, in certain embodiments distribution server 104 may be configured to itself encode media content for syndication to affiliate servers. Moreover, delivery unit 102 may be configured to receive encoded media content by reading the content directly from a pre-recorded storage medium, or through a live feed, such as a satellite, cable or network feed. Thus, embodiments ofthe invention are not limited to any particular method of encoding or receiving encoded media content. As such, the specification and drawings should be viewed in an illustrative rather than a restrictive sense. In addition, in this disclosure, including in the claims, certain process steps are set forth in a particular order, and alphabetic and alphanumeric labels are used to identify certain steps. Unless specifically stated in the disclosure, embodiments ofthe invention are not limited to any particular order of carrying out such steps. In particular, the labels are used merely for convenient identification of steps, and are not intended to imply, specify or require a particular order of carrying out such steps. Thus, embodiments ofthe invention are only limited by the following claims.

Claims: CLAIMS What is claimed is: 1. A method for regulating the distribution of media content over a network, comprising the steps of: receiving a first request that requests delivery of a subscription package; in response to receiving said first request, generating the subscription package, wherein the subscription package includes a set of distribution rules and one or more encrypted media files; and delivering the subscription package to an affiliate server connected to said network; wherein the affiliate server upon receiving requests from clients connected to said network, is configured to decrypt one ofthe one or more encrypted media files and to deliver the decrypted media file to the clients based on the set of distribution rules. 2. The method as recited in claim 1, further comprising the steps of: receiving one or more encoded media files at a distribution server, wherein the one or more encoded media files include content for distribution to said clients connected to said network; and generating the one or more encrypted media files by encrypting said one or more encoded media files. 3. The method as recited in claim 1, further comprising the steps of: prior to delivering the subscription package to said affiliate server, installing distribution control software on said affiliate server, wherein the distribution control software controls the manner in which the affiliate server can deliver the decrypted media file to said clients connected to said network; and receiving from said affiliate server a second request to be registered as an authorized affiliate server; and in response to receiving said second request, registering said affiliate server as an authorized affiliate server so as to allow the authorized affiliate server to decrypt said one or more encrypted media files and to distribute the contents ofthe encrypted media files to said clients connected to said network. 4. The method as recited in claim 1, wherein: the step of generating a subscription package, includes the step of generating a subscription package that includes one or more encrypted streaming media files; and wherein the affiliate server upon receiving requests from clients connected to said network, is configured to decrypt one ofthe one or more encrypted streaming media files and to stream the decrypted streaming media file to the clients based on the set of distribution rules. 5. A method for regulating the use of media content over a network, comprising the steps of: displaying a first user interface window on a display unit, wherein the first interface window includes information for generating a set of distribution rules; displaying a second user interface window on said display unit, wherein the second interface window includes a list of one or more media programs; and receiving user input requesting the generation of a subscription package, wherein the subscription package includes one or more media programs and a particular set of distribution rules that are to be applied to the one or more media programs, wherein the particular set of distribution rules are used to regulate the manner in which the one or more media programs are used. 6. A computer-readable medium carrying one or more sequences of instructions for regulating the distribution of media content over a network, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: receiving a first request that requests delivery of a subscription package; in response to receiving said first request, generating the subscription package, wherein the subscription package includes a set of distribution rules and one or more encrypted media files; and delivering the subscription package to an affiliate server connected to said network; wherein the affiliate server upon receiving requests from clients connected to said network, is configured to decrypt one ofthe one or more encrypted media files and to deliver the decrypted media file to the clients based on the set of distribution rules. 7. The computer-readable medium as recited in claim 6, further comprising instructions for performing the steps of: receiving one or more encoded media files at a distribution server, wherein the one or more encoded media files include content for distribution to said clients connected to said network; and generating the one or more encrypted media files by encrypting said one or more encoded media files. 8. The computer-readable medium as recited in claim 6, further comprising instructions for performing the steps of: prior to delivering the subscription package to said affiliate server, installing distribution control software on said affiliate server, wherein the distribution control software controls the manner in which the affiliate server can deliver the decrypted media file to said clients connected to said network; and receiving from said affiliate server a second request to be registered as an authorized affiliate server; and in response to receiving said second request, registering said affiliate server as an authorized affiliate server so as to allow the authorized affiliate server to decrypt said one or more encrypted media files and to distribute the contents ofthe encrypted media files to said clients connected to said network. 9. The computer-readable medium as recited in claim 6, wherein: the step of generating a subscription package, includes the step of generating a subscription package that includes one or more encrypted streaming media files; and wherein the affiliate server upon receiving requests from clients connected to said network, is configured to decrypt one ofthe one or more encrypted streaming media files and to stream the decrypted streaming media file to the clients based on the set of distribution rules. 10. A computer-readable medium carrying one or more sequences of instructions for regulating the use of media content over a network, wherein execution ofthe one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: displaying a first user interface window on a display unit, wherein the first interface window includes information for generating a set of distribution rules; displaying a second user interface window on said display unit, wherein the second interface window includes a list of one or more media programs; and receiving user input requesting the generation of a subscription package, wherein the subscription package includes one or more media programs and a particular set of distribution rules that are to be applied to the one or more media programs, wherein the particular set of distribution rales are used to regulate the manner in which the one or more media programs are used. 11. A system for regulating the distribution of media content over a network, the system comprising: a distribution server that is configured to generate a subscription package, wherein the subscription package includes one or more encrypted media files and a set of distribution rules that have been assigned to said one or more encrypted media files; one or more affiliate servers, where said affiliate servers are configured to receive requests from clients connected to said network and to decrypt said one or more encrypted media files and to distribute their contents in response to receiving requests from said clients over said network.

Inventors: BROWN MATTHEWS, KITE BEVERLEY, OBERLANDER JEFFREY, SAWICKI TODD, SUTTON BRADLEY, THOMAS KAPENDA, TOBIAS MARTIN, BROWN, MATTHEWS, KITE, BEVERLEY, OBERLANDER, JEFFREY, SAWICKI, TODD, SUTTON, BRADLEY, THOMAS, KAPENDA, TOBIAS, MARTIN
Applicants: LOUDEYE TECHNOLOGIES INC, LOUDEYE TECHNOLOGIES, INC.
Application year: 2000
Main classification: H04L29
IPC codes: G09C1, H04L9, H04L29, H04M3, H04N7