Sign In to Follow Application
View All Documents & Correspondence

Method And System For Dynamically Generating A User Interface For A Content Viewer

Abstract: Various embodiments provide a method and a system for dynamically generating a user interface for a content viewer. The method performed by the system includes accessing information related to a content page of an application associated with an electronic device of a content viewer. The method includes determining one or more widgets corresponding to the content page based on the information related to a content page. The method includes accessing one or more data packets corresponding to each of the one or widgets from a remote server. The method includes parsing each of one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets. The method includes generating one or more graphical user interfaces based on the extracted data. The method includes facilitating a display of one or more graphical user interfaces on the electronic device.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
25 January 2022
Publication Number
30/2023
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

Novi Digital Entertainment Private Limited
Star House, Urmi Estate, 95 Ganpatrao Kadam Marg, Lower Parel (W) Mumbai 400 013, Maharashtra, India

Inventors

1. Jitendra Agrawal
Star House, Urmi Estate, 95 Ganpatrao Kadam Marg, Lower Parel (W) Mumbai 400 013, Maharashtra, India
2. Manideep Polireddi
Star House, Urmi Estate, 95 Ganpatrao Kadam Marg, Lower Parel (W) Mumbai 400 013, Maharashtra, India
3. Vamsi Subhash Achanta
Star House, Urmi Estate, 95 Ganpatrao Kadam Marg, Lower Parel (W) Mumbai 400 013, Maharashtra, India

Specification

DESC:FORM 2
THE PATENTS ACT 1970
(39 of 1970)
&
The Patent Rules 2003

COMPLETE SPECIFICATION
(refer section 10 & rule 13)

1. TITLE OF THE INVENTION:
METHOD AND SYSTEM FOR DYNAMICALLY GENERATING A USER INTERFACE FOR A CONTENT VIEWER

2. APPLICANT(S):

(a) Name:

(b) Nationality:

(c) Address:

Novi Digital Entertainment Private Limited

Indian

Star House, Urmi Estate, 95 Ganpatrao Kadam Marg, Lower Parel (W) Mumbai 400 013, Maharashtra, India

3. PREAMBLE TO THE DESCRIPTION

The following specification particularly describes the invention and the manner in which it is to be performed.

4. DESCRIPTION
(See next page)


METHOD AND SYSTEM FOR DYNAMICALLY GENERATING A USER INTERFACE FOR A CONTENT VIEWER

TECHNICAL FIELD

[0001] The present technology generally relates to the delivery of streaming content to content viewers and, more particularly, to a method and system for dynamically generating a user interface for a content viewer.

BACKGROUND

[0002] On-demand video streaming as well as live streaming of content has gained popularity in recent times and, subscribers are increasingly using a variety of electronic devices to access streaming content. The streaming content is accessed on electronic devices using Over-The-Top (OTT) media services (i.e. over the Internet).
[0003] Typically, a provider of streaming content (also referred to hereinafter as a ‘content provider’) maintains a content catalog that includes a listing of all content items available with the content provider. Typically, a curated set of content items from the content catalog are displayed to a content viewer on a UI when the content viewer accesses an application associated with the content provider on a personal electronic device, such as a smartphone or a TV. Presently, displaying the UI (e.g., an application home page) involves fetching the UI from a remote server associated with the content provider’s platform. The UI fetched from the remote server includes a large number of thumbnails along with related metadata corresponding to the content items selected from the content catalog for the content viewer. The application in the viewer’s electronic device is configured to make Application Programming Interface (API) calls to fetch the UI and thereafter cause a display of the UI for the content viewer. Further, when the content viewer scrolls through the UI, one or more additional API calls are made by the application to fetch content related to additional content items. The frequent API calls by applications installed on the devices of the content viewers incur heavy traffic on the remote server providing the requested UI content. Furthermore, the electronic devices of the content viewers are associated with different operating systems (OS), such as Andriod®, iOS®, WebOS®, Roku TV, Tizen, etc. As the API calls conform to the OS of the respective electronic devices, the content provider has to maintain different types of codes to interpret API calls conforming to different operating systems and also align the code with changes in the UI. The duplication of codes to serve API requests received from electronic devices employing different operating systems waste resources at the content provider’s end and makes the management of responses to API calls complicated and cumbersome. Further, as the content catalog is extensive, a large number of UIs have to be transferred from the remote server to an electronic device of the content viewer, which may result in patchy loading of the UI, thereby degrading the viewing experience of the content viewer.
[0004] In light of the foregoing, there is a need to overcome the aforementioned drawbacks. More specifically, there is a need to reduce the number of API calls to reduce the traffic on the content provider’s server (i.e., the remote server), which is responsible for serving the UI content to the electronic devices of the content viewers. Further, it would be advantageous to avoid duplication of codes to serve API requests received from electronic devices employing different operating systems to simplify the management of the responses to the API calls. Furthermore, there is a need to efficiently display content based on the device's limitations and provide a seamless viewing experience to the content viewers.
SUMMARY
[0005] Various embodiments of the present disclosure for dynamically generating a user interface for a content viewer.
[0006] In an embodiment of the invention, a computer-implemented method for dynamically generating a user interface for a content viewer. The computer-implemented method performed by a system includes accessing information related to a content page of an application associated with an electronic device of a content viewer. The system is implemented on the electronic device. Further, the method includes determining one or more widgets corresponding to the content page based, at least in part, on the information related to a content page. The one or more widgets being a customizable element. Further, the method includes accessing one or more data packets corresponding to each of the one or widgets from a remote server. Further, the method includes parsing each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets. Further, the method includes generating one or more graphical user interfaces based, at least in part, on the extracted data. Further, the method includes facilitating a display of the one or more graphical user interfaces on the electronic device.
[0007] In another embodiment of the invention, a system for dynamically generating a user interface for a content viewer. The system includes memory and a processor. The memory stores instructions which are executed by the processor and cause the system to access information related to a content page of an application associated with an electronic device of a content viewer. The system is implemented on the electronic device. Further, the system is caused to determine one or more widgets corresponding to the content page based, at least in part, on the information related to a content page. The one or more widgets being a customizable element. Further, the system is caused to access one or more data packets corresponding to each of the one or widgets from a remote server. Further, the system is caused to parse each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets. Further, the system is caused to generate one or more graphical user interfaces based, at least in part, on the extracted data. Further, the system is caused to facilitate a display of the one or more graphical user interfaces on the electronic device.
[0008] In yet another embodiment of the invention, a non-transitory computer-readable storage medium is disclosed. The non-transitory computer-readable storage medium includes computer-executable instructions that, when executed by at least a processor of a system, cause the system to perform a method. The method includes accessing information related to a content page of an application associated with an electronic device of a content viewer. The system is implemented on the electronic device. Further, the method includes determining one or more widgets corresponding to the content page based, at least in part, on the information related to a content page. The one or more widgets being a customizable element. Further, the method includes accessing one or more data packets corresponding to each of the one or widgets from a remote server. Further, the method includes parsing each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets. Further, the method includes generating one or more graphical user interfaces based, at least in part, on the extracted data. Further, the method includes facilitating a display of the one or more graphical user interfaces on the electronic device.

BRIEF DESCRIPTION OF THE FIGURES

[0009] FIG. 1 shows a representation for illustrating an example environment relevant to at least some embodiments of the present invention;
[0010] FIG. 2 is a block diagram of the system configured to dynamically generate a UI for a content viewer, in accordance with an embodiment of the invention;
[0011] FIG. 3 shows a representation of a scorecard which is a part of a UI associated with a content page of the application shown in FIG 1, in accordance with an embodiment of the invention;
[0012] FIG. 4 shows a modified widget, in accordance with an embodiment of the invention;
[0013] FIG. 5A depicts a UI corresponding to a home page of the application to be displayed on the electronic device, in accordance with an embodiment of the invention;
[0014] FIG. 5B depicts a modified UI corresponding to a home page of the application to be displayed on the electronic device, in accordance with an embodiment of the invention;
[0015] FIG. 6 shows an exemplary dynamically generated graphical user interface, in accordance with an embodiment of the invention;
[0016] FIG. 7 shows a flow diagram of a method for dynamically generating an UI for a content viewer, in accordance with an embodiment of the invention;
[0017] FIG. 8 shows a flow diagram of a method for dynamically generating a UI at an electronic device for a content viewer, in accordance with an embodiment of the invention; and
[0018] FIG. 9 is a simplified block diagram of a Content Delivery Network (CDN), in accordance with various embodiments of the invention.

DETAILED DESCRIPTION

[0019] The best and other modes for carrying out the present invention are presented in terms of the embodiments, herein depicted in FIGS. 1 to 9. The embodiments are described herein for illustrative purposes and are subject to many variations. It is understood that various omissions and substitutions of equivalents are contemplated as circumstances may suggest or render expedient but are intended to cover the application or implementation without departing from the spirit or scope of the invention. Further, it is to be understood that the phraseology and terminology employed herein are for the purpose of the description and should not be regarded as limiting. Any heading utilized within this description is for convenience only and has no legal or limiting effect.
[0020] The terms “a” and “an” herein do not denote a limitation of quantity, but rather denote the presence of at least one of the referenced items.

OVERVIEW
[0021] Various embodiments of the present disclosure provide methods, systems electronic devices, and computer program products for dynamically generating a user interface for a content viewer.
[0022] Conventional UI generation approaches have various drawbacks and limitations as described earlier. A few such drawbacks include high traffic on the remote servers, the need for maintaining different types of codes to interpret API calls to conform with different operating systems, more storage requirements, a high number of API calls, increased latency leading to increased buffering at the content viewer’s end, increased computational requirements, bad user experience, and the like. To overcome such problems or limitations, the present disclosure describes a system that is configured to perform the below operations.
[0023] In an embodiment, the system is implemented on the electronic device of the user and is configured to access information related to a content page of an application associated with the electronic device. In an example, the information related to the content page may include a number of content items and a type of content items on each content page.
[0024] In another embodiment, the system determines one or more widgets corresponding to the content page based, at least in part, on the information related to a content page. The one or more widgets is a customizable element. In an example, the widget includes a plurality of blocks further including at least textual content, images, icons, animations, videos or a combination thereof. In an embodiment, the one or more widgets corresponding to the content page is determined via a machine learning model.
[0025] In another embodiment, the system accesses one or more data packets corresponding to each of the one or widgets from a remote server. In an embodiment, the remote server is a content delivery network (CDN). In an example, each of the one or more data packets includes one of raw data and metadata. The raw data may correspond to the content item and the metadata may correspond to information related to the content item. Further, the system parses each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets. It is understood that by relying only on the one or more data packets (i.e., the raw data or metadata), the number of API calls between the remote server and the application is reduced. Further, this allows the content provider platform to maintain an operating system-agnostic code for servicing API calls from electronic devices associated with different operating systems. This in turn reduces the computational resources required by the application to operate while also reducing the storage requirements for the electronic device and remote server. As a result, the patchy loading of the UI experienced due to a combination of large UI retrieved from the remote server and insufficient device/network capability is also avoided, thereby substantially improving viewing experience of content viewers.
[0026] In another embodiment, the system generates one or more graphical user interfaces based, at least in part, on the extracted data. In an embodiment, generating the one or more graphical user interfaces includes at first, a plurality of preconfigured widget templates from a storage module associated with the system. Then, determining a suitable widget template for the one or more widgets based, at least in part, on the extracted data and predefined policies for widget template selection. Then, embedding the extracted data into the suitable widget template for the one or more widgets. Further, the one or more widgets are combined for generating the one or more graphical user interfaces. It is noted that the use of standard preconfigured widget templates eliminates the need for code duplicity across different operating systems.
[0027] In another embodiment, the system is configured to access event data corresponding to a live streaming content from the remote server. Then, determine one or more events in the live streaming content based, at least in part, on the event data. Further, upon determining the one or more events dynamically generate thumbnails for the one or more widgets based, at least in part, on the one or more events. This aspect allows a change the widget to attract an attention of the viewer and entice the viewer to view the livestream. Further, it also helps the user to engage with the live streaming event without actually watching the stream, therefore improving user experience.
[0028] In another embodiment, the system is configured to track one or more device parameters corresponding to the electronic device. The one or more device parameters including at least one of device power, network strength, and device processor workload. Then, the system determines device potential data based, at least in part, on the one or more device parameters. The device potential data indicates to a current potential of the electronic device. Further, the system is configured to adapt the one or more widgets based, at least in part, on the device potential data. Therefore, the system is capable of adapting the user interface based on the electronic device capability, the current network bandwidth capability, etc., and accordingly add/remove/customize content displayed on the UI. This allows for maximum performance at content viewer’s end and improved user experience.
[0029] In another embodiment, the system is configured to generate a fallback user interface based, at least in part, on determining if the current potential of the electronic device is below a predefined threshold. As a result, electronic devices with limited resources may be able to display such fallback UIs which consume very less resources thereby, resulting in lower latency. In another embodiment, the system facilitates a display of the one or more graphical user interfaces on the electronic device.
[0030] FIG. 1 is an example representation 100 of an environment related to at least some example embodiments of the invention. The representation 100 depicts a content viewer 102 controlling an electronic device 104 for viewing/accessing content offered by a streaming content provider.
[0031] The term ‘streaming content provider’ as used herein refers to an enterprise owner of digital video content libraries, which offers video content on subscription basis by using a digital platform and over-the-top (OTT) media services, i.e. the video content is streamed over the Internet to the electronic devices of the subscribers. A streaming content provider is hereinafter referred to as a ‘content provider’ for ease of description. Though a content provider is not shown in FIG. 1, a content provider platform 108 and a content library 110 associated with a content provider are shown in the representation 100 and explained in further detail later.
[0032] The content offered by the content provider may be embodied as streaming video content such as livestreaming content or on-demand video streaming content. Individuals accessing/viewing the content offered by the content provider are referred to herein as ‘user’, ‘subscriber’, ‘content viewer’ or simply as a ‘viewer’.
[0033] The content viewer 102 may have downloaded a software application 106 (hereinafter referred to as an ‘application 106’ or an ‘app 106’) corresponding to a content provider on the electronic device 104. The electronic device 104 may be embodied as a smartphone, a television (TV), a laptop, a desktop, a personal computer or any spatial computing device capable of displaying multimedia content offered by the content provider.
[0034] The electronic device 104 may be configured to connect to a communication network, such as a communication network 112. The communication network 112 may correspond to the Internet enabled by an Internet Service Provider (ISP), also referred to herein as a network provider. The electronic device 104 may connect to the communication network 112 using a wired network, a wireless network, or a combination of wired and wireless networks. Some non-limiting examples of the wired networks may include the Ethernet, the Local Area Network (LAN), a fiber-optic network, and the like. Some non-limiting examples of the wireless networks may include the Wireless LAN (WLAN), cellular networks, Bluetooth or ZigBee networks, and the like.
[0035] In one illustrative example, the content viewer 102 may login into the application 106 on the electronic device 104 to access content, such as a movie or a web series, offered by the content provider. On logging into the application 106, the content viewer 102 may be presented with a User Interface (UI) associated with the application 106. The UI (not shown in FIG. 1) presents a large number of content items specifically arranged to make it easier for the content viewer 102 to select a content item from among the number of content items for viewing purpose. For example, the UI may present a number of tiles (or thumbnail images) corresponding to content items specifically recommended for the content viewer 102, a number of tiles corresponding to content items which are currently trending or popular among other content viewers, a number of tiles corresponding to top regional language content, and the like. Typically, the content provider platform 108 maintains a content catalog which includes a listing of all content items available with the content provider in the content library 110. For example, the content library 110 usually houses a wide variety of content, such as entertainment content, factual content, educational content, gaming content, lifestyle content, fitness content, travel content, and the like. In addition, the content library 110 may also include metadata related to each content in the content provider’s catalog. For example, in case of movie content, the metadata may include information related to the duration of the movie, release date of the movie, the cast of the movie, language, watch history, the movie genre, average movie rating provided by viewers on popular ratings sites, etc. Additionally, the metadata may also include at least one of a synopsis of the movie (i.e., a brief story outline), a trailer, a thumbnail depicting a poster of the movie and a brief description of the role(s) of one or more main characters associated with the movie content.
[0036] A curated set of content items from the content catalog are displayed to a content viewer, such as the content viewer 102, on the UI when the content viewer 102 accesses the application 106 on the electronic device 104. Presently, displaying the UI involves fetching content of the UI from a remote server, such as a remote server 114, associated with the content provider platform 108. For example, the remote server 114 may be a content delivery network (CDN) or a part of the CDN engaged by the content provider platform 108 for delivering playback content to electronic devices of the content viewers, such as the electronic device 104 of the content viewer 102. As the content catalog offered by the content provider is fairly extensive, the UI fetched from the remote server 114 includes a large number of thumbnails along with related metadata corresponding to the content items selected from the content catalog for the content viewer 102. The application 106 in the viewer’s electronic device 104 is configured to make Application Programming Interface (API) calls to the content provider platform 108 to fetch the UI and thereafter cause display of the content on the UI for the content viewer 102. Further, when the content viewer 102 scrolls through the UI, one or more additional API calls are made by the application 106 to fetch UIs related to additional content items from the content provider platform 108 via the remote server 114. The frequent API calls by the applications, such as, the application 106 installed on the electronic devices of the content viewers incur heavy traffic on the content provider platform 108 and the remote server 114 providing the requested UI content. Furthermore, the electronic devices of the content viewers are associated with different operating systems (OS), such as Andriod®, iOS®, WebOS®, Roku TV, Tizen, etc. For example, a code employed by the content provider platform 108 for serving API calls received from an Android OS device is different from a code that may be used to serve API calls received from an iOS device. As the API calls conform to the OS of the respective electronic devices, the content provider platform 108 has to maintain different versions of codes to interpret API calls conforming to different operating systems and also align the code with changes in the UI. The duplication of codes to serve API requests received from electronic devices employing different operating systems waste resources at the content provider’s end and makes the management of responses to API calls complicated and cumbersome. Further, as the content catalog is extensive, a large amount of UI has to be transferred from the remote server 114 to the electronic device 104 of the content viewer 102, which may result in patchy loading of the UI, thereby degrading a viewing experience of the content viewer 102.
[0037] To overcome the aforementioned drawbacks and provide additional advantages, a system 200 is provided. The system 200 is configured to be in operative communication with the application 106 installed in the electronic device 104 of the content viewer 102. The system 200 is configured to generate the UI at a client side, i.e., at the electronic device 104, based on only raw data and metadata received from the remote server 114. As the entire UI does not have to be fetched from the remote server 114, a number of API calls to the content provider platform 108 is drastically reduced, thereby reducing the traffic on the content provider platform 108 and the remote server 114. Further, the local generation of the UI (i.e., the generation of the UI at the electronic device 104) based on only raw data and metadata enables the content provider platform 108 to maintain an operating system agnostic code for servicing API calls from electronic devices associated with different operating systems. Furthermore, the system 200 is capable of adapting the UI to the environment, i.e. the electronic device capability, the current network bandwidth capability, etc., and accordingly add/remove/customize content displayed on the UI. As a result, the patchy loading of the UI experienced due to a combination of large UI retrieved from the remote server 114 and insufficient device/network capability, is also avoided, thereby substantially improving a viewing experience of content viewers, such as the content viewer 102. The system 200 is explained in further detail with reference to FIG. 2.
[0038] FIG. 2 is a block diagram of the system 200 configured to dynamically generate a user interface (UI) for a content viewer, in accordance with an embodiment of the invention. The hardware components in an electronic device (such as the electronic device 104 shown in FIG. 1) configured to implement the logic/instructions stored in the memory of the electronic device for dynamically generating the UI is referred to herein as the system 200. The system 200 is configured to be in operative communication with the application 106 associated with the content provider platform 108 (shown in FIG. 1).
[0039] The term ‘dynamically generating the UI’ as used herein primarily implies creating the UI in real-time on the electronic device based on raw data and metadata corresponding to the UI content received from a remote server, such as the remote server 114. More specifically, instead of directly receiving the UI or portions of the UI in response to the API calls, the UI is generated at the client side, i.e. at the electronic device based on receiving only minimal raw data and metadata from the remote server. To this effect, the UI of the application 106 is widgetized, i.e., the UI is broken into UI portions or widgets and raw data and metadata are received corresponding to the each UI portion or widget. Further, the term ‘widget’ as used herein refers to a UI portion which may be a customizable entity or element displaying a specific information related to a content and may be dynamically generated based on raw data/metadata received from a content provider platform, such as the content provider platform 108 shown in FIG. 1. In one illustrative example, a widget is a customizable element including a plurality of blocks that include textual content, images, icons, animations, videos or any combination thereof. The raw data/metadata corresponding to the widget may be received in the form of data packets from the remote server 114. In one illustrative example, a scorecard showing live scores may be widgetized. More specifically, the layout of the widget (i.e. shape, size, colored images, background, etc.) may be generated by the system 200 and only the data packets providing live score updates may be received from the remote server 114. In some cases, additional information related to important events in the match etc., may be provided to the system 200, which may then generate the UI portion (i.e., the widget). The generated one or more UI portions may be combined to generate the UI and presented to the viewer.
[0040] The system 200 is depicted to include a processing module 202 and the memory module 204. In one embodiment, a single core or a multi-core processor in the electronic device 104 and the memory portions in the electronic device 104 dedicated for storing the code/instructions for generating the UI are referred to herein as the processing module 202 and the memory module 204, respectively. Alternatively, in some embodiments, the electronic device 104 may include dedicated hardware components for the processing module 202 and the memory module 204, respectively.
[0041] The memory module 204 is capable of storing machine executable instructions, referred to herein as platform instructions 205. Further, the processing module 202 is capable of executing the platform instructions 205. In an embodiment, the processing module 202 may be embodied as a multi-core processor, a single core processor, or a combination of one or more multi-core processors and one or more single core processors. For example, the processing module 202 may be embodied as one or more of various processing devices, such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing circuitry with or without an accompanying DSP, or various other processing devices including integrated circuits such as, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. In an embodiment, the processing module 202 may be configured to execute hard-coded functionality. In an embodiment, the processing module 202 is embodied as an executor of software instructions, wherein the instructions may specifically configure the processing module 202 to perform the algorithms and/or operations described herein when the instructions are executed.
[0042] The processing module 202 is further depicted to include a UI generator 214, a thumbnail generator 216 and a widget management module 218. The UI generator 214, the thumbnail generator 216 and the widget management module 218 may be implemented as software, firmware or combinations thereof. The operation of the various modules of the processing module 202 are explained in further detail later.
[0043] The memory module 204 may be embodied as one or more volatile memory devices, one or more non-volatile memory devices, and/or a combination of one or more volatile memory devices and non-volatile memory devices. For example, the memory module 204 may be embodied as semiconductor memories (such as mask ROM, PROM (programmable ROM), EPROM (erasable PROM), flash memory, RAM (random access memory), etc.), magnetic storage devices (such as hard disk drives, floppy disks, magnetic tapes, etc.), optical magnetic storage devices (e.g., magneto-optical disks), CD-ROM (compact disc read only memory), CD-R (compact disc recordable), CD-R/W (compact disc rewritable), DVD (Digital Versatile Disc) and BD (BLU-RAY® Disc).
[0044] In at least some embodiments, the memory module 204 stores logic and/or instructions, which may be used by modules of the processing module 202, such as the UI generator 214, the thumbnail generator 216 and the widget management module 218. For example, the memory module 204 includes instructions for: (1) determining one or more UI portions or widgets corresponding to a content page configuring the UI, (2) analyzing data packets received corresponding to the UI, (3) generating the widgets by embedding information received in the data packets into preconfigured widget templates, (4) binding the one or more widgets together for dynamically generating the UI, (5) causing display of the UI for the content viewer on the electronic device, (6) dynamically generating thumbnails for one or more widgets based on events detected in a livestreaming content, (7) continuously tracking one or more device parameters (i.e., device potential data) for managing widgets displayed on the UI.
[0045] The system 200 is further depicted to include a storage module 206 and a communication module 208. The communication module 208 is configured to facilitate communication with the content provider’s application, such as by means of interrupts or API calls, to cause the application to request data packets from the remote server or provide data packets to the processing module 202. The communication module 208 is also configured to enable the provision of the generated UI to a display module of the electronic device 104 to cause display of the UI on a display screen of the electronic device 104. In some embodiments, the communication module 208 may include communication circuitry, which may enable reception of: (1) one or more data packets from the remote server, such as the remote server 114 shown in FIG. 1, (2) event data related to one or more events detected in a livestreaming content from the content platform server, such as the content provider platform 108, and (3) device potential data related to the electronic device at predefined intervals.
[0046] The storage module 206 may be embodied as any computer-operated hardware suitable for storing and/or retrieving data. The storage module 206 store UI design rules that include a set of predefined rules for different content pages, parameter specifications, preconfigured widget templates, and a plurality of UI templates. The set of predefined rules for UI design may include rules and parameters related to spacing, alignment, contrast, color templates, repetition, animation, white space, and the like. The storage module 206 also includes a color pallet with a number of color options for widgets, background colors, special effects (e.g., contrast, grey scale, vintage, etc.). Further, the storage module 206 may also store the UIs generated at the electronic device 104.
[0047] The various components of the system 200, such as the processing module 202, the memory module 204, the storage module 206, and the communication module 208 are configured to communicate with each other via or through a centralized circuit system 210. The centralized circuit system 210 may be various devices configured to, among other things, provide or enable communication between the components of the system 200. In certain embodiments, the centralized circuit system 210 may be a central printed circuit board (PCB) such as a motherboard, a main board, a system board, or a logic board. The centralized circuit system 210 may also, or alternatively, include other printed circuit assemblies (PCAs) or communication channel media.
[0048] As explained above, the system 200 is in operative communication with an application, such as the application 106 associated with the content provider via the communication module 208. Accordingly, the UI generator 214 of the processing module 202 in the system 200 is configured to communicate with the application 106 in the electronic device 104 to learn about one or more UIs associated with the application 106. For example, the application 106 may be associated with a plurality of content pages and each content page may be associated with a respective UI. For example, the UI generator 214 may extract information about a number of content items and a type of content items (for example, content titles, user selectable buttons, banners, ads, etc.) on each content page. Based on such extracted information, the system 200 may determine a number of UI portions or widgets that a UI of the corresponding content page may be split into. In an embodiment, learning models such as Artificial Intelligence (AI) and Machine Learning (ML) models are used to determine the one or more widgets corresponding to the content page. In an embodiment, the learning model is configured to analyse the one or more data packets to extract rich metadata corresponding to one or more content. This rich metadata may include image frame information pertaining to the one or more content. The learning model is further configured to determine a suitable image frame to be used for generating a thumbnail for the content page. In some scenarios, the learning model may generate a personalized thumbnail using the suitable image frame by analysing a content viewer profile (stored either locally on the electronic device 104 or externally on the remote server). For example, a content page showing a movie trailer and some additional textual information about the movie, such as a length of the movie, the cast of the movie and a user rating of the movie may be split into two widgets or two UI portions, with one UI portion/widget corresponding to the movie trailer an another UI portion/widget corresponding to the part of UI that shows additional textual information about the movie. Similarly, a content page such as an application home page may be split into a larger number of UI portions/widgets. For example, a UI portion/widget showing content tiles or thumbnails corresponding to recommended content, a UI portion/widget showing content tiles or thumbnails corresponding to popular content, a UI portion/widget showing content tiles or thumbnails corresponding to regional language content, a UI portion/widget showing content tiles or thumbnails corresponding to sports content, and so on and so forth. The UI generator 214 may store information related to the number of widgets for each UI of the application 106 in the storage module 206.
[0049] In one embodiment, the content viewer 102 (shown in FIG. 1) may open the application 106 on the electronic device 104 and attempt to access a content page associated with the application 106. The UI generator 214 on account of being in operative communication with the application 106 may cause the application 106 to make an API call to the remote server 114 to fetch raw data/metadata in the form of data packets corresponding to one or more widgets determined to be associated for the requested content page. The raw data/metadata fetched corresponding to a widget from the remote server 114 is hereinafter simply referred to as ‘data’ for ease of description. It is understood that raw data may correspond to the actual content item whereas the metadata may correspond to information about the content item. For example, in a live match scorecard, the raw data may correspond to the current score and the real-time updates related to batsmen and bowler statistics, whereas the metadata may correspond to data such as a number of viewers currently watching the match, the name of the tournament, the thumbnail images or snapshots of match events, etc. Accordingly, the UI generator 214 may cause the application 106 to make API call to fetch data corresponding to each widget from the remote server 114 (shown in FIG. 1). It is noted that the API call does not request the UI in a part-by-part manner, but only data corresponding to individual parts of the UI (called as UI portions or widgets herein) is requested from the remote server 114. As a result, a number of API calls is decreased and the load on the content provider platform 108 and the remote server 114 is substantially reduced.
[0050] The data packets received corresponding to each widget by the electronic device 104 may be forwarded via the application 106 to the communication module 208 of the system 200. The communication module 208 may be configured to forward the data packets to the processing module 202. The UI generator 214 in the processing module 202 is configured to receive the one or more data packets corresponding to each widget (i.e., a UI portion). The UI generator 214 in conjunction with the instructions stored in the memory module 204 may be configured to parse each data packet to extract data (i.e., raw data/metadata) corresponding to each widget. Further, the UI generator 214 may analyse the data extracted from the data packets corresponding to the widget to determine a suitable widget template for the widget from among a plurality of preconfigured widget templates stored in the storage module 206. It is noted that the preconfigured widget templates may include different layout designs with one or more portions marked for placing data from the data packets. Moreover, each preconfigured widget template may adopt different color schemes, background effects, alignment, positioning of data portions, shapes of data portions, sizes of data portions and font styles for text to display the data within the widget.
[0051] The determination of the suitable widget template may be performed based on predefined policies for widget template selection stored in the storage module 206. Subsequent to the determination of the suitable widget template, the UI generator 214 is configured to embed the data from the data packets in the widget template to create the UI portion or the widget. For example, the UI generator 214 is configured to place information retrieved from the data packets (in an unprocessed or transformed form) in data portions, i.e., portions marked in the preconfigured widget template for placing data to be displayed to the content viewer 102 in the corresponding UI portion. In an illustrative example, a preconfigured widget template for a content item playback may include a square shaped content tile with a predefined color background and one or more portions marked for placing a thumbnail image (or a poster of a movie) and placing a textual portion for placing a content title. Accordingly, subsequent to the determination of the suitable widget template, the UI generator 214 is configured to embed the data from the data packets in the widget template to create the UI portion or the widget. Similarly, one or more UI portions corresponding to the UI of the requested content page may be created by the UI generator 214. The UI generator 214 may further be configured to combine the UI portions (i.e., piece together the UI portions) to generate the UI of the content page. In some embodiments, a UI template may be stored corresponding to each content page, which may facilitate arrangement of the UI portions to generate the UI corresponding to the content page. An example UI portion/widget created by the UI generator 214 is shown in FIG. 3.
[0052] FIG. 3 shows a representation of a scorecard 304 which is a part of a UI associated with a content page of the application 106 shown in FIG 1, in accordance with an embodiment of the invention.
[0053] As explained with reference to FIG. 2, the UI of a content page may be widgetized, i.e., split into one or more UI portions, also referred to herein as ‘widgets’. The scorecard 304 is one such portion of a sports content page associated with the application 106. In one illustrative example, the UI generator 214 (shown in FIG. 2) may determine that the scorecard 304 may be widgetized, i.e., included in a widget form. The UI generator 214 may identify a preconfigured widget template. In one illustrative example, the preconfigured widget template may include a square shaped content tile 302 corresponding to the scorecard 304. Such a preconfigured widget template corresponding to the scorecard 304 is hereinafter referred to as the widget 302. The widget 302 may include the content tile with a colored background and a predefined image 310. For example, the widget 302 may include a standard cricket match poster image 310 with marquee players from both teams standing next to a cricket championship trophy. Further, the widget 302 may also include standard buttons such as buttons 320 and 322 associated with text ‘WATCH LIVE’ and ‘COMMENTARY’, respectively. On the viewer’s request to view the sports content page, an API call may made by the application 106 to request data corresponding to the widget 302 from the remote server 114 (shown in FIG. 1).
[0054] The one or more data packets received from the remote server 114 corresponding to the widget 302 may be parsed to extract data (i.e., raw data and metadata) corresponding to the cricket match. Further the extracted data may be placed in data portions marked (shown as dotted boxes) in the preconfigured widget template. Accordingly, raw data such as ongoing score of a first team, the final score of the second team and the match status may be extracted from the data packets and placed in data portions 314, 316 and 318, respectively. Further, metadata such as the game information (shown as text ‘CHAMPIONSHIP FINAL’), the stream status (shown as text ‘LIVE’ with a red colored dot), and the number of current viewers (shown as text ‘25.3M’ with an eye symbol), may be extracted from the data packets and placed in data portions 312, 306 and 308, respectively to create the final displayable form of the UI portion, i.e. the widget 302. As explained with reference to FIG. 2, one or more such widgets may be created and placed together or combined to generate the UI, such as the UI corresponding to the sports content page (not shown in FIG. 3).
[0055] Although livestreaming of content is hugely popular among content viewers, in some example scenarios, such content sometimes may fail to sufficiently engage content viewers and, in general, viewers may drop off from watching the livestream. In an illustrative example, a team chasing a target to win a cricket match may lose 3 wickets in quick succession and the viewer may drop off from watching the content as chasing the target score may not be interesting anymore. In some embodiments, the system 200 may be configured to cause the application 106 to track events corresponding to the livestream and cause a change in UI portion or the widget to attract an attention of the viewer and entice the viewer to view the livestream again.
[0056] Referring now to FIG. 2, the system 200 may cause the application 106 in the electronic device to make API calls to the remote server 114 (shown in FIG. 1) to receive periodic updates in relation to the livestream. If an interesting occurrence has occurred during the live event, then the remote server 114 may send one or more data packets, in which at least one data packet may include information related to the interesting occurrence. In an illustrative example, if a top-seed player wins the third set of a tennis match after losing the first two sets, then such information may be provided along with tennis match score as metadata. The UI generator 214 may parse the data packets corresponding to a widget associated with the display of tennis match score and provide the information related to the interesting occurrence to the thumbnail generator 216. It is noted that the interesting occurrence may not be limited to the example mentioned above. Indeed various events such as a goal scored, a penalty awarded, and a 3-pointer scored, etc. may qualify as interesting occurrences during a sports related livestream. Similarly, interesting occurrences related to non-sports livestream may include an entry of superstar, the performance of a popular song, an award presentation ceremony, and the like. Further, the information related to the interesting occurrence, hereinafter referred to as the event data, may include information such as, event name (e.g., a goal, a penalty, a six, a wicket, a foul, a match point, a tiebreak set, and the like related to a plurality of sports), a comment related to the event (e.g., helicopter shot, hat trick for player A, etc.), one or more images related to the event (e.g., a player celebrating his hat trick, a team celebrating a goal, a player celebrating winning of a set, etc.) and a short snippet of the event (i.e., a video clip of the event).
[0057] In at least one embodiment, the UI generator 214 may provide the event data extracted from the data packets and provide the event data to the thumbnail generator 216. The thumbnail generator 216 is configured to modify the widget 302, such as for example, to show an attractive image with a catchy title, to attract an attention of the viewer in relation to the interesting occurrence and entice the viewer to view the livestream again.
[0058] Referring now to FIG. 4, shows a modified widget 402 in accordance with an embodiment of the invention. The modified widget 402 corresponds to a modified form of the widget 302 shown in FIG. 3. In an illustrative example, a team chasing (for example, team ‘RISING STARS’) may lose three wickets of key players and many viewers may lose interest in the match and stop watching the livestream. As explained with reference to FIG. 2, the application 106 may track the events in the match and receive periodic updates. If an interesting occurrence takes places, then event data corresponding to such an occurrence may be sent in the form of data packets to the electronic device 104. The UI generator 214 in the system 200 may parse the data packets and place score information in the marked data portions of the preconfigured widget template as explained with reference to FIG. 3. Further, the UI generator 214 may pass on the event data to the thumbnail generator 216 (shown in FIG. 2). In at least one example embodiment, the thumbnail generator 216 is configured to replace the predefined image 310 shown in FIG. 3 with an image capturing the interesting occurrence. For example, in spite of losing three quick wickets, the wicketkeeper batsman may play an attacking game and hit three sixes in an over to make the match interesting again. An image 410 of the wicketkeeper batsman with a slogan ‘RISHABH PANT KEEPS THE MATCH ALIVE’ may be generated by the thumbnail generator 216 on-the-fly based on one or more thumbnails and comments received in the data packets to entice the viewer to watch the livestream by clicking on the button 320. The updated score may also be shown in boxes 414, 416 and 418, respectively. A modified widget such as the modified widget 402 enables the content provider to keep the viewers engaged in watching the livestream content offered by the content provider.
[0059] Referring now to FIG. 2, in some example scenarios, the content pages may include a lot of content and the electronic device’s current state may not be able to support fast loading of the UI. As a result, the viewer’s viewing experience may be degraded due to patchy loading of the UI content. As an illustrative example, the processor in the electronic device 104 running the application 106 (shown in FIG. 1) may be occupied by a severe workload from other applications or the electronic device 104 may be facing an issue with a network bandwidth. In such scenarios, the widget management module 218 may be configured to monitor the various vital statistics of the electronic device, such as the device power (connection to a power source and the current battery levels), the network strength, the device processor workload, and the like and appropriately manage widgets on the UI. To this effect, the widget management module 218 may be configured to apply a predefined algorithm stored in the memory module 204 which defines thresholds and weights to various device parameters, such as power, network strength, available processing power etc., to arrive at a current potential of the electronic device. The management of the widgets based on the electronic device’s current potential, also referred to as device potential data, is explained next with an illustrative example in FIGS. 5A and 5B.
[0060] Referring now to FIG. 5A, a UI 500 corresponding to a home page of the application 106 is depicted to be displayed on the electronic device 104, in accordance with an embodiment of the invention. The UI 500 is depicted to display several strips of content tiles such as a strip 502 for recommended content, a strip 504 for popular content, a strip 506 for sports content, a strip 508 for regional language content, and the like. Each strip may be associated with a series of content tiles, where each content tile corresponds to a thumbnail of a content item. For example, the strip 502 is exemplarily depicted to show first four content tiles of a series of content tiles. The selection of content tile, such as a content tile 510 may trigger playback of the content item corresponding to the content title displayed on the content tile 510. As explained with reference to FIGS. 2 and 3, the UI generator 214 of the system 200 is configured to determine a number of widgets corresponding to each content page, such as the home page of the application. In an illustrative example, the UI generator 214 may determine each strip to be a widget. Accordingly, the strips 502, 504, 506 and 508 are referred to hereinafter as widgets 502, 504, 506 and 508. In another embodiment, the UI generator 214 provides a functionality to the content viewer 102 to customize the relative placement of the various widgets (such as widgets 502, 504, 506 and 508) with the UI (such as UI 500) in real-time. Alternatively, the UI generator 214 provides a functionality to the content viewer 102 to design templates for the widgets and store them as preconfigured templates.
[0061] Further as explained above, the widget management module 218 (shown in FIG. 2) may be configured to monitor the various vital statistics of the electronic device 104, such as the device power (connection to a power source and the current battery levels), the network strength, the device processor workload, and the like and appropriately manage widgets on the UI, such as the UI 500. In one illustrative example, if the widget management module 218 determines from the device potential data that a device power is quite low or the network bandwidth is below a predefined transfer speed threshold, then the widget management module 218 is configured to cause the UI generator 214 to reduce the number of widgets shown on the UI 500 and/or also remove content portions within individual widgets to adapt to the drop in device performance. It is understood that the widget management module 218 may be configured to cause the UI generator 214 to revert to the original UI 500 once the device potential returns to normalcy. A UI modified based on the input from the widget management module 218 is shown in FIG. 5B.
[0062] Referring now to FIG. 5B, a modified UI 550 corresponding to a home page of the application 106 is depicted to be displayed on the electronic device 104, in accordance with an embodiment of the invention. The modified UI 550 corresponds to a modified version of the UI 500 shown in FIG. 5A. More specifically, the modified UI 550 is depicted to display only two widgets, such as widgets 502 and 504, while widgets 506 and 508 are removed from the UI 500. Further, individual widgets such as widget 502 and 504 show a reduced number of content tiles to adapt to the decreased device potential. Moreover, the widget management module 218 may remove the thumbnail image in a content tile of the widget 504 to display only the content title ‘REALITY SHOW’ for adapting to the reduced device potential. It is noted that such modification to the UI on the client side, i.e., at the electronic device’s side is explained herein for illustration purposes. Indeed various other modifications, such as toned down resolution of images, utilizing images with lesser pixel density or lesser information, only textual content titles with no corresponding images, etc., may be suggested to the UI generator 214 by the widget management module 218 to adapt generation of UIs to the current potential of the electronic device and, thereby, improve a content viewing experience of the viewer.
[0063] Referring now to FIG. 2, the widget management module 218 may provide updates about the various vital statistics of the electronic device, such as the device power (connection to a power source and the current battery levels), the network strength, the device processor workload, and the like to the UI generator 214. In some example embodiments, the UI generator 214 is configured to generate a fallback UI when the electronic device operates on limited resources and is not able to display a rich UI or a customized UI. The fallback UI may be a basic default UI with limited widgets and/or widgets with limited information that may be supported by all types of devices. In general, electronic devices with limited resources may be able to display such fallback UIs which consume very less data thereby resulting in lower latency. An example of the fallback UI may be the modified UI 550 shown and explained with reference to FIG. 5B.
[0064] FIG. 6 shows an exemplary dynamically generated graphical user interface 600, in accordance with an embodiment of the invention. In the illustrated example, a live football match between two different teams (i.e., “GERMANY VS FRANCE”) is depicted. In an embodiment, as the live streaming event is tracked and if one or more events take place during the live streaming, the thumbnail is updated by the thumbnail generator 216. In the illustrated example, when an event such as ‘a player receiving or getting a red card’ is detected, the corresponding thumbnail (see, 602) is updated. Further, various other portions of the UI or widgets may also be updated in real-time based on the one or more data packets and event data. For example, a widget corresponding to the game time (see, 604) and the score (see, 606). Further, the UI 600 depicts other widgets (see, 608 and 610) that may enable the content viewer to watch the live content or view the live comments corresponding to the live streaming content.
[0065] An example of a flow diagram for dynamically generating a UI at an electronic device for a content viewer is explained next with reference to FIGS. 7 and 8.
[0066] FIG. 7 shows a flow diagram of a method 700 for dynamically generating a UI at an electronic device 104 for a content viewer 102, in accordance with an embodiment of the invention. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by a system such as the system 200 explained with reference to FIGS. 2 to 6 and/or by a different device associated with the execution of software that includes one or more computer program instructions. The method 700 starts at operation 702.
[0067] At the operation 702 of the method 700, a number of widgets configuring a UI of a content page of an application associated with a content provider is determined by a system, such as the system 200, implemented in an electronic device 104 of the content viewer 102. The determination of the number of widgets configuring the UI of the content page is explained with reference to the UI generator 214 in FIGS. 2 and 3
[0068] At operation 704 of the method 700, one or more data packets corresponding to each widget from among the number of widgets is received by the system from a remote server corresponding to the content provider. Each data packet includes at least one of raw data/ metadata in relation to a content to be displayed in the corresponding widget.
[0069] At operation 706 of the method 700, each data packet from among the one or more data packets is parsed by the system to extract data in relation to the content to be displayed in the corresponding widget.
[0070] At operation 708 of the method 700, extracted data is embedded in a preconfigured widget template identified for each widget to create a display form of the respective widget.
[0071] At operation 710 of the method 700, the UI of the content page is generated at the electronic device by combining display forms of the number of widgets.
[0072] At operation 712 of the method 700, a display of the generated UI on a display screen of the electronic device 104 for the content viewer 102 is caused by the system 200. The method 700 ends at the operation 712.
[0073] FIG. 8 shows a flow diagram of a method 800 for dynamically generating a UI at an electronic device 104 for a content viewer, in accordance with an embodiment of the invention. The various steps and/or operations of the flow diagram, and combinations of steps/operations in the flow diagram, may be implemented by, for example, hardware, firmware, a processor, circuitry and/or by a system 200 such as the system 200 200 explained with reference to FIGS. 2 to 7 and/or by a different device associated with the execution of software that includes one or more computer program instructions. The method 800 starts at operation 802.
[0074] At the operation 802, the method 800 includes accessing, by a system 200, information related to a content page of an application associated with an electronic device 104 of a content viewer 102, the system 200 being implemented on the electronic device 104.
[0075] At operation 804, the method 800 includes determining, by the system 200, one or more widgets corresponding to the content page based, at least in part, on the information related to a content page; the one or more widgets being a customizable element.
[0076] At operation 806, the method 800 includes accessing, by the system 200, one or more data packets corresponding to each of the one or widgets from a remote server 114.
[0077] At operation 808, the method 800 includes parsing, by the system 200, each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets.
[0078] At operation 810, the method 800 includes generating, by the system 200, one or more graphical user interfaces based, at least in part, on the extracted data.
[0079] At operation 812, the method 800 includes facilitating, by the system 200, a display of the one or more graphical user interfaces on the electronic device 104.
[0080] FIG. 9 is a simplified block diagram of a Content Delivery Network (CDN) 900, in accordance with various embodiments of the invention. It noted that in a non-limiting example the remote server of FIG. 1 can be implented within the CDN 900. The CDN 900 refers to a distributed group of servers that are connected via a network (such as Network 904, which is explained later). The CDN 900 provides quick delivery of media content to various content viewers subscribed to the content provider platform 108. The CDN 900 includes a plurality of interconnected servers that may interchangeably be referred to as a plurality of content repository servers. The CDN includes an origin CDN server 902, a public CDN server 906, a private CDN server 908, a Telecommunication CDN server (referred to hereinafter as ‘Telco CDN server’) 910, an Internet Service Provider CDN server (referred to hereinafter as ‘ISP CDN server’) 912, and a CDN point of presence server (referred to hereinafter as ‘CDN POP server’) 914 each coupled to, and in communication with (and/or with access to) the network 904. It is noted that CDN POP may also be interchangeably referred to as ‘sub-CDNs’, ‘subnet CDN’, ‘surrogate CDN’, and ‘CDN sub-box’. Further, two or more components of the CDN 900 may be embodied in one single component, and/or one component may be configured using multiple sub-components to achieve the desired functionalities. Some components of the CDN 900 may be configured using hardware elements, software elements, firmware elements, and/or a combination thereof.
[0081] The network 904 may include, without limitation, a light fidelity (Li-Fi) network, a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a satellite network, the Internet, a fiber-optic network, a coaxial cable network, an infrared (IR) network, a radio frequency (RF) network, a virtual network, and/or another suitable public and/or private network capable of supporting communication among two or more of the parts illustrated in FIG. 9, or any combination thereof. Various servers within the CDN 900 may connect to the network 904 using various wired and wireless communication protocols, such as Transmission Control Protocol and Internet Protocol (TCP/IP), User Datagram Protocol (UDP), 2nd Generation (2G), 3rd Generation (3G), 4th Generation (4G), 5th Generation (5G) communication protocols, Long Term Evolution (LTE) communication protocols, future communication protocols or any combination thereof. For example, the network 904 may include multiple different networks, such as a private network made accessible by the origin CDN server 902 and a public network (e.g., the Internet, etc.) through which the various servers may communicate.
[0082] The origin CDN server 902 stores the media content accessed/downloaded from the streaming content provider and/or content producers. The origin CDN server 902 serves the media content to one or more cache servers which are either located in the vicinity of the content viewer/subscriber or connected to another cache server located in the content viewer’s vicinity. In various examples, cache servers include the public CDN server 906, the private CDN server 908, the Telco CDN server 910, the ISP CDN server 912, the CDN POP server 914, and the like.
[0083] The origin CDN server 902 includes a processing system 916, memory 918, database 920, and communication interface 922. The processing system 916 is configured to extract programming instructions from the memory 918 to perform various functions of the CDN 900. In one example, the processing instructions include instructions for ingesting media content via the communication interface 922 from a remote database 924 which may further include one or more data repositories/databases (not shown) to an internal database such as the database 920. The remote database 924 is associated with a streaming content provider and/or content producer. In another example, the media content stored within the database 920 can be served to one or more cache servers via the communication interface 922 over the network 904.
[0084] In some examples, the public CDN server 906 is associated with a public CDN provider which hosts media content among other types of data for different content providers within the same server. The private CDN server 908 is associated with a private CDN provider (such as a streaming content provider) which hosts media content for serving the needs of its subscribers. The Telco CDN server 910 is associated with telecommunication service providers which provide content hosting services to various entities such as the streaming content platform. The ISP CDN server 912 is associated with internet service providers which provide content hosting services to various entities such as the streaming content platform. The CDN POP server 190 caches content and allows the electronic devices of the content viewers to stream the content. It is noted that the various cache servers download and cache media content from the origin CDN server 902 and further allow a valid user or content viewer to stream the media content.
[0085] It is noted that various embodiments of the present disclosure, the various functions of the remote server can be implemented using any one or more components of the CDN 900 such as the origin CDN server 902 and/or one or more cache servers individually and/or in combination with each together. Alternatively, the system 200 can be communicably coupled with the CDN 900 to perform the various embodiments or methods described by the present disclosure.
[0086] Various embodiments disclosed herein provide numerous advantages. More specifically, the embodiments disclosed herein suggest techniques for dynamically generating a UI an electronic device for a viewer. As only limited data packets are requested by the content provider application, the number of API calls reduces drastically thereby reducing load on the content provider platform and the remote server. Moreover, as the UI is generated at the client side (i.e., at the electronic device) based on the metadata, latency reduces due to decrease in processing performed at the content provider platform and also avoids duplication of codes to serve different API requests received from different operating systems. Further, the widgets may be dynamically customized with images/thumbnails that entice the viewer to watch livestreaming content thereby increasing traffic for the livestreaming content. In addition, the number of widgets displayed for the content viewer on the electronic device may be customized based on the device capability thereby providing a better viewing experience for the viewers.
[0087] The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The exemplary embodiment was chosen and described in order to best explain the principles of the present invention and its practical application, to thereby enable others skilled in the art to best utilize the present invention and various embodiments with various modifications as are suited to the particular use contemplated. ,CLAIMS:CLAIMS

We claim:

1. A computer-implemented method, the computer-implemented method comprising:
accessing, by a system, information related to a content page of an application associated with an electronic device of a content viewer, the system being implemented on the electronic device;
determining, by the system, one or more widgets corresponding to the content page based, at least in part, on the information related to the content page, the one or more widgets being a customizable element;
accessing, by the system, one or more data packets corresponding to each of the one or widgets from a remote server;
parsing, by the system, each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets;
generating, by the system, one or more graphical user interfaces based, at least in part, on the extracted data; and
facilitating, by the system, a display of the one or more graphical user interfaces on the electronic device.

2. The computer-implemented method as claimed in claim 1, wherein the information related to the content page comprises a number of content items and a type of content items on each content page.

3. The computer-implemented method as claimed in claim 1, wherein the widget comprises a plurality of blocks further comprising at least textual content, images, icons, animations, and videos.

4. The computer-implemented method as claimed in claim 1, wherein each of the one or more data packets comprises one of raw data and metadata, wherein the raw data corresponds to the content item and the metadata corresponds to information related to the content item.

5. The computer-implemented method as claimed in claim 1, wherein the one or more widgets corresponding to the content page is determined via a machine learning model.

6. The computer-implemented method as claimed in claim 1, wherein generating the one or more graphical user interfaces, further comprises:
accessing, by the system, a plurality of preconfigured widget templates from a storage module associated with the system;
determining, by the system, a suitable widget template for the one or more widgets based, at least in part, on the extracted data and predefined policies for widget template selection;
embedding, by the system, the extracted data into the suitable widget template for the one or more widgets; and
combining, by the system, the one or more widgets for generating the one or more graphical user interfaces.

7. The computer-implemented method as claimed in claim 1, further comprising:
accessing, by the system, event data corresponding to a live streaming content from the remote server;
determining, by the system, one or more events in the live streaming content based, at least in part, on the event data; and
upon determining the one or more events, dynamically generating, by the system, thumbnails for the one or more widgets based, at least in part, on the one or more events.

8. The computer-implemented method as claimed in claim 1, further comprising:
tracking, by the system, one or more device parameters corresponding to the electronic device, the one or more device parameters comprising at least one of device power, network strength, and device processor workload;
determining, by the system, device potential data based, at least in part, on the one or more device parameters, the device potential data indicating a current potential of the electronic device; and
adapting, by the system, the one or more widgets based, at least in part, on the device potential data.

9. The computer-implemented method as claimed in claim 1, further comprising:
generating, by the system, a fallback user interface based, at least in part, on determining if the current potential of the electronic device is below a predefined threshold.

10. The computer-implemented method as claimed in claim 1, wherein the remote server is a Content Delivery Network (CDN).

11. A system, the system comprising:
a memory for storing instructions; and
a processor configured to execute the instructions and thereby cause the system, at least in part, to:
access information related to a content page of an application associated with an electronic device of a content viewer, the system being implemented on the electronic device;
determine one or more widgets corresponding to the content page based, at least in part, on the information related to a content page; the one or more widgets being a customizable element;
access one or more data packets corresponding to each of the one or widgets from a remote server;
parse each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets;
generate one or more graphical user interfaces based, at least in part, on the extracted data; and
facilitate a display of the one or more graphical user interfaces on the electronic device.

12. The system as claimed in claim 11, wherein the information related to the content page comprises a number of content items and a type of content items on each content page.

13. The system as claimed in claim 11, wherein the widget comprises a plurality of blocks further comprising at least textual content, images, icons, animations, and videos.

14. The system as claimed in claim 11, wherein each of the one or more data packets comprises one of raw data and metadata, wherein the raw data corresponds to the content item and the metadata corresponds to information related to the content item.

15. The system as claimed in claim 11, wherein the one or more widgets corresponding to the content page is determined via a machine learning model.

16. The system as claimed in claim 11, wherein to generate the one or more graphical user interfaces, the system is further caused, at least in part to:
access a plurality of preconfigured widget templates from a storage module associated with the system;
determine a suitable widget template for the one or more widgets based, at least in part, on the extracted data and predefined policies for widget template selection;
embed the extracted data into the suitable widget template for the one or more widgets; and
combine the one or more widgets for generating the one or more graphical user interfaces.

17. The system as claimed in claim 11, wherein the system is further caused, at least in part to:
access event data corresponding to a live streaming content from the remote server;
determine one or more events in the live streaming content based, at least in part, on the event data; and
upon determining the one or more events, dynamically generate thumbnails for the one or more widgets based, at least in part, on the one or more events.

18. The system as claimed in claim 11, wherein the system is further caused, at least in part to:
track one or more device parameters corresponding to the electronic device, the one or more device parameters comprising at least one of device power, network strength, and device processor workload;
determine device potential data based, at least in part, on the one or more device parameters, the device potential data indicating a current potential of the electronic device; and
adapt the one or more widgets based, at least in part, on the device potential data.

19. The system as claimed in claim 11, wherein the system is further caused, at least in part to:
generate a fallback user interface based, at least in part, on determining if the current potential of the electronic device is below a predefined threshold.

20. A non-transitory computer-readable storage medium comprising computer-executable instructions that, when executed by at least a processor of a system, cause the system to perform a method comprising:
accessing information related to a content page of an application associated with an electronic device of a content viewer, the system being implemented on the electronic device;
determining one or more widgets corresponding to the content page based, at least in part, on the information related to a content page, the one or more widgets being a customizable element;
accessing one or more data packets corresponding to each of the one or widgets from a remote server;
parsing each of the one or more data packets to extract data in relation to a content item to be displayed in each of the one or more widgets;
generating one or more graphical user interfaces based, at least in part, on the extracted data; and
facilitating a display of the one or more graphical user interfaces on the electronic device.

Documents

Application Documents

# Name Date
1 202221004272-STATEMENT OF UNDERTAKING (FORM 3) [25-01-2022(online)].pdf 2022-01-25
2 202221004272-PROVISIONAL SPECIFICATION [25-01-2022(online)].pdf 2022-01-25
3 202221004272-POWER OF AUTHORITY [25-01-2022(online)].pdf 2022-01-25
4 202221004272-FORM 1 [25-01-2022(online)].pdf 2022-01-25
5 202221004272-DRAWINGS [25-01-2022(online)].pdf 2022-01-25
6 202221004272-DECLARATION OF INVENTORSHIP (FORM 5) [25-01-2022(online)].pdf 2022-01-25
7 202221004272-Proof of Right [22-07-2022(online)].pdf 2022-07-22
8 202221004272-ORIGINAL UR 6(1A) FORM 1-290722.pdf 2022-08-02
9 202221004272-Request Letter-Correspondence [07-12-2022(online)].pdf 2022-12-07
10 202221004272-Power of Attorney [07-12-2022(online)].pdf 2022-12-07
11 202221004272-Form 1 (Submitted on date of filing) [07-12-2022(online)].pdf 2022-12-07
12 202221004272-Covering Letter [07-12-2022(online)].pdf 2022-12-07
13 202221004272-CORRESPONDENCE(IPO)-(WIPO DAS)-14-12-2022.pdf 2022-12-14
14 202221004272-FORM 18 [23-01-2023(online)].pdf 2023-01-23
15 202221004272-DRAWING [23-01-2023(online)].pdf 2023-01-23
16 202221004272-CORRESPONDENCE-OTHERS [23-01-2023(online)].pdf 2023-01-23
17 202221004272-COMPLETE SPECIFICATION [23-01-2023(online)].pdf 2023-01-23
18 Abstract1.jpg 2023-02-09
19 202221004272-PA [03-10-2024(online)].pdf 2024-10-03
20 202221004272-ASSIGNMENT DOCUMENTS [03-10-2024(online)].pdf 2024-10-03
21 202221004272-8(i)-Substitution-Change Of Applicant - Form 6 [03-10-2024(online)].pdf 2024-10-03
22 202221004272-FER.pdf 2025-03-07
23 202221004272-OTHERS [01-09-2025(online)].pdf 2025-09-01
24 202221004272-FER_SER_REPLY [01-09-2025(online)].pdf 2025-09-01
25 202221004272-COMPLETE SPECIFICATION [01-09-2025(online)].pdf 2025-09-01
26 202221004272-CLAIMS [01-09-2025(online)].pdf 2025-09-01
27 202221004272-RELEVANT DOCUMENTS [13-10-2025(online)].pdf 2025-10-13
28 202221004272-POA [13-10-2025(online)].pdf 2025-10-13
29 202221004272-MARKED COPIES OF AMENDEMENTS [13-10-2025(online)].pdf 2025-10-13
30 202221004272-FORM 13 [13-10-2025(online)].pdf 2025-10-13
31 202221004272-AMENDED DOCUMENTS [13-10-2025(online)].pdf 2025-10-13

Search Strategy

1 SearchE_04-03-2024.pdf