There are a variety of content distribution systems that operate over the Internet. File sharing programs in particular have become some of the most popular mechanisms for content acquisition. Some of the more popular file sharing programs employ a peer-to-peer system (P2P) wherein the files are distributed from one user to another. Some of the most popular P2P systems include BITTORRENT, LIMEWIRE, the original NAPSTER, GNUTELLA, and the like. They all provide a mechanism for users to share content in the form of media files. The files include various forms of digital content such as images, movies, software, music, and so on. The systems generally provide a mechanism for users to share content among themselves with little control over the content that is distributed. As a result, the systems have been used to share content both legally and illegally. In addition, such systems also have other problems with distribution because of the open nature of the systems.
One significant problem users experience with P2P file sharing systems is that they are also used to distribute malicious programs such as Trojans, spyware, adware, trackware, dialers, keyloggers and so on. For example, when a user downloads a file using a peer to peer (P2P) system, the file could contain a harmful virus that could damage the user's computer and spread the virus to other computers. More common is the use of the systems to distribute spyware or adware included in the downloaded files. Spyware tracks online activities of systems on which it is installed and sends information about such activities to interested third parties. Moreover, some file sharing programs can expose a user's hard drive to other network users. Any sensitive information that store inside a user's computer—credit card numbers, bank account information, social security number—are vulnerable to breach.
Another problem is that users do not know and are not guaranteed that the media file they think they are downloading is actually the content they desire. For example, when a user uses a P2P protocol such as BITTORRENT to download a file, the P2P file pointer (or otherwise known as a seed) will refer to the file the user wanted. The actual contents of the file maybe something completely different. The user has no way of knowing the actual file contents until the file is completely downloaded and rendered. If the wrong file is downloaded, a user's time and effort is wasted as a result.
Even if a user finds the correct file to download, there may still be issues such as poor or inconsistent content quality, incorrect language, and long download time to name a few. For example, a user who desires to watch a high resolution episode of BATTLESTAR GALLACTICA may be frustrated by the lack of availability of a high resolution version on a P2P network. Alternatively, a TV program that a user wants to watch in English may be in French instead. Finally, high resolution files equate to large file sizes, resulting in long download times that could take hours or even days for a full episode to download. A consumer typically wants a high quality experience, similar to what they are accustomed to when watching pay per view movies at home on TV, both in the video quality and in the speed of the delivery.
As alluded to above, P2P file sharing can lead to violations of copyright law. Today, by some estimates, there are as many as 500,000 digital movies being exchanged illegally over the Internet. When a user shares commercial music or video files online without the copyright holder's permission, the user's activity most likely violates Copyright law. When the major record labels and music publishers sued NAPSTER, for example, it was not difficult for them to locate a large number of NAPSTER users who were sharing copyrighted music without authorization.
It is therefore desirable to have systems and methods that facilitate the download of high quality media files from a reliable, high quality and legitimate content source in a fast and reliable manner.
A system, method and apparatus are disclosed herein for media referral and distribution. In one embodiment, the method uses a provided term to search for content, on for example a P2P network. Data associated with the provided term is received that contains information indicative of a title associated with the content and information indicative of a location of the content. The method optionally substitutes a trusted source for the location; and retrieves the content from the trusted source.
A system on which the method may operate may comprise a client device, a search server, an index server and a content media server. The index server may be stand alone or included in the client device. The system may also comprise a consumer electronic device.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
The foregoing Summary, as well as the following Detailed Description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the embodiments, there are shown in the drawings example constructions of the embodiments; however, the embodiments are not limited to the specific methods and instrumentalities disclosed. In the drawings:
The aspects summarized above can be embodied in various forms. The following description shows, by way of illustration, combinations and configurations in which aspects of the invention may be practiced. It is understood that the described aspects and/or embodiments are merely examples. It is also understood that other aspects and/or embodiments can be used, and structural and functional modifications can be made, without departing from the scope of the disclosure.
Reference throughout this specification to “one embodiment,” “an embodiment,” “an example embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the techniques disclosed. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” “an example embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
In the discussion that follows, details relating to computing devices and networks are well known. Accordingly, such details are generally omitted for the sake of clarity. Furthermore, the described features, structures, or characteristics of the disclosed techniques may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the disclosed techniques. One skilled in the relevant art will recognize, however, that the disclosed techniques may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the disclosed techniques.
The client device 102 and the consumer electronic device may be representative of any appropriate type of device, such as a computing device, or a set top box, or a mobile device that a user typically carries on his or her person. The client device 102, as it is described herein, may include any device that may, for example, receive and store data. The client device 102 may be, for example, a portable device, a variety of computing devices including a portable media player, e.g., a portable music player, such as an MP3 player, an iPod, etc., a portable computing device, such as a laptop, a personal digital assistant (“PDA”), a portable phone, such as a cell phone of the like, a smart phone, a Session Initiation Protocol (SIP) phone, a video phone, a portable email device, a thin client, a portable gaming device, etc., a consumer electronic device, such as a TV, a DVD player, a set top box, a display device, etc., (d) a public computing device, such as a kiosk, an in-store music sampling device, etc. With respect to
The client device 102 may include hardware components such as a processor, a graphics card, a storage component, a memory component, an antenna, a communication component, an input/output component such as a speaker, a display, a keypad, a microphone, or the like. The client device 102 may also include software components such as an operating system that may control the hardware components. In the embodiment shown in
The display component 104 may be any form of display for the presentation of information for visual, audio, tactile reception, or the like. For example, the display component may be a common television set display, a computer monitor, a handheld LCD screen, or the like. The communication component 108 may include an antenna, communication port, or the like that may be used to establish a communication link with a network, such as network 114. The communication component 108 may then communicate with servers or the like over the network to connect the device with other computing components or servers, such as the content media server 120 or a service provider.
The processor 106 of client device 102 may include any appropriate type of processor such as a single processor, multiple processors that may be distributed or centrally located, or the like. The processor 106 may include or link to any other suitable hardware such as cache, Random Access Memory, storage devices, or the like and/or software.
The input/output component 110 may include, for example, an input component such as a keypad, a touch screen, a button, a microphone, TV remote control or the like, and an output component such as a transmitter, a speaker, a microphone, or the like. A user may interact with the computing device 102 via the input/output component 110 to access various types of media content. For example, a user may select to watch a movie file via a remote, or select to view a video display on the display component 104 via a touch screen display. Often, a user will stream media content over a network, such as the Internet. For example, via a P2P file sharing program viewable on the display component 104, the user may input a search term via the input/output component. The user may select or “click on” media files that are accessible from a carrier to download or stream to the user's local machine, such as computing device 102. As disclosed herein, media content may be distributed to the client device 102, and stored in the database 112. Content in a media file may be text, audio, still images, animation, video, interactive content forms, software, a data file or the like. The media content may be stored in one or more of an MPEG, WMA, AVI, or other media content format.
In the example configuration shown in
As shown in
The client device 102 may be in communication with a service provider via the network 138. A service provider may be any entity that provides services, usually via a subscription or web service, to business or individuals. For example, the service provider may be a network or internet service provider, a cellular telephone provider, an application service provider, a managed service provider, a cable service provider, or the like. The network 138 may be operated by the service provider.
The client device 102 may be in communication with a content media server 120 via the network 138. Similar to client device 102, the example content media server 120 may include an input/output component, a communications component, a processor, and software components such as an operating system that may control the hardware components.
The example content media server 120 shown in
The communication component 114 may include an antenna, communication port, or the like that may be used to establish a communication link with a network, such as network 138. The communication component 114 may then communicate with servers or the like over the network to connect the device 102 with other computing components or servers, such as the index server 130 or a service provider.
The processor 116 of the content media server may include any appropriate type of processor such as a single processor, multiple processors that may be distributed or centrally located, or the like. The processor 116 may include or link to any other suitable hardware such as cache, Random Access Memory, storage devices, or the like and/or software.
In the example configuration shown in
The media content database 118 may contain an inventory of media content information, such as a structured collection of records and/or data associated with various service providers, devices and users/entities associated with service provider or a device, such as client device 102, networks that support communication with the devices on the network 114, etc. The media content can include media from a cable network carrier, a music site, a video rental entity, and so on.
The example search server 128 shown in
The processor 126 of device 128 may include any appropriate type of processor such as a single processor, multiple processors that may be distributed or centrally located, or the like. The processor 126 may include or link to any other suitable hardware such as cache, Random Access Memory, storage devices, or the like and/or software.
The communication component 124 may include an antenna, communication port, or the like that may be used to establish a communication link with a network, such as network 138. The communication component 124 may then communicate with servers or the like over the network to connect the device 102 with other computing components or servers, such as the index server 130 or a service provider.
In the example configuration shown in
The search database 122 may contain an inventory of media content information, such as a structured collection of records and/or data associated with various service providers, devices and users/entities associated with service provider or a device, such as client device 102, networks that support communication with the devices on the network 138, etc.
The example index server 130 shown in
The communication component 132 may include an antenna, communication port, or the like that may be used to establish a communication link with a network, such as network 138. The communication component 132 may then communicate with servers or the like over the network to connect the device 102 with other computing components or servers, such as the search server 128 or a service provider.
The processor 134 of the index server may include any appropriate type of processor such as a single processor, multiple processors that may be distributed or centrally located, or the like. The processor 134 may include or link to any other suitable hardware such as cache, Random Access Memory, storage devices, or the like and/or software.
In the example configuration shown in
The index database 136 may contain an inventory of media content information, such as a structured collection of records and/or data associated with various service providers, devices and users/entities associated with service provider or a device, such as client device 102, networks that support communication with the devices on the network 114, etc.
When the user finds the media the user wants, he/she selects the media to be retrieved. The user computer 208 gets a file known as “a seed file,” which is a pointer to the media file the user desires. After the seed file has been downloaded, the client software, for example, will display and start receiving the data 214 from the untrusted source 212. Thereafter, the seed file is parsed to find information associated with the content name 216. Of course, the referral system 100 is not limited to only parsing the seed file; the same parsing technique can be performed with a media file.
After information associated with the actual content name 216 has been extracted, this information is sent to an index server 210 to request the location of trusted sources 220 that can provide high quality versions of the same content the user is seeking. Trusted source 220 can be any source that can provide content that the user wants. For example, trusted source 220 can be a site where users have downloaded reliable content before. Alternatively, a trusted source is any source that the index server 210 deems trustworthy. Additionally, trusted source 220 can be a source that has a VERISIGN secured seal; signifying that the web site's authentication and encryption is trustworthy. Furthermore, trusted source 220 can simply be a site that is well known, such as online retailer like AMAZON, NETFLIX, CINEMA NOW, and so on. In another embodiment, a user may setup a preferred source. A preferred source is a content source where the user desires to receive content from the referral system 100 first before other un-preferred source. For example, a user might prefer downloading from a site where he or she can receive a discount, reward points for purchases, a site on which he or she has a subscription, or a site that tends to offer lower prices.
After locating the trusted source 220, the user is requested to click “yes” 226 to proceed to purchase the episode from the trusted source 220. In one embodiment, the desired content is automatically downloaded without user request and thereafter the user is asked if they would like to select the media file from the trusted source 220. In a different embodiment, the user 202 can instruct the system to automatically purchase the content without verification. Of course, content can also be downloaded from trusted sources that are free of charge. As a result of the referral system 100, the user 202 can receive a reliable high quality version of the desired content almost instantly without the need to go through the lengthy, risky and unreliable P2P downloading process.
The computer 700 comprises a processing portion 714, a memory portion 704, and an input/output portion 716. The processing portion 714, memory portion 704, and input/output portion 716 are coupled together (coupling not shown in
In a basic configuration, the computer 700 may include at least one processing portion 714 and memory portion 704. The memory portion 704 can store any information utilized in conjunction with transmitting, receiving, and/or processing media content, such as movie or music files, For example, depending on the device, as described above, the memory portion is capable of storing segments of media objects, or whole media contents. Depending upon the exact configuration and type of processor, the memory portion 704 can be volatile (such as RAM) 706, non-volatile (such as ROM, flash memory, etc.) 708, or a combination thereof The computer 700 can have additional features/functionality. For example, the computer 600 can include additional storage (removable storage 710 and/or non-removable storage 712) including, but not limited to, magnetic or optical disks, tape, flash, smart cards or a combination thereof Computer storage media, such as memory and storage elements 704,706, 708, 710, and 712, include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, universal serial bus (USB) compatible memory, smart cards, or any other medium which can be used to store the desired information and which can be accessed by the computer 700. Any such computer storage media can be part of the computer 700.
The computer 700 can also contain the communications connection(s) 722 that allow the computer 700 to communicate with other devices, for example through network 138. Communications connection(s) 722 is an example of communication media. Communication media typically embody computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection as might be used with a land-line telephone, and wireless media such as acoustic, RF, infrared, cellular, and other wireless media. The computer 700 also can have input device(s) 720 such as keyboard, remote, keypad, mouse, pen, voice input device, touch input device, etc. Output device(s) 714 such as a display, speakers, television, printer, etc. also can be included.
The methods and apparatus for distributing and receiving segments of a media file can be embodied in the form of program code that is transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via any other form of transmission, wherein, when the program code is received and loaded into and executed by a machine, such as an EPROM, a gate array, a programmable logic device (PLD), a client computer, or the like, the machine becomes an apparatus for providing information. When implemented on a general-purpose processor, the program code combines with the processor to provide a unique apparatus that operates to invoke the functionality of the present subject matter. Additionally, any storage techniques used in connection with the present subject matter can invariably be a combination of hardware and software.
While example embodiments of the present subject matter have been described in connection with various computing devices, the underlying concepts can be applied to any computing device or system capable of implementing the present subject matter. The various techniques described herein can be implemented in connection with hardware or software or, where appropriate, with a combination of both. Thus, the methods and apparatus for pre-fetching media content, or certain aspects or portions thereof, can take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for implementing the present subject matter. In the case of program code execution on programmable computers, the computing device will generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. The program(s) can be implemented in assembly or machine language, if desired. In any case, the language can be a compiled or interpreted language, and combined with hardware implementations.
While the present subject matter has been described in connection with the various embodiments of the various Figs, it is to be understood that other similar embodiments can be used or modifications and additions can be made to the described embodiment for performing the same function of distributing or storing media content without deviating there from. For example, one skilled in the art will recognize that a system for referring media content as described can apply to any environment, whether wired or wireless, and can be applied to any number of devices connected via a communications network and interacting across the network. Therefore, requesting content from a trusted source and receiving and storing such content should not be limited to any single embodiment, but rather should be construed in breadth and scope in accordance with the appended claims.