Real-time or near real-time streaming
First Claim
1. A machine readable non-transitory storage medium storing executable instructions that when executed by a data processing system cause the system to perform a method comprising:
- executing a user application on a client device to present content of media files on the client device, to control access to content of the media files for presentation by the user application, and to retrieve a decryption key from a media source remote from the client device; and
running a media serving process on the client device remote from the media source as a different software process separate from the user application, to retrieve a playlist specifying the media files and the media source at which the media files are available, to retrieve the decryption key from the user application, to retrieve the media files from the media source, to decode the retrieved media files using the decryption key, and to provide decoded content from the media files to the user application, wherein access to the content of the media files is controlled by a key processed by, or retrieved by and processed by, the user application and transmitted to the media serving process, and when the user application retrieves the key, the retrieving of the key is independent of the media serving process retrieving the media files and wherein the user application provides a user interface to control the presentation and communicates with the media serving process through an Application Programming Interface (API) and wherein the media serving process retrieves the playlist from the user application or from the media source.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatuses provide real-time or near real-time streaming of content, specified in one or more playlists, using transfer protocols such as an HTTP compliant protocol. In one embodiment, a method can execute a user application on a client device to present media files and to control presentation of the media files. The method can further run a media serving process on the client device to retrieve a playlist specifying the media files and a media source at which the media files are available, to retrieve the media files from the media source, and to decode the media files retrieved. The media serving process can call the user application to process a custom URL in order to obtain an object referred to by the custom URL.
294 Citations
38 Claims
-
1. A machine readable non-transitory storage medium storing executable instructions that when executed by a data processing system cause the system to perform a method comprising:
-
executing a user application on a client device to present content of media files on the client device, to control access to content of the media files for presentation by the user application, and to retrieve a decryption key from a media source remote from the client device; and running a media serving process on the client device remote from the media source as a different software process separate from the user application, to retrieve a playlist specifying the media files and the media source at which the media files are available, to retrieve the decryption key from the user application, to retrieve the media files from the media source, to decode the retrieved media files using the decryption key, and to provide decoded content from the media files to the user application, wherein access to the content of the media files is controlled by a key processed by, or retrieved by and processed by, the user application and transmitted to the media serving process, and when the user application retrieves the key, the retrieving of the key is independent of the media serving process retrieving the media files and wherein the user application provides a user interface to control the presentation and communicates with the media serving process through an Application Programming Interface (API) and wherein the media serving process retrieves the playlist from the user application or from the media source. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 35)
-
-
10. A machine implemented method performed by a data processing system, the method comprising:
-
executing a user application on a client device to present content of media files on the client device, to control access to content of the media files for presentation by the user application, and to retrieve a decryption key from a media source remote from the client device; and running a media serving process on the client device remote from the media source as a different software process separate from the user application, to retrieve a playlist specifying the media files and the media source at which the media files are available, to retrieve the decryption key from the user application, to retrieve the media files from the media source, to decode the retrieved media files using the decryption key, and to provide decoded content from the media files to the user application, wherein access to the content of the media files is controlled by a key processed by, or retrieved by and processed by, the user application and transmitted to the media serving process, and when the user application retrieves the key, the retrieving of the key is independent of the media serving process retrieving the media files and wherein the user application provides a user interface to control the presentation and communicates with the media serving process through an Application Programming Interface (API) and wherein the media serving process retrieves the playlist from the user application or from the media source. - View Dependent Claims (11, 12, 13, 14, 15, 36)
-
-
16. A data processing system comprising:
-
means for executing a user application on a client device to present content of media files on the client device, to control access to content of the media files for presentation by the user application, and to retrieve a decryption key from a media source remote from the client device; and means for running a media serving process on the client device remote from the media source as a different software process separate from the user application, to retrieve a playlist specifying the media files and the media source at which the media files are available, to retrieve the decryption key from the user application, to retrieve the media files from the media source, to decode the retrieved media files using the decryption key, and to provide decoded content from the media files to the user application, wherein access to the content of the media files is controlled by a key processed by, or retrieved by and processed by, the user application and transmitted to the media serving process, and when the user application retrieves the key, the retrieving of the key is independent of the media serving process retrieving the media files and wherein the user application provides a user interface to control the presentation and communicates with the media serving process through an Application Programming Interface (API) and wherein the media serving process retrieves the playlist from the user application or from the media source. - View Dependent Claims (17)
-
-
18. A machine readable non-transitory storage medium storing executable instructions that when executed by a data processing system cause the system to perform a method comprising:
-
executing a user application on a client device to present content of media files on the client device through a user interface provided by the user application and to control access to content of the media files for presentation by the user application; and running a media server process on the client device remote from a media source as a different software process separate from the user application, to retrieve a playlist specifying the media files and the media source at which the media files are available, to retrieve the media files from the media source, and to decode the retrieved media files; receiving, by the media server process, a URL in the playlist, which URL refers to data to be used by the media server process to decode at least one of the media files; calling, by the media server process through an Application Programming Interface (API), the user application to process the URL to obtain the data to be used by the media server process; receiving, by the media server process, the data in response to the user application processing the URL to obtain the data; decoding, by the media server process, at least one of the media files using the data; and providing, by the media server process, the decoded at least one of the media files to the user application, wherein access to the content of the media files is controlled by a key processed by, or retrieved and processed by, the user application and transmitted to the media server process, and when the user application retrieves the key, the retrieving of the key is independent of the media server process retrieving the media files. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 37)
-
-
30. A machine readable non-transitory storage medium storing executable instructions that when executed by a data processing system cause the system to perform a method comprising:
-
executing a user application on a client device remote from a media server, the user application being configured to control access to content of the media files for presentation by the user application and to present content of media files on the client device through a user interface of the user application; running a media server process on the client device remote from the media server as a different software process separate from the user application, to retrieve a playlist specifying the media files and the media source at which the media files are available; receiving, by the media server process, a URL in or for the playlist, which URL refers to data to be used to process at least one of the media files; calling, by the media server process, the user application to process the URL to obtain the data to be used by the remote media server; receiving, by the media server process, the data in response to the user application processing the URL to obtain the data, wherein access to the content of the media files is controlled by the data to be used to process the at least one of the media files, the data processed by, or retrieved and processed by, the user application and transmitted to the media server process, and when the user application retrieves the data, the retrieving of the data is independent of the media server process retrieving the media files and wherein the user application communicates with the media server process through an Application Programming Interface (API) and wherein the media server process retrieves the playlist from the user application or from the media server; and transmitting the data to the remote media server. - View Dependent Claims (31, 32, 33, 38)
-
-
34. A method of presenting media files on a client device and controlling access by the client device to content of the media files, the method comprising:
-
sending a playlist and a key, by a user application running on the client device, to a media serving process running on the client device, wherein the playlist comprises one or more URIs each identifying a media file containing media content, and wherein the key controls access to the content of the media files; requesting from the media source, by the media serving process, one or more media files using the one or more URIs in the playlist file; receiving from the media source, by the media serving process, the one or more media files; accessing, by the media serving process, the content of the one or more media files received from the media source; requesting, by the media serving process, a new key from the user application to access the content of the one or more media files, when accessing of the content of the one or more media files fails, and; retrieving, by the user application, a new key to access the one or more media files; sending, by the user application, the new key to the media serving process; accessing, by the media serving process, the content of the one or more media files using the new key; and sending, by the media serving process, the content of the one or more media files to the user application for presentation on the client device by the user application.
-
Specification