WO2009109976A2 - Distributing internet channels to a media viewer - Google Patents

Distributing internet channels to a media viewer Download PDF

Info

Publication number
WO2009109976A2
WO2009109976A2 PCT/IL2009/000251 IL2009000251W WO2009109976A2 WO 2009109976 A2 WO2009109976 A2 WO 2009109976A2 IL 2009000251 W IL2009000251 W IL 2009000251W WO 2009109976 A2 WO2009109976 A2 WO 2009109976A2
Authority
WO
WIPO (PCT)
Prior art keywords
categories
channel
client device
data
interest
Prior art date
Application number
PCT/IL2009/000251
Other languages
French (fr)
Other versions
WO2009109976A3 (en
Inventor
Nadav Kedem
Vladislav Drouker
Original Assignee
Webtview Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Webtview Ltd. filed Critical Webtview Ltd.
Publication of WO2009109976A2 publication Critical patent/WO2009109976A2/en
Publication of WO2009109976A3 publication Critical patent/WO2009109976A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Definitions

  • This invention relates to distributing content such as Internet channels to media viewers.
  • EPG Electronic Program Guide
  • VOD channels VOD channels
  • Known EPGs are normally of static structure facilitating selection from a predefined list of channels by identifying a desired channel.
  • the user can mark, using the EPG, a desired time slot, and in return a list of episodes broadcasted in the specified time slot is displayed to the user, allowing the user to select the desired episode.
  • the channels are categorized and the user can select the desired category, say sport channels or news channels, and thereafter select the desired channel within the specified category.
  • the desired category say sport channels or news channels
  • the static nature of the EPG representation is maintained also in the latter option, since the list of categories and the channels that fall into each category are all predetermined, limiting the browsing capabilities of the user. This shortcoming is of particular relevance when considering the numerous available Internet channels which hinder effective browsing using hitherto known static EPG representation.
  • EPG Electronic Program Guide
  • MP Media Player
  • a system for dynamically manipulating categories through a client device that includes Electronic Program Guide (EPG) for identifying at least a content of a channel displayable on a Media Player (MP) of said client device, comprising : a storage storing at least categories and references to episodes contents associated ⁇ with the categories; the client device is configured to send a request for at least one category according to a given criterion; an application server configured to retrieve at least the requested categories from the storage, giving rise to retrieved data and converting the retrieved data into enriched semi structured information that includes category information readily convertible to EPG representation; the client device is configured to display at least one display category from among said retrieved categories according to a display selection condition; the client device is further configured to convert the semi-structured information into EPG representation that includes the displayed at least one category, for displaying on the MP; the client device is further configured to apply a function on at least two of said displayed categories for retrieving from the storage data identifying at least one channel of interest.
  • EPG Electronic Program Guide
  • MP Media Player
  • Fig. 1 is generalized system architecture, in accordance with an embodiment of the invention.
  • Fig. 2 illustrates a sequence of operation for implementing browsable Dynamic category manipulation using Electronic Program Guide (DEPG) for identifying at least an episode in a channel for display on the MP, in accordance with an embodiment of the invention
  • DEPG Electronic Program Guide
  • Fig. 3 illustrates a flow chart of a sequence of operational stages for performing a log-in operation, in accordance with an embodiment of the invention
  • Fig. 4 illustrates a flow chart of a sequence of operational stages in accordance with an embodiment of the invention
  • Fig. 5 illustrates a specific instance of a data flow in accordance with an embodiment of the invention.
  • Embodiments of the present invention may use terms such as, processor, computer, apparatus, system, sub-system, module, unit, device (in single or plural form) client, server for performing the operations herein.
  • This may be specially constructed for the desired purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including optical disks, CD-ROMs, magnetic-optical disks, readonly memories (ROMs) 5 random access memories (RAMs), electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, any other type of media suitable for storing electronic instructions that are capable of being conveyed via a computer system bus.
  • a computer readable storage medium such as, but not limited to, any type of disk including optical disks, CD-ROMs, magnetic-optical disks, readonly memories (ROMs) 5 random access memories (RAMs), electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, any other type of media suitable for storing electronic instructions that are capable of being conveyed via a computer system bus.
  • a client device 100 e.g. Set-Top-Box
  • a client device 100 includes a known per se Media Player (MP) 101 that is coupled to a Dynamic Electronic Program Guide (DEPG) module 102 both communicating through Application Programming Interface (API) 103 to a client module 104.
  • MP Media Player
  • DEPG Dynamic Electronic Program Guide
  • API Application Programming Interface
  • client module may be a plug-in module.
  • the client module includes in this example a download module 104' and content processing module 104".
  • the term MP includes computer software/hardware for playing back multimedia files, supporting an array of media formats, including both audio and video files.
  • MP is typically associated with Audio/Video Codecs module for decoding digital data contents (such as an episode of a selected channel).
  • a set-top-box is only one out of many non-limiting examples.
  • the device 100 may be incorporated in a television set, cellular telephone, PDA etc.
  • a server 110 that includes application server module 111 associated with Database 112.
  • the client communicates with the server for extracting data from the database 112 and displaying data in Dynamic EPG representation, all as will be explained in greater detail below.
  • the desired contents e.g. an episode in selected channel
  • the actual content is retrieved through download module 104' (that forms part of the client end) from a source e.g. from a publisher node 113 (through the Internet 114) that broadcasts the desired content or, e.g. designated node 115 through a private group 116 that stores the desired content.
  • the private network may be an Internet Service Provider (ISP) network of nodes where the client node 100 forms part of the network.
  • ISP Internet Service Provider
  • Such private networks may be utilized e.g. for providing Quality of Service (QOS) content to the subscribers.
  • one (or more) of the nodes of the private network may be a server 117 having a cache memory 118 for storing content downloaded 119 (in a known per se manner), e.g. from various nodes in the public network 114.
  • the selected content e.g. an episode in selected channel
  • download module 104' from the cache memory 118 of the server 117 rather than from the particular node of the public network, thereby facilitating for example high QOS.
  • certain content may be downloaded from the nodes of the public network 114 and other content may be downloaded from the cache of the server( or servers) in the private network.
  • Fig. 2 it illustrates a sequence of operations for implementing a browsable Dynamic category manipulation using Electronic Program Guide (DEPG) for identifying at least an episode in a channel for displayable on the MP, in accordance with an embodiment of the invention.
  • DEPG Electronic Program Guide
  • a client device 201 there are shown a client device 201, an application Server module 202 and the Database module 203.
  • the database 203 stores at least categories and reference to episode contents associated with the categories, e.g. implemented as a relational model database.
  • the reference to the episode contents can be for example a unique media id used to identify content in given Internet nodes according to known peer-to- peer file sharing protocols such as Emule or BHTorrent. Note that the invention is not bound by the system architecture of Fig. 2.
  • Fig. 3 it illustrates a flow chart of a sequence of operational stages in accordance with an embodiment of the invention.
  • the MP sends 301 to the plug-in module device specification.
  • the device specification may include resolution support (say, 1280x720p and/or 352x340p), aspect ratio, frame rate supported video codec and audio codec, etc.
  • resolution support say, 1280x720p and/or 352x340p
  • aspect ratio frame rate supported video codec
  • audio codec etc.
  • the specified list is provided for illustrative purposes and is by no means binding.
  • the device specification is stored e.g. at the plug-in module 302 (or possibly elsewhere, say the application server) and will be used for filtering out content that matches the device specification 303, all as will be described in greater detail below.
  • the device specification may be, for instance, hardware specification and/or software specification.
  • a typical, yet not exclusive, example of hardware specification is display resolution, frame rate, aspect ratio, bit rate and/or others, all as required and appropriate.
  • a typical, yet not exclusive, example of software specification being ACODEC (audio codec) VCODEC (video codec) type and/or others, all as required and appropriate.
  • the client device 201 in response to a user command, issues command(s) for extracting category or categories of interest which are processed through the application server 202 and translated to, say a SQL query 211 that is applied to relational Database 203.
  • command(s) for extracting category or categories of interest which are processed through the application server 202 and translated to, say a SQL query 211 that is applied to relational Database 203.
  • the next step 401 is sending a request for categories (which comply with the device's specification) which is followed by retrieval of requested categories data (that comply with the specified specification) from the Database 402.
  • the retrieved data 212 e.g. those categories that meet a desired criterion
  • the application server 202 e.g. enriched semi-structured information
  • enriched semi-structured information e.g. enriched XML 213
  • the categories are extracted from the enriched data after being subject to known per se XML parser (in case the semi-structured format that is used is the XML) and all or some of them are converted to DEPG form and displayed to the user.
  • the categories for display are selected according to displayed criteria, all as will be explained in greater detail below.
  • the retrieved data (complying with the device specification) is converted to enriched XML 403, which is either designated for display to the user 404, or the system invokes selection of categories 405, 406 (as will be exemplified in greater detail below).
  • categories 405, 406 are displayed (according to display criteria) 406, and converted to dynamic EPG 407.
  • the user can then browse the categories and select one or more of them according to selection criteria 408 which are then again applied to the database 402.
  • the selection criteria can be for example a simple selection of category of interest, or in accordance with certain embodiments, a more complex criterion, for example, applying a function on the categories. For example the word "AND" between categories may be added, for channels that meet the categories sport and comedy.
  • the procedure is repeated until the categories are no longer manipulated 409 and the user identifies a list of channels (or channel) 409' which are retrieved from the database 410 and converted to extended XML 411 that in turn are converted into a dynamic EPG representation 412 allowing the user to select the desired channel of interest 413 and identify episode of interest 414 .
  • a list of episodes are displayed and the user selects the desired episode 415.
  • the episode content is then retrieved 416 (e.g. through download module 104', see Fig. 1) and the data from the node that stores the content of interest is obtained.
  • the ability to display categories to the user according to display criteria constitutes dynamic manipulation on categories (for identifying an episode or episodes of interest), unlike the hitherto known static nature where selections are set in advance, say selection of one of a predefined list of categories (if any), for example sport or news and then selection of a channel or episode out of available list or selection of episodes based on time of broadcast, as in the prior art.
  • the columns represent Channel/episode ID (where C stands for channel and E stands for Episode) and Tags, while rows represent the meta data (including specific tags) associated with each episode /channel.
  • the Device specification column indicates the device specifications that are applicable for the specified channel/episode combination. Thus, for example for
  • Episode 1 (in channel 1), in first row of Table 1, properties Pl and P2 apply.
  • Pl is for example Resolution 1280x720 and P2 is Codec DIVX. This means that the specified episode data will be submitted only to MPs which support the Pl and P2 specification.
  • Table 1 the relational representation as one table (Table 1) is depicted for illustrative purposes only and likewise includes more than one value in a field (see
  • the MP sent a device specification that includes properties Pl, P2 and P3 i.e. it supports resolution of 1280 x 720 (pi) for Codec DIVX (p2) and frame rate of 50 frames per second (P3).
  • these data are stored, say in the plug-in, or if the latter is devoid of sufficient internal memory (or for performance considerations) the data are stored in the application server as described with reference to Fig. 3.
  • a list of tags is obtained by invoking a command through the API, say GetTagList 401.
  • the command is processed in the plug- in and appropriate command(s) are sent to the application server which transforms it to an SQL query for retrieving the list of tags from the database.
  • the list of categories i.e.
  • Class, Language, Country, Type and Duration are extracted 402 and are converted in the SQL server into enriched XML representation , as follows: 5
  • Tag names are incorporated in the XML format and the enrichment is reflected in using a namespace "wtv” .
  • the tag id is a unique identification of the specified tag, for example "class” is identified by the unique id 34F5. Note that in this particular example, at this stage the device specification does not filter out any of the categories since each category may correspond to an episode that complies with the0 specified properties (e.g. Cl. E2).
  • the specified extended XML is sent to the plug-in module and a decision is made whether to display it to the user or not.
  • the categories are extracted and all of them are selected for display 406.
  • the (all) selected categories are converted to EPG representation 407 and displayed to the user.
  • not all the extracted categories are displayed, for instance, only categories that were selected by the user in previous uses (e.g. history log).
  • the user manipulates the categories by deciding on the order of the categories.
  • the priority is set through the command Set DEPG Order which is implemented as an API command: 0 WTV_SET_TAGORDER with the data value Country, Language, Class, Type,
  • the specified command illustrates "manipulate user categories" command (409) which, by this example, is the setting of order of categories.
  • the user is provided through the EPG (not depicted in the Figs.) means for specifying the order of interest of the categories.
  • the contemplation of the order set command is to set the priority according to which the categories are browsed.
  • the user is first interested in channels according to country of origin (of the channel). Once he has selected the country of origin, he may select the episodes in the
  • the order of the categories can be stored in the plug-in or, in accordance with certain other embodiments, in the application server. Reverting to the specified example, after having set the order of the categories with first priority to the country, the user selects country 400 which calls for invocation at the0 DEPG module of Get child category command (applied as WTV_GETCTAGS , i.e. get children tags command of tag ID country (34F7)).
  • the children tags are USA, IL (Israel) and France which are the values of the children tags of country (see the database table where the available countries are Israel, France and USA 5 suggesting that currently the database stores episode data that originated from Israel, France or USA.
  • the specified tags are all 5 displayed 404 and 406 (i.e. all retrieved tags are displayed).
  • the extended XML data is converted to EPG 407 and the user selects US 400.
  • This information is sent to the plug- in from the DEPG module (e.g. Get CTags with the condition Country ⁇ USA). Since the plug-in holds the specified preferences (as selected by the user) it knows that the second priority is for the tag "language”. The plug-in thus issues an appropriate command to the0 application server for retrieving the children tags of "language" for the selected country "USA”.
  • the result is retrieved from the Database, and by this example English and French (see records 1,3 and 5 in Table 1). The result is transmitted to the application server and is converted to extended XML as follows: 5
  • The5 Plug-in may proceed in a similar manner to further drill down according to the remaining categories order class, type and duration (or subset of this order) until the user provides sufficient selection that allows to retrieve list of channels (409 in Fig. 4).
  • the list of channels is retrieved using the command WTV_GET_LIST which is converted to a set of commands issued by the plug-in and converted at the application0 server to appropriate SQL queries for retrieving the list of channels 410 that comply with the previous categories selections.
  • the result is converted to XML representation 411 , and converted to DEPG 412. By this example, only one episode of a channel is displayed.
  • a further query is made for episodes that are associated with a selected channel and for selecting the desired episode 414 and 415.
  • the episode content can be extracted from a node (either a publisher or a client storing the content) according to the content ID using, say a conventional peer-to-peer file sharing protocol.
  • a node either a publisher or a client storing the content
  • these are channels Cl and C2 both originating from the US and in the English language.
  • This data is converted to extended XML form and converted to EPG, allowing the user to select the desired episode (either 1 or 3), using the WTV GET FEED command, and as a result (based on the content id) the actual episode content is downloaded from a network node.
  • Fig. 5 illustrating a specific instance of a data flow in accordance with an embodiment of the invention.
  • the database structure it is organized in a multi-table arrangement (in contrast to the one table schematic structure of Table 1 above), and consists in this example of 4 tables.
  • the tables include only a few records.
  • table 51 Tags Name assigns each tag name (category) to a respective Tag Id.
  • the tags are represented in a tree structure depicted schematically as 52.
  • the schematic tree structure is represented in Relation Table 53 where any Tag Id (see table 51) is associated with a parent tag ⁇ Pid) in the tree.
  • the parent of category 5 (class - see table 51) is the root node 1.
  • node 1 is a parent of node 5 is shown in the tree 53 (see nodes 54 and 55) and is shown in the second line of Relation table 53. Also shown, is Channel/Tags table 56 mapping Channel number to Tag number. For instance, channel 5 is associated with Tags3 and 7, i.e. English and Comedy.
  • the channel List table 57 elaborates on relevant meta data per channel such as the episode descriptions. Note, that whilst in the table 57 there is one record per channel, in a real life scenario there may be typically more than one record per channel, depending e.g. on the number of episodes that are broadcasted in the specified channel.
  • the specified results are transformed in the application server to extended XML format (similar to the manner discussed above) and are forwarded to the plug-in converted to EPG format and displayed to the user.
  • the user manipulated the categories by specifying the preference order.
  • the user can select Class which will result (in response to GET CTAGS command) in the children tags of Class i.e. Sport, Comedy (see tags 6 and 7 in tree 52.
  • These data will be displayed to the user in the manner discussed in detail above.
  • the EPG interface provides the user with the ability to apply function on the extracted categories, say the function AND.
  • the Plug-in module includes local storage (not shown in Fig. 1).
  • the storage may be utilized for pre-fetching data from the database 112 to the local storage, thereby improving performance by reducing the volume of communication between the plug-in module 104 and the database module.
  • Table I 3 Table I 3 above. If certain portions of Table 1 can be stored in advance (or off-line) in the storage of the plug-in module, this may improve the performance of the system in real-time. For example, assume that the root categories are a priori stored in the local storage of the plug-in module, say already in extended XML format.
  • the relatively slow "round trip" of requesting the root categories through the plug-in module and application server as well as returning the results from the database which are then converted to extended XML representation and forwarded to the plug-in module can be skipped.
  • the data (a priori stored in the plug-in module) can be readily extracted from the local storage of the plug-in module (and/or the application server) and sent to the EPG module (skipping steps 401 to 403 of Fig. 4) for display, obviously improving drastically the response time of the system.
  • the utilization of the local storage in the plug-in module (and/or the application server) to pre-fetch data is not bound by the specified specific example.
  • the storage may be updated with data from the database in a dynamic fashion according to various criteria, depending upon the particular application.
  • the plug-in module is further configured to receive updates initiated, e.g. by the application server. For instance, this may be implemented by allocating, in a communication protocol that governs the communication between the plug-in module and the database, a first socket for communications that are triggered by the plug-in module and a second socket for communications that are not triggered by plug-in, say communications that are triggered by the database module/ application server module.
  • communications that are triggered by the application server may be updates of data that are displayed to the user. For instance, if , in reply to a request, a given list of channels (that comply with certain categories) are displayed to the user, and during the display period the database is updated, say an additional channel (that complies with the specified category selection) is updated in the database, then the application server may identify that an additional item complies with the query that was previously applied to the database, and as a result the new channel data may be extracted from the database and sent to the plug-in (through, say, the second socket) and fed to the plug-in for updating the list of channels that is displayed to the user.
  • advertisement data that is updated in the database and which matches the content that is currently displayed to the user may be extracted , converted to enriched XML format and fed to the plug-in for displaying to the user in the manner discussed in detail above.
  • the system according to the invention may be a suitably programmed computer.
  • the invention contemplates a computer program being readable by a computer for executing the method of the invention.
  • the invention further contemplates a machine-readable memory tangibly embodying a program of instructions executable by the machine for executing the method of the invention.

Abstract

A system for dynamically manipulating categories through a client device that includes Electronic Program Guide (EPG) for identifying a content of a channel displayabie on a Media Player (MP) of the client device. The system includes a storage storing categories and references to contents associated with the categories. The client device is configured to send a request for categories according to a given criterion. An application server is configured to retrieve the requested categories from the storage, giving rise to retrieved data and converting the retrieved data into enriched XML information that includes category information readily convertible to EPG representation. The client device is configured to display the retrieved categories according to a display selection condition. The client device is further configured to convert the XML information into EPG representation that includes the displayed categories, for displaying on the MP.

Description

DISTRIBUTING INTERNET CHANNELS TO A MEDIA VIEWER
FIELD OF THE INVENTION
This invention relates to distributing content such as Internet channels to media viewers.
BACKGROUND OF THE INVENTION
The ever-increasing popularity of the Internet has led to the development of so- called Internet channels which can be distributed to various media viewers such as PC cellular telephones etc. Naturally, the user is provided with interface means (UI) for selecting a desired episode in a channel. One possible implementation for selecting a desired episode in a channel is by using an Electronic Program Guide (EPG), as used for example in VOD channels in television. Known EPGs are normally of static structure facilitating selection from a predefined list of channels by identifying a desired channel. Alternatively the user can mark, using the EPG, a desired time slot, and in return a list of episodes broadcasted in the specified time slot is displayed to the user, allowing the user to select the desired episode. In certain EPG representations the channels are categorized and the user can select the desired category, say sport channels or news channels, and thereafter select the desired channel within the specified category. Note, however, that the static nature of the EPG representation is maintained also in the latter option, since the list of categories and the channels that fall into each category are all predetermined, limiting the browsing capabilities of the user. This shortcoming is of particular relevance when considering the numerous available Internet channels which hinder effective browsing using hitherto known static EPG representation.
There is a need in the art to provide a new channel content distribution technique. There is a further need in the art to provide a system for implementing browsable Dynamic category manipulation using Electronic Program Guide (DEPG) that is coupled to a media player (MP) for identifying at least an episode in a channel displayable on said MP.
There is still a further need in the art to provide content that is filtered out according to at least the MP device specification.
SUMMARY OF THE INVENTION In accordance with an embodiment of the invention there is provided a method for dynamically manipulating categories through Electronic Program Guide (EPG) for identifying at least a content of a channel displayable on a Media Player (MP), comprising :
(a) providing a storage storing at least categories and reference to contents associated with the categories;
(b) sending a request for at least one category according to a given criterion;
(c) retrieving at least the requested categories from the storage, giving rise to retrieved data and converting the retrieved data into enriched semi structured information that includes category information readily convertible to EPG representation;
(d) selecting for display at least one display category from among said retrieved categories according to a display selection condition;
(e) converting the semi structured information into EPG representation that includes the displayed at least one category, for displaying on the MP; (f) applying a function on at least two of said displayed categories for retrieving from the storage data identifying at least one channel of interest.
In accordance with an embodiment of the invention there is further provided a system for dynamically manipulating categories through a client device that includes Electronic Program Guide (EPG) for identifying at least a content of a channel displayable on a Media Player (MP) of said client device, comprising : a storage storing at least categories and references to episodes contents associated ■with the categories; the client device is configured to send a request for at least one category according to a given criterion; an application server configured to retrieve at least the requested categories from the storage, giving rise to retrieved data and converting the retrieved data into enriched semi structured information that includes category information readily convertible to EPG representation; the client device is configured to display at least one display category from among said retrieved categories according to a display selection condition; the client device is further configured to convert the semi-structured information into EPG representation that includes the displayed at least one category, for displaying on the MP; the client device is further configured to apply a function on at least two of said displayed categories for retrieving from the storage data identifying at least one channel of interest.
BRIEF DESCRIPTION OF THE DRAWINGS
In order to understand the invention and to see how it may be carried out in practice, embodiments will now be described, by way of non-limiting example only, with reference to the accompanying drawings, in which:
Fig. 1 is generalized system architecture, in accordance with an embodiment of the invention;
Fig. 2 illustrates a sequence of operation for implementing browsable Dynamic category manipulation using Electronic Program Guide (DEPG) for identifying at least an episode in a channel for display on the MP, in accordance with an embodiment of the invention;
Fig. 3 illustrates a flow chart of a sequence of operational stages for performing a log-in operation, in accordance with an embodiment of the invention; Fig. 4 illustrates a flow chart of a sequence of operational stages in accordance with an embodiment of the invention; and Fig. 5 illustrates a specific instance of a data flow in accordance with an embodiment of the invention.
DETAILED DESCRIPTION OF EMBODIMENTS
Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions, utilizing terms such as "retrieving", "selecting", "converting" and "applying" or the like, refer to the action and/or processes of a computer or computing system, or processor or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system's registers and/or memories into other data, similarly represented as physical quantities within the computing system's memories, registers or other such information storage, transmission or display devices.
Embodiments of the present invention may use terms such as, processor, computer, apparatus, system, sub-system, module, unit, device (in single or plural form) client, server for performing the operations herein. This may be specially constructed for the desired purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including optical disks, CD-ROMs, magnetic-optical disks, readonly memories (ROMs)5 random access memories (RAMs), electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, any other type of media suitable for storing electronic instructions that are capable of being conveyed via a computer system bus.
Typical, yet not exclusive, examples for implementing Internet channels (referred to also as channel) are: RSS/ATOM feed, podcasting, vodcasting, videocasting and RTP/RTSP, MMS streaming. Attention is first drawn to Fig. 1, illustrating a generalized system architecture, in accordance with an embodiment of the invention. As shown, a client device 100 (e.g. Set-Top-Box) includes a known per se Media Player (MP) 101 that is coupled to a Dynamic Electronic Program Guide (DEPG) module 102 both communicating through Application Programming Interface (API) 103 to a client module 104. As a non- limiting example the client module may be a plug-in module. The client module includes in this example a download module 104' and content processing module 104". As is well known, the term MP includes computer software/hardware for playing back multimedia files, supporting an array of media formats, including both audio and video files. MP is typically associated with Audio/Video Codecs module for decoding digital data contents (such as an episode of a selected channel).
Those versed in the art will readily appreciate that the invention is not bound by any specific known per se MP. Note also that a set-top-box is only one out of many non-limiting examples. Thus, for example, the device 100 may be incorporated in a television set, cellular telephone, PDA etc.
Also shown is a server 110 that includes application server module 111 associated with Database 112. The client communicates with the server for extracting data from the database 112 and displaying data in Dynamic EPG representation, all as will be explained in greater detail below. After selecting the desired contents (e.g. an episode in selected channel) the actual content is retrieved through download module 104' (that forms part of the client end) from a source e.g. from a publisher node 113 (through the Internet 114) that broadcasts the desired content or, e.g. designated node 115 through a private group 116 that stores the desired content.
In accordance with certain embodiments, the private network may be an Internet Service Provider (ISP) network of nodes where the client node 100 forms part of the network. Such private networks may be utilized e.g. for providing Quality of Service (QOS) content to the subscribers. By this embodiment one (or more) of the nodes of the private network may be a server 117 having a cache memory 118 for storing content downloaded 119 (in a known per se manner), e.g. from various nodes in the public network 114. By this particular example, the selected content (e.g. an episode in selected channel) is retrieved through download module 104' from the cache memory 118 of the server 117 rather than from the particular node of the public network, thereby facilitating for example high QOS. In accordance with certain embodiments, certain content may be downloaded from the nodes of the public network 114 and other content may be downloaded from the cache of the server( or servers) in the private network.
Note that whereas in the description below it will be mentioned occasionally that the communication to and from the application server is through plug-in module 104, in the context of Fig.l this communication is typically performed through content processing module 104" that forms part of the plug-in module.
Note that the invention is not bound by the specified client server architecture and not by the specific modules that form part of either the client or the server. Turning now to Fig. 2, it illustrates a sequence of operations for implementing a browsable Dynamic category manipulation using Electronic Program Guide (DEPG) for identifying at least an episode in a channel for displayable on the MP, in accordance with an embodiment of the invention.
In Fig. 2, there are shown a client device 201, an application Server module 202 and the Database module 203.
As will be explained in greater detail below, in accordance with certain embodiments of the invention, the database 203 stores at least categories and reference to episode contents associated with the categories, e.g. implemented as a relational model database. The reference to the episode contents can be for example a unique media id used to identify content in given Internet nodes according to known peer-to- peer file sharing protocols such as Emule or BHTorrent. Note that the invention is not bound by the system architecture of Fig. 2.
Turning now to Fig. 3, it illustrates a flow chart of a sequence of operational stages in accordance with an embodiment of the invention. Thus, during login, the MP sends 301 to the plug-in module device specification.
For example, the device specification may include resolution support (say, 1280x720p and/or 352x340p), aspect ratio, frame rate supported video codec and audio codec, etc. The specified list is provided for illustrative purposes and is by no means binding.
The device specification is stored e.g. at the plug-in module 302 (or possibly elsewhere, say the application server) and will be used for filtering out content that matches the device specification 303, all as will be described in greater detail below.
The device specification may be, for instance, hardware specification and/or software specification. A typical, yet not exclusive, example of hardware specification is display resolution, frame rate, aspect ratio, bit rate and/or others, all as required and appropriate. A typical, yet not exclusive, example of software specification being ACODEC (audio codec) VCODEC (video codec) type and/or others, all as required and appropriate. A typical sequence of operation will now be described with reference to Figs. 2-
4. Thus, in accordance with certain embodiments, in response to a user command, the client device 201 issues command(s) for extracting category or categories of interest which are processed through the application server 202 and translated to, say a SQL query 211 that is applied to relational Database 203. Thus, after having stored the device specification (as described with reference to
Fig. 3), the next step 401 is sending a request for categories (which comply with the device's specification) which is followed by retrieval of requested categories data (that comply with the specified specification) from the Database 402. Reverting now to Fig. 2, the retrieved data 212 (e.g. those categories that meet a desired criterion) are retrieved and converted in the application server 202 into enriched semi-structured information (e.g. enriched XML 213), that is transmitted to the plug-in module.
The categories are extracted from the enriched data after being subject to known per se XML parser (in case the semi-structured format that is used is the XML) and all or some of them are converted to DEPG form and displayed to the user. The categories for display are selected according to displayed criteria, all as will be explained in greater detail below.
Note that the conversion from XML representation to EPG in a menu format is a relatively simple operation which does not pose significant computational overhead on the processing unit at the Set-Top-Box that accommodates MP. The user can now browse the DEPG and select a desired category or categories from those on display. This will be further illustrated below. The selected categories are then applied to the Database to further retrieve categories. The procedure is repeated until identifying a desired channel and therefrom the desired episode, all as will be exemplified in greater detail below. The specified procedure is also illustrated in the flow chart of Fig. 4. Thus, after having sent the request to the database 402, the retrieved data (complying with the device specification) is converted to enriched XML 403, which is either designated for display to the user 404, or the system invokes selection of categories 405, 406 (as will be exemplified in greater detail below). In the former, certain or all of the categories are displayed (according to display criteria) 406, and converted to dynamic EPG 407. The user can then browse the categories and select one or more of them according to selection criteria 408 which are then again applied to the database 402. The selection criteria can be for example a simple selection of category of interest, or in accordance with certain embodiments, a more complex criterion, for example, applying a function on the categories. For example the word "AND" between categories may be added, for channels that meet the categories sport and comedy.
Reverting to Fig. 4, the procedure is repeated until the categories are no longer manipulated 409 and the user identifies a list of channels (or channel) 409' which are retrieved from the database 410 and converted to extended XML 411 that in turn are converted into a dynamic EPG representation 412 allowing the user to select the desired channel of interest 413 and identify episode of interest 414 . As a result, a list of episodes are displayed and the user selects the desired episode 415. The episode content is then retrieved 416 (e.g. through download module 104', see Fig. 1) and the data from the node that stores the content of interest is obtained.
Those versed in the art will readily appreciate that in accordance with certain embodiments of the invention, the ability to display categories to the user according to display criteria (say categories that are of interest to the user based on previous selections by the user) and/or the user selecting a criterion according to selection criteria (say the specified function applied to the categories) constitutes dynamic manipulation on categories (for identifying an episode or episodes of interest), unlike the hitherto known static nature where selections are set in advance, say selection of one of a predefined list of categories (if any), for example sport or news and then selection of a channel or episode out of available list or selection of episodes based on time of broadcast, as in the prior art.
For better clarity of the foregoing, there follows a description of a specific example that illustrates a non-limiting sequence of operation, in accordance with an embodiment of the invention. In the following, XML is used as a specific example of extended semi-structured form and XML Tags are used as a specific example of categories.
Consider the following relational database content in Table 1: TABLE l
Figure imgf000010_0001
The columns represent Channel/episode ID (where C stands for channel and E stands for Episode) and Tags, while rows represent the meta data (including specific tags) associated with each episode /channel.
The Device specification column indicates the device specifications that are applicable for the specified channel/episode combination. Thus, for example for
Episode 1 (in channel 1), in first row of Table 1, properties Pl and P2 apply. Pl is for example Resolution 1280x720 and P2 is Codec DIVX. This means that the specified episode data will be submitted only to MPs which support the Pl and P2 specification.
Note that the relational representation as one table (Table 1) is depicted for illustrative purposes only and likewise includes more than one value in a field (see
Device Specification column). Those versed in the art will readily appreciate that the relational database implementation does not necessarily utilize only one table and a multi-table implementation is in many cases more efficient.
Assuming at the onset that the MP sent a device specification that includes properties Pl, P2 and P3 i.e. it supports resolution of 1280 x 720 (pi) for Codec DIVX (p2) and frame rate of 50 frames per second (P3). Assume also that these data are stored, say in the plug-in, or if the latter is devoid of sufficient internal memory (or for performance considerations) the data are stored in the application server as described with reference to Fig. 3.
The sequence of operations in Fig. 4 will now be illustrated with reference to the specific example of Table 1. Thus, at the onset, a list of tags is obtained by invoking a command through the API, say GetTagList 401. The command is processed in the plug- in and appropriate command(s) are sent to the application server which transforms it to an SQL query for retrieving the list of tags from the database. The list of categories, i.e.
Class, Language, Country, Type and Duration are extracted 402 and are converted in the SQL server into enriched XML representation , as follows: 5
<?xml version="1.0" encoding="UTF-8" ?> ^ <wtv:tag id="34F5" name="Class">
<wtv:tag id="34F6" name="Language" />
<wtv:tag id="34F7" name="Country" /> 0 <wtv:tag id="34F8" name="Type" />
<wtv:tag id="34F9" name="Duration" />
</wtv:tag> </wtv:response> 5 Note that the Tag names are incorporated in the XML format and the enrichment is reflected in using a namespace "wtv" . The tag id is a unique identification of the specified tag, for example "class" is identified by the unique id 34F5. Note that in this particular example, at this stage the device specification does not filter out any of the categories since each category may correspond to an episode that complies with the0 specified properties (e.g. Cl. E2).
The specified extended XML is sent to the plug-in module and a decision is made whether to display it to the user or not. In this case 404 the categories are extracted and all of them are selected for display 406. The (all) selected categories are converted to EPG representation 407 and displayed to the user. In accordance with5 certain embodiments, not all the extracted categories are displayed, for instance, only categories that were selected by the user in previous uses (e.g. history log).
Reverting to the example, the user manipulates the categories by deciding on the order of the categories. The priority is set through the command Set DEPG Order which is implemented as an API command: 0 WTV_SET_TAGORDER with the data value Country, Language, Class, Type,
Duration. This order (indicating the priority of interest as set by the user) is updated in the application server. The specified command illustrates "manipulate user categories" command (409) which, by this example, is the setting of order of categories. The user is provided through the EPG (not depicted in the Figs.) means for specifying the order of interest of the categories. The contemplation of the order set command is to set the priority according to which the categories are browsed. Thus, according to the specified order, the user is first interested in channels according to country of origin (of the channel). Once he has selected the country of origin, he may select the episodes in the
5 language in which he is interested. After the user has specified the country and the language, he may be interested in class (say nature or cooking channels). Having selected the desired class, if the user is further interested in drilling down in search of the desired channel(s,) the specified order prescribes that he will look for channels of a certain type, say Movie and lastly the duration of the episode of interest. Obviously, the0 user could have selected a different order, say if his first priority is class (for instance if he likes the nature channel) and a descending order of priority may be selected according to category of interest. This also exemplifies the dynamic nature of manipulating the categories where the user can set the desired priority according to which categories will be displayed and according to which channels/episodes will be5 searched.
Note that the order of the categories (as selected by the user) can be stored in the plug-in or, in accordance with certain other embodiments, in the application server. Reverting to the specified example, after having set the order of the categories with first priority to the country, the user selects country 400 which calls for invocation at the0 DEPG module of Get child category command (applied as WTV_GETCTAGS , i.e. get children tags command of tag ID country (34F7)). The command is sent to the database 408 and the children tags of "country" are retrieved 402 and converted in the application server to extended XML as follows: 5 <?xml version="1.0" encoding="UTF-8" ?> - <wtv:tag id="34F5" name="Category"> <wtv:tag id="34F6" name="USA" /> <wtv:tag id="34F7" name="IL" /> <wtv:tag id="34F8" name="France" /> 0 </wtv:tag> </wtv: response> As shown, the children tags are USA, IL (Israel) and France which are the values of the children tags of country (see the database table where the available countries are Israel, France and USA5 suggesting that currently the database stores episode data that originated from Israel, France or USA. By this example, the specified tags are all 5 displayed 404 and 406 (i.e. all retrieved tags are displayed). The extended XML data is converted to EPG 407 and the user selects US 400. This information is sent to the plug- in from the DEPG module ( e.g. Get CTags with the condition Country^USA). Since the plug-in holds the specified preferences (as selected by the user) it knows that the second priority is for the tag "language". The plug-in thus issues an appropriate command to the0 application server for retrieving the children tags of "language" for the selected country "USA". The application server converts it to an SQL query requesting all the languages for country =USA. The result is retrieved from the Database, and by this example English and French (see records 1,3 and 5 in Table 1). The result is transmitted to the application server and is converted to extended XML as follows: 5
<?xml version="1.0" encoding="UTF-8" ?> - <wtv:tag id="34F5" name="Language"> <wtv:tag id="34F6" name="English" /> <wtv:tag id="34F8" name="French" /> 0 </wtv:tag> </wtv:response>
In the same manner the user selects the desired category, say English, and the selected option is sent to the plug-in (e.g. Get CTags where Language=English). The5 Plug-in may proceed in a similar manner to further drill down according to the remaining categories order class, type and duration (or subset of this order) until the user provides sufficient selection that allows to retrieve list of channels (409 in Fig. 4). The list of channels is retrieved using the command WTV_GET_LIST which is converted to a set of commands issued by the plug-in and converted at the application0 server to appropriate SQL queries for retrieving the list of channels 410 that comply with the previous categories selections. The result is converted to XML representation 411 , and converted to DEPG 412. By this example, only one episode of a channel is displayed. A further query is made for episodes that are associated with a selected channel and for selecting the desired episode 414 and 415. Having identified the episode of interest, the episode content can be extracted from a node (either a publisher or a client storing the content) according to the content ID using, say a conventional peer-to-peer file sharing protocol. In accordance with certain embodiments there is not necessarily a need to drill down through the entire order list. For instance, if the user selected only two preferences i.e. country and language, then the appropriate command WTV_SET_TAGORDER sent from the EPG module to the plug-in will include only the categories Country and Language. Thus, after having selected the country (USA) and language (English), the manipulation of categories plug-in will not further drill down according to selected categories (as was the case when additional preferences were set by the user) but rather the entire channel list that meets the specified selections (i.e. country USA and language English, without further drilling down through the class type and duration categories) will be retrieved. The plug-in will then issue appropriate command, and the application server converts it to an SQL query with the parameters Country=USA and Language = English.
In the example of Table 1, these are channels Cl and C2 both originating from the US and in the English language. This data is converted to extended XML form and converted to EPG, allowing the user to select the desired episode (either 1 or 3), using the WTV GET FEED command, and as a result (based on the content id) the actual episode content is downloaded from a network node.
Note that in accordance with certain embodiments, only data that meet device specification are retrieved. Thus, by way of example, it may be recalled that the MP supported the device specification Pl, P2 and P3, and namely by this example it supports resolution of 1280 x 720 (pi) for Codec DIVX (p2) and frame rate of 50 frames per second (P3). For the specified MP, there would not be any change in the resulting channels episodes, since Cl (for episode Pl) supports device specification Pl and P2, whereas C2 (for episode E3) supports device specification P3. However, assuming for example that a different MP supports Pl, P2 and P4, then the option Episode 3 of channels 2 (third record in Table 1) would have not been retrieved since the episode of the channel is characterized by device specification P3 that is not supported by the MP. It is accordingly appreciated that in accordance with certain embodiments of the invention the manipulation of categories allows retrieval of data (categories, channels and/or episodes) that comply with the device specification. This constitutes an advantage in the sense that only relevant data (from the entire body of available data) is forwarded to the MP, according to its device specification.
Attention is now drawn to Fig. 5 illustrating a specific instance of a data flow in accordance with an embodiment of the invention. Turning at first to the database structure, it is organized in a multi-table arrangement (in contrast to the one table schematic structure of Table 1 above), and consists in this example of 4 tables. For simplicity the tables include only a few records. Thus table 51 Tags Name assigns each tag name (category) to a respective Tag Id. The tags are represented in a tree structure depicted schematically as 52. The schematic tree structure is represented in Relation Table 53 where any Tag Id (see table 51) is associated with a parent tag {Pid) in the tree. Thus, for example, the parent of category 5 (class - see table 51) is the root node 1. The fact that node 1 is a parent of node 5 is shown in the tree 53 (see nodes 54 and 55) and is shown in the second line of Relation table 53. Also shown, is Channel/Tags table 56 mapping Channel number to Tag number. For instance, channel 5 is associated with Tags3 and 7, i.e. English and Comedy. The channel List table 57 elaborates on relevant meta data per channel such as the episode descriptions. Note, that whilst in the table 57 there is one record per channel, in a real life scenario there may be typically more than one record per channel, depending e.g. on the number of episodes that are broadcasted in the specified channel.
There follows a description of a typical sequence of operation in accordance with the latter example showing a different non-limiting manner of manipulating categories. Thus, assuming that by invoking the GET_TOP TAGS command (after initialization of the system), appropriate commands are issued and converted to SQL querie(s) (in the manner specified above) giving rise to retrieval of all the tags that are descendent from root stage "1", i.e. 2, 5, 8 and 9 (see tag tree 53). The retrieval of the specified tags is from the relation tags table 53 where a target tag (in the id column) has a Pid (parent Tag) = 1. The names of the tags are extracted from the Tag_Name Table 51, i.e. Lang, Class, Codec, Resolution. The specified results are transformed in the application server to extended XML format (similar to the manner discussed above) and are forwarded to the plug-in converted to EPG format and displayed to the user. In the previous example, the user manipulated the categories by specifying the preference order. The user can select Class which will result (in response to GET CTAGS command) in the children tags of Class i.e. Sport, Comedy (see tags 6 and 7 in tree 52. These data (after following the route discussed in detail above) will be displayed to the user in the manner discussed in detail above. In accordance with this embodiment the EPG interface provides the user with the ability to apply function on the extracted categories, say the function AND. Thus, when the user applies AND function say on Comedy and Sport, this will result in an API command (say, Get List with the parameters class = Comedy and Sport) resulting in retrieval of the channel list that complies with the specified condition. Note that the specified examples are a few non-limiting examples of manipulating the categories for obtaining desired channels/episode data. Note also that the get priority order and And operator between categories are only a few non-limiting options of applying a function on two or more than two categories. Other non-limiting examples may be taken form the set of known Boolean operators such as OR or NOT. As has been described with great detail above, after having identified the desired content of interest, say an episode of interest, the content is downloaded from a destination node according to content ID.
In accordance with certain embodiments of the invention, the Plug-in module includes local storage (not shown in Fig. 1). In certain embodiments, the storage may be utilized for pre-fetching data from the database 112 to the local storage, thereby improving performance by reducing the volume of communication between the plug-in module 104 and the database module. Consider the following simplified exemplary scenario with reference to Table I3 above. If certain portions of Table 1 can be stored in advance (or off-line) in the storage of the plug-in module, this may improve the performance of the system in real-time. For example, assume that the root categories are a priori stored in the local storage of the plug-in module, say already in extended XML format. Consequently, when the user triggers the operation of the client device and the root tags are requested for display through the EPG to the user (as explained in detail above), the relatively slow "round trip" of requesting the root categories through the plug-in module and application server as well as returning the results from the database which are then converted to extended XML representation and forwarded to the plug-in module, can be skipped. Instead the data (a priori stored in the plug-in module) can be readily extracted from the local storage of the plug-in module (and/or the application server) and sent to the EPG module (skipping steps 401 to 403 of Fig. 4) for display, obviously improving drastically the response time of the system. The utilization of the local storage in the plug-in module (and/or the application server) to pre-fetch data is not bound by the specified specific example. For example, the storage may be updated with data from the database in a dynamic fashion according to various criteria, depending upon the particular application.
The description above with reference to various embodiments referred mainly to a situation where the plug-in initiates communication with the database and received replies. In accordance with certain embodiments of the invention, the plug-in module is further configured to receive updates initiated, e.g. by the application server. For instance, this may be implemented by allocating, in a communication protocol that governs the communication between the plug-in module and the database, a first socket for communications that are triggered by the plug-in module and a second socket for communications that are not triggered by plug-in, say communications that are triggered by the database module/ application server module.
In accordance with a specific example, communications that are triggered by the application server may be updates of data that are displayed to the user. For instance, if , in reply to a request, a given list of channels (that comply with certain categories) are displayed to the user, and during the display period the database is updated, say an additional channel (that complies with the specified category selection) is updated in the database, then the application server may identify that an additional item complies with the query that was previously applied to the database, and as a result the new channel data may be extracted from the database and sent to the plug-in (through, say, the second socket) and fed to the plug-in for updating the list of channels that is displayed to the user.
The decision what data to transmit in response to a triggering event at the application server, may vary depending upon the particular application. Thus, by way of non-limiting example, advertisement data that is updated in the database and which matches the content that is currently displayed to the user may be extracted , converted to enriched XML format and fed to the plug-in for displaying to the user in the manner discussed in detail above.
Consider, for example, the following enriched XML that is received from the database in reply to a query <?xml version="1.0" encoding="UTF-8" ?> <wtv:Change>Cooking
<wtv:add>Channel 10<wtv:add />
<wtv:add>Channel 17<wtv:add /> <wtv:add>Channel 30<wtv:add />
<wtv:add>Channel 19<wtv:add /> </wtv:Change>
This will result in displaying to the user (through the EPG) for the cooking category the following list of channels: 10, 17, 30 and 19, and the user can select the desired channel. Now, if during the display, the database is updated, say channel 19 is deleted and new channel 23 is added, then a query that is periodically applied to the database will identify the change and the application server will convert the reply into the following enriched XML representation, as follows:
<?xml version="1.0" encoding="UTF-8" ?> <wtv:change >Cooking <wtv:add>Channel 23<wtv:add /> <wtv:del>Channel 19<wtv:del /> </wtv:change>
The resulting additional data will now be forwarded to the Plug-in and will be converted to updated menu selection (through the EPG) for the following channels 10, 17, 23, 30 (where as shown channel 19 is deleted and channel 23 is added). It will also be understood that the system according to the invention may be a suitably programmed computer. Likewise, the invention contemplates a computer program being readable by a computer for executing the method of the invention. The invention further contemplates a machine-readable memory tangibly embodying a program of instructions executable by the machine for executing the method of the invention.
The present invention has been described with a certain degree of particularity, but those versed in the art will readily appreciate that various alterations and modifications may be carried out, without departing from the scope of the following Claims:

Claims

CLAIMS:
1. A method for dynamically manipulating categories through Electronic Program Guide (EPG) for identifying at least a content of a channel displayable on a Media Player (MP), comprising :
(a) providing a storage storing at least categories and reference to contents associated with the categories;
(b) sending a request for at least one category according to a given criterion;
(c) retrieving at least the requested categories from the storage, giving rise to retrieved data and converting the retrieved data into enriched semi structured information that includes category information readily convertible to EPG representation;
(d) selecting for display at least one display category from among said retrieved categories according to a display selection condition; (e) converting the semi structured information into EPG representation that includes the displayed at least one category, for displaying on the MP; (f) applying a function on at least two of said displayed categories for retrieving from the storage data identifying at least one channel of interest.
2. The method according to Claim 1, further comprising providing in the storage device specifications associated with said categories and reference data, and further comprising providing said MP's device specification and wherein said (c) further comprising retrieving the categories that comply with said MP device specification and wherein said (f) further comprising identifying at least one channel of interest that complies with said MP device specification.
3. The method according to Claim 2, wherein said device specifications include hardware device specifications.
4. The method according to Claim 3, wherein said hardware device specifications include at least one member in a group that includes: device resolution, bit rate, aspect ratio and frame rate.
5. The method according to Claim 2, wherein said device specifications include software device specifications.
6. The method according to Claim 5, wherein said software device specifications include at least one member in a group that includes: audio codec and video codec.
7. The method according to Claim 1 wherein said semi structured information being in the XML format.
8. The method according to Claim 7, wherein said enrichment being in a name space area of XML.
9. The method according to Claim 7, wherein said categories being XML tags.
10. The method according to Claim 1, wherein said function being a BOOLEAN operator between at least two categories.
11. The method according Claim 1, wherein said function being setting priority order among at least two categories.
12. The method according to Claim 1, further comprising pre-fetching data from the storage for expediting performance.
13. The method according to claim 1, wherein said retrieving is triggered by a request from a client device.
14. The method according to claim 1, wherein the retrieving is triggered by a request from said server.
15. A system for dynamically manipulating categories through a client device that includes Electronic Program Guide (EPG) for identifying at least a content of a channel displayable on a Media Player (MP) of said client device, comprising : a storage storing at least categories and references to contents associated with the categories; the client device is configured to send a request for at least one category according to a given criterion; an application server configured to retrieve at least the requested categories from the storage, giving rise to retrieved data and converting the retrieved data into enriched semi structured information that includes category information readily convertible to EPG representation; the client device is configured to display at least one display category from among said retrieved categories according to a display selection condition; the client device is further configured to convert the semi-structured information into EPG representation that includes the displayed at least one category, for displaying on the MP; the client device is further configured to apply a function on at least two of said displayed categories for retrieving from the storage data identifying at least one channel of interest.
16. The system according to Claim 15, further wherein the storage device includes specifications associated with said categories and reference data, and wherein said client is further configured to provide said MP's device specification and wherein said application server is further configured to retrieve the categories that comply with said
MP device specification and for identifying at least one channel of interest that complies with said MP device specification.
17. The system according to Claim 15, wherein said device specifications include hardware device specifications.
18. The system according to Claim 17 wherein said hardware device specifications include at least one member in a group that includes: device resolution, bit rate, aspect ratio and frame rate.
19. The system according to Claim 15, wherein said device specifications include software device specifications.
20. The system according to Claim 19, wherein said software device specifications include at least one member in a group that includes: audio codec and video codec.
21. The system according to Claim 15, wherein said semi structured information being in the XML format.
22. The system according to Claim 21, wherein said enrichment being in a name space area of XML.
23. The system according to Claim 21, wherein said categories being XML tags.
24. The system according to Claim 15, wherein said function being a BOOLEAN operator between at least two categories.
25. The system according to Claim 15, wherein said function being setting priority order among at least two categories.
26. The system according to Claim 15, wherein said client device further includes a local storage and wherein said application server is further configured to pre-fetch selected data from the storage for storing in said local storage, for expediting performance.
27. The system according to Claim 15, wherein the retrieving is triggered by a request from the client device.
28. The system according to Claim 15, wherein the retrieving is triggered by a request from the application server device.
29. The system according to Claim 15, wherein the retrieving is triggered by a request from the client device through a first socket opened in a communication protocol between the client device and the application server, and further retrieving of data is triggered by a request from the application server device through a second socket opened in said communication protocol.
30. The system according to Claim 15, wherein said client device is incorporated in a set-top-box.
31. The system according to Claim 15, wherein said client device is incorporated in a cellular telephone.
32. The system according to Claim 15, wherein said client device is incorporated in a television set.
33. The system according to Claim 15, wherein said client device is incorporated in a PDA.
34. The method according to Claim 1, further comprising downloading content in said channel of interest through a public network according to said identified data.
35. The method according to Claim 1, further comprising downloading content in said channel of interest through a private network according to said identified data.
36. The method according to Claim 35, further comprising downloading content in said channel of interest from a cache in a server forming part of said private network, according to said identified data
37. The system according to Claim 15, further configured to download content in said channel of interest through a public network according to said identified data.
38. The method according to Claim 15, further configured to download content in said channel of interest through a private network according to said identified data.
39. The method according to Claim 38, further configured to download content in said channel of interest from a cache in a server forming part of said private network, according to said identified data.
PCT/IL2009/000251 2008-03-05 2009-03-05 Distributing internet channels to a media viewer WO2009109976A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US6442308P 2008-03-05 2008-03-05
US61/064,423 2008-03-05

Publications (2)

Publication Number Publication Date
WO2009109976A2 true WO2009109976A2 (en) 2009-09-11
WO2009109976A3 WO2009109976A3 (en) 2010-03-11

Family

ID=41056424

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IL2009/000251 WO2009109976A2 (en) 2008-03-05 2009-03-05 Distributing internet channels to a media viewer

Country Status (1)

Country Link
WO (1) WO2009109976A2 (en)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102011083922A1 (en) * 2011-09-30 2013-05-29 Technisat Digital Gmbh DIGITAL TELEVISION RECEIVER WITH APPROPRIATIONS FOR EFFICIENT MANAGEMENT OF PROGRAM SERVICES
US9906832B2 (en) 2009-05-08 2018-02-27 Conversant Wireless Licensing S.A R.L. Method and apparatus for configuring presentation of service guides
US10856020B2 (en) 2011-09-01 2020-12-01 Divx, Llc Systems and methods for distributing content using a common set of encryption keys
US10880620B2 (en) 2013-05-31 2020-12-29 Divx, Llc Playback synchronization across playback devices
US10893305B2 (en) 2014-04-05 2021-01-12 Divx, Llc Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10904594B2 (en) 2016-05-24 2021-01-26 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US10917449B2 (en) 2013-03-15 2021-02-09 Divx, Llc Systems, methods, and media for delivery of content
US10931982B2 (en) 2011-08-30 2021-02-23 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US10979782B2 (en) 2012-08-31 2021-04-13 Divx, Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US10992955B2 (en) 2011-01-05 2021-04-27 Divx, Llc Systems and methods for performing adaptive bitrate streaming
US11012641B2 (en) 2003-12-08 2021-05-18 Divx, Llc Multimedia distribution system for multimedia files with interleaved media chunks of varying types
US11017816B2 (en) 2003-12-08 2021-05-25 Divx, Llc Multimedia distribution system
US11044502B2 (en) 2016-05-24 2021-06-22 Divx, Llc Systems and methods for providing audio content during trick-play playback
US11050808B2 (en) 2007-01-05 2021-06-29 Divx, Llc Systems and methods for seeking within multimedia content during streaming playback
US11064235B2 (en) 2016-06-15 2021-07-13 Divx, Llc Systems and methods for encoding video content
US11102553B2 (en) 2009-12-04 2021-08-24 Divx, Llc Systems and methods for secure playback of encrypted elementary bitstreams
US11115450B2 (en) 2011-08-31 2021-09-07 Divx, Llc Systems, methods, and media for playing back protected video content by using top level index file
USRE48748E1 (en) 2011-06-29 2021-09-21 Divx, Llc Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
USRE48761E1 (en) 2012-12-31 2021-09-28 Divx, Llc Use of objective quality measures of streamed content to reduce streaming bandwidth
US11134115B2 (en) 2015-02-27 2021-09-28 Divx, Llc Systems and methods for frame duplication and frame extension in live video encoding and streaming
US11178435B2 (en) 2011-09-01 2021-11-16 Divx, Llc Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US11178200B2 (en) 2013-12-30 2021-11-16 Divx, Llc Systems and methods for playing adaptive bitrate streaming content by multicast
US11190497B2 (en) 2011-08-31 2021-11-30 Divx, Llc Systems and methods for application identification
US11245938B2 (en) 2014-08-07 2022-02-08 Divx, Llc Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
US11272232B2 (en) 2013-05-31 2022-03-08 Divx, Llc Synchronizing multiple over the top streaming clients
US11343300B2 (en) 2017-02-17 2022-05-24 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US11349892B2 (en) 2015-01-06 2022-05-31 Divx, Llc Systems and methods for encoding and sharing content between devices
US11438394B2 (en) 2012-12-31 2022-09-06 Divx, Llc Systems, methods, and media for controlling delivery of content
US11457054B2 (en) 2011-08-30 2022-09-27 Divx, Llc Selection of resolutions for seamless resolution switching of multimedia content
US11470405B2 (en) 2013-05-30 2022-10-11 Divx, Llc Network video streaming with trick play based on separate trick play files
US11495266B2 (en) 2007-11-16 2022-11-08 Divx, Llc Systems and methods for playing back multimedia files incorporating reduced index structures
US11526582B2 (en) 2012-01-06 2022-12-13 Divx, Llc Systems and methods for enabling playback of digital content using status associable electronic tickets and ticket tokens representing grant of access rights
US11539780B2 (en) 2016-03-30 2022-12-27 Divx, Llc Systems and methods for quick start-up of playback
US11825142B2 (en) 2019-03-21 2023-11-21 Divx, Llc Systems and methods for multimedia swarms
US11849112B2 (en) 2013-03-15 2023-12-19 Divx, Llc Systems, methods, and media for distributed transcoding video data
US11886545B2 (en) 2006-03-14 2024-01-30 Divx, Llc Federated digital rights management scheme including trusted systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020112237A1 (en) * 2000-04-10 2002-08-15 Kelts Brett R. System and method for providing an interactive display interface for information objects
US20030229900A1 (en) * 2002-05-10 2003-12-11 Richard Reisman Method and apparatus for browsing using multiple coordinated device sets
US20070287498A1 (en) * 2004-07-16 2007-12-13 Tiehong Wang Method and apparatus for multimedia communications with different user terminals

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020112237A1 (en) * 2000-04-10 2002-08-15 Kelts Brett R. System and method for providing an interactive display interface for information objects
US20030229900A1 (en) * 2002-05-10 2003-12-11 Richard Reisman Method and apparatus for browsing using multiple coordinated device sets
US20070287498A1 (en) * 2004-07-16 2007-12-13 Tiehong Wang Method and apparatus for multimedia communications with different user terminals

Cited By (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11735227B2 (en) 2003-12-08 2023-08-22 Divx, Llc Multimedia distribution system
US11355159B2 (en) 2003-12-08 2022-06-07 Divx, Llc Multimedia distribution system
US11159746B2 (en) 2003-12-08 2021-10-26 Divx, Llc Multimedia distribution system for multimedia files with packed frames
US11735228B2 (en) 2003-12-08 2023-08-22 Divx, Llc Multimedia distribution system
US11509839B2 (en) 2003-12-08 2022-11-22 Divx, Llc Multimedia distribution system for multimedia files with packed frames
US11017816B2 (en) 2003-12-08 2021-05-25 Divx, Llc Multimedia distribution system
US11297263B2 (en) 2003-12-08 2022-04-05 Divx, Llc Multimedia distribution system for multimedia files with packed frames
US11012641B2 (en) 2003-12-08 2021-05-18 Divx, Llc Multimedia distribution system for multimedia files with interleaved media chunks of varying types
US11886545B2 (en) 2006-03-14 2024-01-30 Divx, Llc Federated digital rights management scheme including trusted systems
US11050808B2 (en) 2007-01-05 2021-06-29 Divx, Llc Systems and methods for seeking within multimedia content during streaming playback
US11706276B2 (en) 2007-01-05 2023-07-18 Divx, Llc Systems and methods for seeking within multimedia content during streaming playback
US11495266B2 (en) 2007-11-16 2022-11-08 Divx, Llc Systems and methods for playing back multimedia files incorporating reduced index structures
US10791363B2 (en) 2009-05-08 2020-09-29 Conversant Wireless Licensing S.a.r.l. Method and apparatus for configuring presentation of service guides
US9906832B2 (en) 2009-05-08 2018-02-27 Conversant Wireless Licensing S.A R.L. Method and apparatus for configuring presentation of service guides
US11102553B2 (en) 2009-12-04 2021-08-24 Divx, Llc Systems and methods for secure playback of encrypted elementary bitstreams
US10992955B2 (en) 2011-01-05 2021-04-27 Divx, Llc Systems and methods for performing adaptive bitrate streaming
US11638033B2 (en) 2011-01-05 2023-04-25 Divx, Llc Systems and methods for performing adaptive bitrate streaming
USRE48748E1 (en) 2011-06-29 2021-09-21 Divx, Llc Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content
US11611785B2 (en) 2011-08-30 2023-03-21 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US10931982B2 (en) 2011-08-30 2021-02-23 Divx, Llc Systems and methods for encoding and streaming video encoded using a plurality of maximum bitrate levels
US11457054B2 (en) 2011-08-30 2022-09-27 Divx, Llc Selection of resolutions for seamless resolution switching of multimedia content
US11870758B2 (en) 2011-08-31 2024-01-09 Divx, Llc Systems and methods for application identification
US11115450B2 (en) 2011-08-31 2021-09-07 Divx, Llc Systems, methods, and media for playing back protected video content by using top level index file
US11716371B2 (en) 2011-08-31 2023-08-01 Divx, Llc Systems and methods for automatically generating top level index files
US11190497B2 (en) 2011-08-31 2021-11-30 Divx, Llc Systems and methods for application identification
US11178435B2 (en) 2011-09-01 2021-11-16 Divx, Llc Systems and methods for saving encoded media streamed using adaptive bitrate streaming
US10856020B2 (en) 2011-09-01 2020-12-01 Divx, Llc Systems and methods for distributing content using a common set of encryption keys
US11683542B2 (en) 2011-09-01 2023-06-20 Divx, Llc Systems and methods for distributing content using a common set of encryption keys
DE102011083922A1 (en) * 2011-09-30 2013-05-29 Technisat Digital Gmbh DIGITAL TELEVISION RECEIVER WITH APPROPRIATIONS FOR EFFICIENT MANAGEMENT OF PROGRAM SERVICES
US11526582B2 (en) 2012-01-06 2022-12-13 Divx, Llc Systems and methods for enabling playback of digital content using status associable electronic tickets and ticket tokens representing grant of access rights
US11528540B2 (en) 2012-08-31 2022-12-13 Divx, Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US10979782B2 (en) 2012-08-31 2021-04-13 Divx, Llc System and method for decreasing an initial buffering period of an adaptive streaming system
US11785066B2 (en) 2012-12-31 2023-10-10 Divx, Llc Systems, methods, and media for controlling delivery of content
USRE48761E1 (en) 2012-12-31 2021-09-28 Divx, Llc Use of objective quality measures of streamed content to reduce streaming bandwidth
US11438394B2 (en) 2012-12-31 2022-09-06 Divx, Llc Systems, methods, and media for controlling delivery of content
US11849112B2 (en) 2013-03-15 2023-12-19 Divx, Llc Systems, methods, and media for distributed transcoding video data
US10917449B2 (en) 2013-03-15 2021-02-09 Divx, Llc Systems, methods, and media for delivery of content
US11470405B2 (en) 2013-05-30 2022-10-11 Divx, Llc Network video streaming with trick play based on separate trick play files
US11272232B2 (en) 2013-05-31 2022-03-08 Divx, Llc Synchronizing multiple over the top streaming clients
US10880620B2 (en) 2013-05-31 2020-12-29 Divx, Llc Playback synchronization across playback devices
US11765410B2 (en) 2013-05-31 2023-09-19 Divx, Llc Synchronizing multiple over the top streaming clients
US11178200B2 (en) 2013-12-30 2021-11-16 Divx, Llc Systems and methods for playing adaptive bitrate streaming content by multicast
US11711552B2 (en) 2014-04-05 2023-07-25 Divx, Llc Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US10893305B2 (en) 2014-04-05 2021-01-12 Divx, Llc Systems and methods for encoding and playing back video at different frame rates using enhancement layers
US11245938B2 (en) 2014-08-07 2022-02-08 Divx, Llc Systems and methods for protecting elementary bitstreams incorporating independently encoded tiles
US11349892B2 (en) 2015-01-06 2022-05-31 Divx, Llc Systems and methods for encoding and sharing content between devices
US11711410B2 (en) 2015-01-06 2023-07-25 Divx, Llc Systems and methods for encoding and sharing content between devices
US11824912B2 (en) 2015-02-27 2023-11-21 Divx, Llc Systems and methods for frame duplication and frame extension in live video encoding and streaming
US11134115B2 (en) 2015-02-27 2021-09-28 Divx, Llc Systems and methods for frame duplication and frame extension in live video encoding and streaming
US11539780B2 (en) 2016-03-30 2022-12-27 Divx, Llc Systems and methods for quick start-up of playback
US11546643B2 (en) 2016-05-24 2023-01-03 Divx, Llc Systems and methods for providing audio content during trick-play playback
US11044502B2 (en) 2016-05-24 2021-06-22 Divx, Llc Systems and methods for providing audio content during trick-play playback
US10904594B2 (en) 2016-05-24 2021-01-26 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US11895348B2 (en) 2016-05-24 2024-02-06 Divx, Llc Systems and methods for providing variable speeds in a trick-play mode
US11483609B2 (en) 2016-06-15 2022-10-25 Divx, Llc Systems and methods for encoding video content
US11729451B2 (en) 2016-06-15 2023-08-15 Divx, Llc Systems and methods for encoding video content
US11064235B2 (en) 2016-06-15 2021-07-13 Divx, Llc Systems and methods for encoding video content
US11343300B2 (en) 2017-02-17 2022-05-24 Divx, Llc Systems and methods for adaptive switching between multiple content delivery networks during adaptive bitrate streaming
US11825142B2 (en) 2019-03-21 2023-11-21 Divx, Llc Systems and methods for multimedia swarms

Also Published As

Publication number Publication date
WO2009109976A3 (en) 2010-03-11

Similar Documents

Publication Publication Date Title
WO2009109976A2 (en) Distributing internet channels to a media viewer
US9923962B2 (en) Techniques and systems for supporting podcasting
US20240073477A1 (en) Systems and methods for pre-caching media content
CN103222272B (en) system and method for video cache index
US11388451B2 (en) Method and system for enabling data-rich interactive television using broadcast database
US8285727B2 (en) Simplified searching for media services using a control device
JP5612676B2 (en) Media content reading system and personal virtual channel
US8631022B2 (en) Metadata repository and methods thereof
US8621099B2 (en) Systems and methods for formatting media content for distribution
CN103826159B (en) The local offline player method and terminal of a kind of M3U8 format videos
US20130179542A1 (en) Intelligent Data Delivery and Storage Based on Data Characteristics
MXPA03004447A (en) A system and process for network site fragmented search.
KR20140111028A (en) Apparatus and method for content directory server presentation
CN101626376A (en) Set-top box (STB) file uploading methods, STB file uploading device and STB file uploading system based on internet protocol television (IPTV)
KR101221473B1 (en) Meta data information providing server, client apparatus, method for providing meta data information, and method for providing contents
US20050165941A1 (en) Methods and apparatuses for streaming content
CN102055629A (en) Home gateway equipment and method for sharing network resources through same
KR20090000654A (en) Apparatus and method for hook up contents
WO2010122557A1 (en) System, method and gateway device for internet television content provisioning
WO2010023663A1 (en) Internet tv content provisioning

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09717309

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09717309

Country of ref document: EP

Kind code of ref document: A2