Patentable/Patents/US-12756892-B2
US-12756892-B2

Terminal, method and computer program

PublishedOctober 6, 2026
Assigneenot available in USPTO data we have
Technical Abstract

A terminal for handling data in a live streaming platform, comprising one or a plurality of processors, wherein the one or plurality of processors execute a machine-readable instruction to perform: requesting event-related data from the live streaming platform; and determining cache strategy according to timing of the progress of the event. According to the above embodiments, the cache strategy may be determined dynamically before, during and after an event. The Server load may be reduced and the responsiveness of the user terminal may also be improved. The auto-switching cache strategy may also minimize potential user misunderstandings. Therefore, the user experience may be improved.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

requesting event-related data from the live streaming platform; and determining cache strategy according to timing of progress of an event; wherein the step of determining the cache strategy further includes determining the cache strategy according to the timing of the progress of the event being before starting time, after ending time or in progress. . A method for handling data in a live streaming platform, comprising:

2

claim 1 determining whether there is a cache corresponding to the data in response to the timing is not in progress; applying for the cache strategy of the cache only in response to there being an available cache corresponding to the data. . The method according to, further comprising:

3

claim 1 determining whether there is a cache corresponding to the data in response to the timing is not in progress; applying for the cache strategy of the cache then network in response to there being no available cache corresponding to the data. . The method according to, further comprising:

4

claim 1 determining whether a requesting of data is first load in response to the timing is in progress; and determining a quality of network connection in response to the requested data being first load; applying for the cache strategy of network first in response to the quality of the network connection being good. . The method according to, further comprising:

5

claim 1 determining whether a requesting of data is first load in response to the timing is in progress; and determining a quality of network connection in response to the requested data being first load; applying for the cache strategy of cache then network in response to the quality of the network connection being not good. . The method according to, further comprising:

6

claim 1 determining whether it is first load of the data in response to the timing is in progress; determining whether there is a refresh triggered from a user of a user terminal in response to the requested data being not first load; applying for the cache strategy of network first in response to the refresh triggered from the user of the user terminal. . The method according to, further comprising:

7

claim 1 determining whether there is an auto-refresh mechanism applied in response to the timing is in progress and the requested data being not first load; applying for the cache strategy of network first in response to an auto-refresh mechanism is applied. . The method according to, further comprising:

8

requesting event-related data from a live streaming platform; and determining cache strategy according to timing of progress of an event; determining whether there is a cache corresponding to the data in response to the timing is not in progress; and applying for the cache strategy of the cache only in response to there being an available cache corresponding to the data; or applying for the cache strategy of the cache then network in response to there being no available cache corresponding to the data. . A terminal comprising a circuitry, wherein the circuitry is configured to perform:

9

claim 8 . The terminal according to, wherein the step of determining the cache strategy further includes determining the cache strategy according to the timing of the progress of the event being before starting time, after ending time or in progress.

10

claim 8 determining whether it is first load of the data in response to the timing is in progress; determining whether there is a refresh triggered from a user of a user terminal in response to the requested data being not first load; applying for the cache strategy of network first in response to the refresh triggered from the user of the user terminal. . The terminal according to, further comprising:

11

claim 8 determining whether there is an auto-refresh mechanism applied in response to the timing is in progress and the requested data being not first load; applying for the cache strategy of network first in response to an auto-refresh mechanism is applied. . The terminal according to, further comprising:

12

requesting event-related data from the live streaming platform; and determining cache strategy according to timing of progress of an event; determining whether a requesting of data is first load in response to the timing is in progress; determining a quality of network connection in response to the requested data being first load; and applying for the cache strategy of network first in response to the quality of the network connection being good; or applying for the cache strategy of cache then network in response to the quality of the network connection being not good. . A method for handling data in a live streaming platform, comprising:

13

claim 12 . The method according to, wherein the step of determining the cache strategy further includes determining the cache strategy according to the timing of the progress of the event being before starting time, after ending time or in progress.

14

claim 12 determining whether it is first load of the data in response to the timing is in progress; determining whether there is a refresh triggered from a user of a user terminal in response to the requested data being not first load; applying for the cache strategy of network first in response to the refresh triggered from the user of the user terminal. . The method according to, further comprising:

15

claim 12 determining whether there is an auto-refresh mechanism applied in response to the timing is in progress and the requested data being not first load; applying for the cache strategy of network first in response to an auto-refresh mechanism is applied. . The method according to, further comprising:

Detailed Description

Complete technical specification and implementation details from the patent document.

This application is based on and claims the benefit of priority from Japanese Patent Application Serial No. 2023-202236 (filed on Nov. 29, 2023), the contents of which are hereby incorporated by reference in their entirety.

This disclosure relates to information and communication technology, and in particular, to a terminal, method and computer program in a live streaming.

Some APPs or platforms provide live streaming service for livestreamers and viewers to interact with each other. The livestreamers may have a performance to cheer up the viewer and the viewer may donate or send gifts to support the livestreamers. Moreover, they also hold a variety of campaigns or events to attract more livestreamers and viewers to join the live streaming.

Since the interaction between livestreamers and viewers is real-time, the calculation and update of the data such as leaderboards is required to be fast and accurate. Patent Document 1 disclosed a method for displaying the leaderboard cache to release the server load and improve the information timeliness.

[Patent Document 1]: CN107249140B However, the display of the data varies depending on the network condition of the user terminal. Moreover, if a blank screen is displayed while requesting the data, it may cause the user dissatisfaction, which may lead to poor user experience. Therefore, how to handle data from the network or cache is a very important issue.

An embodiment of subject application relates to a terminal for handling data in a live streaming platform, comprising one or a plurality of processors, wherein the one or plurality of processors execute a machine-readable instruction to perform: requesting event-related data from the live streaming platform; and determining cache strategy according to timing of the progress of the event.

Another embodiment of subject application relates to a method for handling data in a live streaming platform, comprising: requesting event-related data from the live streaming platform; and determining cache strategy according to timing of the progress of the event.

Another embodiment of subject application relates to a computer program for handling data in a live streaming platform and for causing a terminal to realize the functions of: requesting event-related data from the live streaming platform; and determining cache strategy according to timing of the progress of the event.

According to the above embodiments, the cache strategy may be determined dynamically before, during and after an event. The Server load may be reduced and the responsiveness of the user terminal may also be improved. The auto-switching cache strategy may also minimize potential user misunderstandings. Therefore, the user experience may be improved.

Hereinafter, the identical or similar components, members, procedures or signals shown in each drawing are referred to with like numerals in all the drawings, and thereby an overlapping description is appropriately omitted. Additionally, a portion of a member which is not important in the explanation of each drawing is omitted.

1 The live streaming systemaccording to some embodiments of subject application provides enhancement among the users to communicate and interact smoothly. More specifically, it entertains the viewers and livestreamers in a technical way.

1 FIG. 1 FIG. 1 1 1 2 1 10 20 30 30 30 20 30 10 20 30 10 20 30 a b shows a schematic configuration of a live streaming systemaccording to some embodiments of subject application. The live streaming systemprovides a live streaming service for the streaming livestreamer (may also be referred as liver, streamer or distributor) LV and viewer (may also be referred as audience) AU (AU, AU. . . ) to interact mutually in real time. As shown in, the live streaming systemmay include a server, a user terminaland a user terminal(,. . . ). The user terminalmay be a livestreamer and the user terminalmay be a viewer. In some embodiments, the livestreamers and viewers may be referred to as the user. The servermay include one or a plurality of information processing devices connected via network NW. The user terminalandmay be, for example, a portable terminal such as the smartphone, tablet, laptop PC, recorder, mobile game console, wearable device or the like, or the stationary computer such as desktop PC. The server, user terminaland user terminalmay be communicably connected by any type of wire or wireless network NW.

1 10 20 10 The live streaming systemis involved in the livestreamer LV, the viewer AU, and APP provider (not shown), who provides the server. The livestreamer LV may record his/her own contents such as songs, talks, performance, game streaming or the like by his/her own user terminaland upload to the serverand be the one who distributes contents in real time. In some embodiments, the livestreamer LV may interact with the viewer AU via the live streaming.

10 30 30 The APP provider may provide a platform for the contents to go on live streaming in the server. In some embodiments, the APP provider may be the media or manager to manage the real time communication between the livestreamer LV and viewer AU. The viewer AU may access the platform by the user terminalto select and watch the contents he/she would like to watch. The viewer AU may perform operations to interact with the livestreamer, such as commenting or cheering the livestreamer, by the user terminal. The livestreamer, who provides the contents, may respond to the comment or cheer. The response of the livestreamer may be transmitted to the viewer AU by video and/or audio or the like. Therefore, a mutual communication among the livestreamer and viewer may be accomplished.

20 30 10 10 The “live streaming” in this specification may be referred to as the data transmission which enables the contents the livestreamer LV recorded by the user terminalto be substantially reproduced and watched by the viewer AU via the user terminal, In some embodiments, the “live streaming” may also refer to the streaming which is accomplished by the above data transmission. The live streaming may be accomplished by the well-known live streaming technology such as HTTP Live Streaming, Common Media Application Format. Web Real-Time Communications, Real-Time Messaging Protocol, MPEG DASH or the like. The live streaming may further include the embodiment that the viewer AU may reproduce or watch the contents with specific delay while the livestreamer is recording the contents. Regarding the magnitude of the delay, it should be at least small enough to enable the livestreamer LV and the viewer AU to communicate. However, live streaming is different from so-called on-demand streaming. More specifically, the on-demand streaming may be referred to as storing all data, which records the contents, in the serverand then providing the data from the serverto the user at random timing according to the user's request.

20 30 20 30 20 30 20 30 20 30 10 20 10 30 The “streaming data” in this specification may be referred to as the data includes image data or voice data. More specifically, the image data (may be referred to as video data) may be generated by the image pickup feature of the user terminaland. The voice data (may be referred to as audio data) may be generated by the audio input feature of the user terminaland. The streaming data may be reproduced by the user terminal, so that the contents relating to users may be available for watching. In some embodiments, during the period from the streaming data being generated by the user terminalof the livestreamer to being reproduced by the user terminalof the viewer, the processing of changing format, size or specification of the data, such as compression, extension, encoding, decoding, transcoding or the like, is predictable. Before and after this kind of processing, the contents (such as video and audio) are substantially unchanged, so it is described in the current embodiments of the present disclosure that the streaming data before being processed is the same as that after being processed. In other words, if the streaming data is generated by the user terminalof the livestreamer and reproduced by the user terminalof the viewer via the server, the streaming data generated by the user terminalof the livestreamer, the streaming data passed through the serverand the streaming data received and reproduced by the by the user terminalof the viewer are all the same streaming data.

1 FIG. 20 10 20 20 As shown in, the livestreamer LV is providing the live streaming. The user terminalof the livestreamer generates the streaming data by recording his/her video and/or audio, and transmits to the servervia the network NW. At the same time, the user terminalmay display the video VD on the display of the user terminalto check the streaming contents of the livestreamer LV.

1 2 30 30 1 2 1 2 30 30 20 30 30 a b a b a b The viewer AU, AUof the user terminal,, who request the platform to provide the live streaming of the livestreamer, may receive streaming data corresponding to the live streaming via the network NW and reproduce the received streaming data to display the video VD, VDon the display and output the audio from a speaker or the like. The video VD, VDdisplayed on the user terminal,respectively may be substantially the same as the video VD recorded by the user terminalof the livestreamer LV, and the audio outputted from the user terminal,may also be substantially the same as the audio recorded by the user terminal of the livestreamer LV.

20 30 30 1 2 1 30 10 20 30 30 1 2 30 30 1 2 1 a b a a b a b The recording at the user terminalof the livestreamer may be simultaneous with the reproducing of the streaming data at the user terminal,of the viewer AU, AU. If a viewer AUinputs a comment on the contents of the livestreamer LV into the user terminal, the serverwill display the comment on the user terminalof the livestreamer in real time, and also display on the user terminal,of the viewer AU, AUrespectively. If the livestreamer LV responds to the comment, the response may be outputted as the text, image, video or audio from the terminal,of the viewer AU, AU, so that the communication of the livestreamer LV and viewer LV may be realized. Therefore, the live streaming systemmay realize the live streaming of two-way communication.

2 FIG. 1 FIG. 20 30 20 is a block diagram showing a function and configuration of the user terminalinaccording to the embodiment of the present disclosure. The user terminalhas the similar function and configuration of the user terminal. The blocks depicted in the block diagram of this specification are implemented in hardware such as devices like a CPU of a computer or mechanical components, and in software such as a computer program depicts functional blocks implemented by the cooperation of these elements. Therefore, it will be understood by those skilled in the art that the functional blocks may be implemented in a variety of manners by a combination of hardware and software.

20 30 20 30 20 30 20 30 10 20 30 20 30 20 30 10 20 30 The livestreamer LV and viewer AU may download and install the live streaming application (live streaming APP) of the present disclosure to the user terminalandfrom the download site via network NW. Or the live streaming APP may be pre-installed in the user terminaland. By the execution of the live streaming by the user terminaland, the user terminalsandmay communicate with the servervia the network NW to realize a plurality of functions. The functions realized by the execution of the live streaming APP by the user terminaland(More specifically, the processor such as CPU) is described below as the functions of the user terminaland. These functions are basically the functions that the live streaming APP makes the user terminalsandrealize. In some embodiments, these functions may also be realized by transmitting from the serverto the web browser of the user terminalandvia network NW and be executed by the computer program of the web browser. The computer program may be written in the programming language such as HTML (Hyper Text Markup Language) or the like.

20 100 200 100 10 200 10 100 200 20 100 20 30 200 30 The user terminalincludes streaming unitand viewing unit. In some embodiments, the streaming unitis configured to record the audio and/or video data of the user and generate streaming data to transmit to the server. The viewing unitis configured to receive and reproduce streaming data from the server. In some embodiments, a user may activate the streaming unitwhen broadcasting or activate the viewing unitwhen watching streaming respectively. In some embodiments, the user terminalwho is activating the streaming unitmay be referred to as a livestreamer or be referred to as the user terminalwhich generates the streaming data. The user terminalwho is activating the viewing unitmay be referred to as an viewer or be referred to as the user terminalwhich reproduces the streaming data.

100 102 104 106 108 102 102 104 104 The streaming unitmay include video control unit, audio control unit, distribution unitand UI control unit. The video control unitmay be connected to a camera (not shown) and the video is controlled by the camera. The video control unitmay obtain the video data from the camera. The audio control unitmay be connected to a microphone (not shown) and the audio is controlled by the microphone. The audio control unitmay obtain the audio data from the microphone.

106 102 104 10 106 102 104 106 The distribution unitreceives streaming data, which includes video data from the video control unitand audio data from the audio control unit, and transmits to the servervia network NW. In some embodiments, the distribution unittransmits the streaming data in real-time. In other words, the generation of the streaming data from the video control unitand audio control unit, and the distribution of the distribution unitis performed simultaneously.

108 108 106 108 UI control unitcontrols the UI for the livestreamer. The UI control unitis connected to a display (not shown) and is configured to generate the streaming data to whom the distribution unittransmits, reproduces and displays the streaming data on the display. The UI control unitshows the object for operating or the object for instruction-receiving on the display and is configured to receive the tap input from the livestreamer.

200 202 204 206 208 210 250 252 254 200 10 The viewing unitmay include UI control unit, rendering unit, input transmit unit, cache unit, queue unit, cache DB, data queue DBand cache strategy look-up table. The viewing unitis configured to receive streaming data from the servervia network NW.

202 202 202 The UI control unitcontrols the UI for the viewer. The UI control unitis connected to a display (not shown) and/or speaker (not shown) and is configured to display the video on the display and output the audio from the speaker by reproducing the streaming data. In some embodiments, Outputting the video on the display and audio from the speaker may be referred to as “reproducing the streaming data”. The UI control unitmay be connected to an input unit such as touch panel, keyboard or display or the like to obtain input from the users.

204 10 10 206 202 10 The rendering unitmay be configured to render the streaming data from the serverand the frame image. The frame image may include user interface objects for receiving input from the user, the comments inputted by the viewers and the data received from the server. The input transmit unitis configured to receive the user input from the UI control unitand transmit to the servervia the network NW.

20 206 10 20 In some embodiments, the user input may be clicking an object on the screen of the user terminalsuch as selecting a live stream, entering a comment, sending a gift, following or unfollowing an user, voting in an event, gaming or the like. For example, the input transmit unitmay generate gift information and transmit to the servervia the internet NW if the user terminalof the viewer clicks a gift object on the screen in order to send a gift to the livestreamer.

208 208 10 250 208 250 20 208 20 208 10 208 The cache unitmay be configured to handle the cache data. For example, the cache unitmay store the network data from the serveras cache data at the cache DB. The cache unitmay also retrieve the cache data from the cache DBfor displaying on the user terminalof the user. In some embodiments, the cache unitmay display the available cache data first once the user requests data by the user terminal. In some embodiments, the cache unitmay display the cache data if the network data from the serveris not available. In some embodiments, the cache unitmay also update, delete, modify the cache data or the like.

210 10 210 252 10 210 252 The queue unitmay be configured to handle the downloading of network data from the server. In some embodiments, the queue unitmay control the queue of downloading data at the data queue DB. More specifically, once the user requests data from the server, the queue unitmay store a data queue of the downloading data at the data queue DBto control the downloading of the data.

20 10 The user may use the user terminalto request data from the server. For example, if the terminal is a smartphone, the user may request live streaming data via APP or the like. If the terminal is a desktop PC, the user may request live streaming data via browser or the like. In some embodiments, the user may request a plurality of data from the live streaming platform. For example, the live streaming data in a streaming room or leaderboard data in an event may be requested. In some embodiments, the requested data may also be any possible data from the live streaming service.

210 10 Once the user accesses a page such as the leaderboard page, the queue unitmay start to request data from the server. The leaderboard may include a plurality of data such as description, rule and leaderboard of the event. The leaderboard may further include the ranking of the user and the current score they received or the like. In some embodiments, the current score may include a sub-page showing the composition of the score, bonuses obtained from the previous round or the like.

212 10 212 The processing unitmay be configured to determine cache strategy of the requested data from the server. Here, the cache strategy may refer to the setting of rules on determining how data is retrieved, stored, updated or the like. The cache strategy may include, for example, cache only, cache then network, network first, network only or the like. The processing unitmay determine cache strategy of the requested data flexibly according to a variety of factors.

Here, the cache strategy of “cache only” may refer to the requested data being fetched from the cache only and no network to fall back to. The cache only strategy ensures that responses are obtained from a cache. This cache only strategy is used on data that, for example, would never change once it is cached the first time. For example, the leaderboard data in an event could never change before the beginning or after the end of the event, so it may be cached once and served solely from the cache.

Here, the cache strategy of “network only” may refer to the requested data being fetched from the network only and not any cache to fall back to. This network only strategy is used if the requests need to be fulfilled from the network. Unlike the Cache Only strategy, this strategy is used on data that changes frequently. For example, the leaderboard data in an event changes frequently right before the end of the event, so the network only may be applied to display the latest data to the users.

Here, the cache strategy of “network first”, or “network falling back to cache”, may refer to the requested data being fetched from the latest response via the network. In the network first strategy, it would try to fetch the latest response from the network by default. If the request is successful, the requested data would also be put in the cache. If the network fails to return a response, the cached response would be used. This network first strategy is the ideal solution for the data that are updating frequently. For example, the leaderboard data in the event could change frequently during the event, so it may be requested via the network first strategy.

10 Here, the cache strategy of “cache then network” may refer to the requested data being fetched from a local cache first, and then request the data from the network if the cache is not available. More specifically, the user terminal may retrieve the data from the local cache if the data is already stored in the local cache and is still valid (i.e., not expired). If the data is not in the local cache or has expired, the user terminal may initiate a network request to fetch the latest data from the serveror the like.

20 10 The advantage of the “cache then network” strategy is that it may significantly reduce the wait time for users while waiting for the network request to complete, as it first attempts to use local cache. For example, the leaderboard data does not change frequently in the beginning of the event, so it may be requested via the local cache first and then via network if necessary. According to the embodiments, it may improve the responsiveness of the user terminaland reduce the load on the server. Therefore, it helps enhance application performance and user experience.

3 FIG. 10 10 302 304 306 320 322 324 is a schematic block diagram of the serveraccording to some embodiments of the subject application. The servermay include streaming info unit, relay unit, processing unit, stream DB, user DBand data DB.

302 20 302 320 The streaming info unitreceives the request of live streaming from the user terminalof the livestreamer via the network NW. Once receiving the request, the streaming info unitregisters the information of the live streaming on the stream DB. In some embodiments, the information of the live streaming may be the stream ID of the live streaming and/or the livestreamer ID of the livestreamer corresponding to the live streaming.

200 30 302 320 302 30 202 30 30 Once receiving the request of providing the information of the live streaming from the viewing unitof the user terminalfrom the viewer via the network NW, the streaming info unitrefers to the stream DBand generates a list of the available live streaming. The streaming info unitthen transmits the list to the user terminalvia the network NW. The UI control unitof the user terminalgenerates a live streaming selection screen according to the list and displays the list on the display of the user terminal.

206 30 10 302 30 302 320 30 Once the input transmit unitof the user terminalreceives the selection of the live streaming from the viewer on the live streaming selection screen, it generates the streaming request including the stream ID of the selected live streaming and transmits to the servervia the network. The streaming info unitmay start to provide the live streaming, which is specified by the stream ID in the streaming request, to the user terminal. The streaming info unitmay update the stream DBto add the viewer's viewer ID of the user terminalto the livestreamer ID of the stream ID.

304 20 30 302 304 206 30 304 100 20 The relay unitmay relay the transmission of the live streaming from the user terminalof the livestreamer to the user terminalof the viewer in the live streaming started by the streaming info unit. The relay unitmay receive the signal, which indicates the user input from the viewer, from the input transmit unitwhile the streaming data is reproducing. The signal indicating the user input may be the object-designated signal which indicates the designation of the object shown on the display of the user terminal. The object-designated signal may include the viewer ID of the viewer, the livestreamer ID of the livestreamer, who delivers the live streaming the viewer is viewing, and object ID specified by the object. If the object is a gift or the like, the object ID may be the gift ID or the like. Similarly, the relay unitmay receive the signal indicating the user input of the livestreamer, for example the object-designated signal, from the streaming unitof the user terminalwhile the streaming data is reproducing.

306 20 30 304 306 324 306 304 20 30 The processing unitis configured to process requests in response to operations from a user terminalorof a user. For example, the user may click on the event list button to make a request on the event list. Once the relay unitreceives the request, the processing unitmay refer to the data DBand retrieve the event list, and the processing unitand the relay unitmay further transmit the event list to the user terminalorof the user.

4 FIG. 3 FIG. 320 320 320 1 shows an exemplary data structure of the stream DBof. The stream DBholds information regarding a live stream currently taking place. The stream DBstores a stream ID for identifying a live-stream on a live distribution platform provided by the live-streaming system, a livestreamer ID for identifying the livestreamer who provides the live-stream, and a viewer ID for identifying a viewer of the live-stream, in association with each other.

5 FIG. 3 FIG. 322 322 322 shows an exemplary data structure of the user DBof. The user DBholds information regarding users. The user DBstores a user ID for identifying a user, points for identifying the points the user accumulates, level for identifying the level of the user and status for identifying the status of the user in association with each other. The point is the electronic value circulated within the live-streaming platform. The level may be an indicator of the amount of user activity or engagement on the live streaming platform. The status may be an identity or membership status of the user on the live streaming platform.

6 FIG. 3 FIG. 324 324 10 324 1 324 shows an exemplary data structure of the data DBof. The data DBholds data information regarding a live stream in the live distribution platform. In some embodiments, the data in the servermay be any possible data in a live streaming platform. Here, the leaderboard data in an event is taken as an example for explanation. The data DBstores a data ID for identifying the data on a live distribution platform provided by the live-streaming system, and leaderboard ID for identifying a leaderboard of the data, in association with each other. The data DBalso stores user ID, rank and score for identifying the users in a leaderboard, their corresponding rank and score, in association with each other.

210 10 10 210 210 210 210 10 In some embodiments, the queue unitmay download the data from the servereither all at once or in batches. For example, if the serverhas 3.000 data entries, the queue unitmay batch download in increments of 100 entries at a time. In some embodiments, the queue unitmay determine order of the data downloading. The queue unitmay request the leaderboard data once getting access to the leaderboard page. For example, the queue unitmay download the data of topusers in the leaderboard, so the information of the leaderboard may be displayed on the viewer's terminal.

7 FIG. 2 FIG. 250 250 10 250 10 250 shows an exemplary data structure of the cache DBof. The cache DBholds a cache data of the data from the server. The cache DBstores a cache ID and data ID for identifying a cache data and the corresponding data from the server, time tag for identifying the time information of the cache data, the URL for identifying the location of the cache data, in association with each other. In some embodiments, the cache DBmay also include other detailed information of each data entry.

8 FIG. 2 FIG. 252 252 252 10 252 10 10 shows an exemplary data structure of the data queue DBof. The data queue DBholds information regarding the queue of data downloaded by the user terminal of the user. The data queue DBstores a queue ID, progress and response for identifying a queue of the downloading, its progress and response from the server, in association with each other. The data queue DBalso stores retry count for identifying number of times to request the corresponding data, last response time for identifying the time it takes for the serverto respond to a request from the user terminal of the user at the last time, in association with each other. In some embodiments, the response time may be measured according to the elapsed time between when a request is made and when the serversends a response back to the user terminal of the user.

In some embodiments, the progress may be the ratio of current data entry and total data entry to indicate the current progress of the download. In some embodiments, the progress may also include progress of each entry of data or each batch of data such as the progress of 1st-100th, 101st-200th entries of data or the like. In some embodiments, the last response time may be stored once a request is successful. In some embodiments, the last response time may also be stored once the request is failed for reference. In some embodiments, for the response of “Fail” due to “no response”, the threshold for determining “no response” may also be used as the last response time or the like.

In some embodiments, the response may be “Success” or “Fail”. The response of “Success” may refer to the requested data being successfully retrieved, processed and returned to the user terminal without errors or issues. On the other hand, the response of “Fail” may refer to the requested data being not successfully retrieved, processed and returned to the user terminal due to errors or issues. In some embodiments, the reason or error code of the response “Fail” may also be included in the response.

10 The reason for the response of “Fail” may be due to server unavailability, server load, network issue or the like. For example, if the serverfails to provide any response within a reasonable or expected time frame, the response may be “Failed” and the reason may be “no response” or the like. In some embodiments, the reasonable or expected time frame for responding to the request may be at most three seconds, five seconds or determined flexibly according to the practical need. In some embodiments, the response may show “Waiting” to indicate that the request is in the processing stage and waiting for response or the like.

9 FIG. 11 FIG. 600 20 30 -are exemplary screen images of a live-streaming room screenshown on the display of the livestreamer user terminalor the viewer user terminal.

9 FIG. 9 FIG. 334 334 334 336 338 340 342 334 344 1 2 shows an exemplary event page. The viewer or livestreamer may click a button on the screen to request the event list. Once an event is selected, the corresponding event pagemay be shown on the user terminal. As shown in, the event pagemay include the title, banner, descriptionand ranking. In some embodiments, the event pagemay include tabto indicate the current stage of the event such as round, round, final or the like.

342 346 342 346 342 10 FIG. 11 FIG. The user may click on the rankingto check the current or historical leaderboard of the event.andshows an exemplary leaderboard pageof the ranking. In some embodiments, the leaderboard pagemay display the rankingof the users and their corresponding score S. In some embodiments, detailed information DI of the score S may also be displayed below each user to indicate the information of the score in detail. For example, the detailed information DI may include score bonuses, score combination, or other relevant information.

346 346 10 10 346 250 10 In some embodiments, the livestreamers and viewers may access the leaderboard pageto check the current leaderboard. Once a plurality of users accesses the leaderboard pageto request data from the server, the server's load becomes very high. If the user could not receive data from the server, the leaderboard pagemay be blank and lead to bad user experience. Therefore, the user terminal may first check if the requested data is available in the cache DB. The terminal may further request network data from serverno matter whether cache data is displayed or not.

346 For some events, the competition is extremely intense. Especially for the last moment before the end of the event, it is always considered the most thrilling moment in an event. The viewers always gather with the livestreamer to support the livestreamer for the event. The viewers donate event gifts to the livestreamer and wait until the end of the event in order to let their favorite livestreamer win or achieve reward threshold in an event. Therefore, the information in the leaderboard pagemay be very important and need to be retrieved and refreshed dynamically in real-time.

346 20 30 10 346 10 FIG. 11 FIG. In some embodiments, a cache data of the leaderboard pagemay be displayed on the user terminaloras shown in. In some embodiments, the network data from the servermay be displayed and refreshed in real-time as shown in. According to the embodiments, the users may track the current rankings on the leaderboard pageand help their favorite livestreamers achieve victory. The way for displaying cache data, displaying network data and refreshing the data would be described later.

212 In some embodiments, the processing unitmay be configured to determine cache strategy on the requested data. In some embodiments, the cache strategy may be determined according to a predetermined look-up table. In some embodiments, the cache strategy may be determined according to a variety of parameters. In some embodiments, the cache strategy may be determined by machine learning model or the like. In some embodiments, the cache strategy may be determined flexibly according to the practical need.

In some embodiments, the requested data may be any possible data in the live streaming platform. In some embodiments, the cache strategy may be applied to the data having starting time, ending time, in progress, or the like. In some embodiments, the requested data may also be, for example, the gift data or the like. In some embodiments, the requested data may also be other data similar to the event data, which also having starting time, ending time, in progress or the like. In some embodiments, the requested data may be determined flexibly according to the practical need.

12 FIG. 20 30 10 20 30 334 346 20 30 10 is a flowchart showing steps of an application activation process on the user terminalsand. The users may request data from the servervia user terminalsand. For example, the livestreamer or viewers may open the event pageor leaderboard pageto check the event description or leaderboard, and the user terminalormay collect a list of requests for requesting data from the server.

212 502 212 504 212 506 Once the data is requested, the processing unitmay get the cache strategy on the requested data (S). The cache strategy may be determined flexibly. Once the cache strategy is determined, the processing unitmay apply for the cache strategy on the requested data. For example, if the cache strategy is network first strategy (True in S), the processing unitmay handle the data via the network first strategy (S).

508 212 510 512 212 514 504 508 512 212 516 In some embodiments, if the cache strategy is cache then network strategy (True in S), the processing unitmay handle the data via the cache then network strategy (S). In some embodiments, if the cache strategy is cache only strategy (True in S), the processing unitmay handle the data via the cache only strategy (S). In some embodiments, if the cache strategy is neither one of the above (False in S, Sand S), the processing unitmay handle the data via the network only strategy or the like (S).

12 FIG. 212 In some embodiments, the cache strategy may be determined in order such as the order of network first, cache then network, cache only and network only as shown in. In some embodiments, the cache strategy may also be determined simultaneously. In some embodiments, once a cache strategy is determined, the processing unitmay directly apply for the cache strategy to request data. In some embodiments, the method for determining the cache strategy may be realized flexibly according to the practical need.

502 254 212 254 602 604 13 FIG. 14 FIG. 2 FIG. 13 FIG. In some embodiments, the step Sof getting the cache strategy may be realized via predetermined rules such as a look-up table or the like.is a flowchart showing steps of determining cache strategy andshows an exemplary data structure of cache strategy look-up tableof. As shown in, once the data is requested, the processing unitmay refer to the cache strategy look-up table(S) and get the cache strategy (S).

254 254 254 14 FIG. The cache strategy look-up tablemay be configured to store the relationship between the requested data, such as the API, and the cache strategy or the like. As shown inas an example, the cache strategy look-up tablemay include API ID and its corresponding cache strategy. The cache strategy look-up tablestores an API ID for identifying the data to be requested, and a cache strategy for identifying the cache strategy on the requested data, in association with each other.

212 254 254 In some embodiments, an API may be corresponding to a specific portion of data. In some embodiments, all the data may also be requested via the same API or different API, and it depends on the parameters in the API. The processing unitmay refer to the cache strategy look-up tableto determine the cache strategy according to the API ID or the like. In some embodiments, the cache strategy look-up tablemay also include other parameters such as timing of the requested data or the like.

254 In some embodiments, the cache strategy of receiving data such as leaderboard data may refer to a whitelist such as the cache strategy look-up table. The cache strategy is always hard-coded in the whitelist or in the code. In some embodiments, the cache then network may be applied as a default cache strategy, which means that the cache may be displayed at first. In some embodiments, if the user triggered a refresh manually, it may indicate that the user would like to see the latest leaderboard data. However, using the cache-then-network strategy by default may result in briefly displaying outdated data, which may lead to user misunderstanding or the like.

502 212 In some embodiments, the step Sof getting the cache strategy may be determined dynamically. The processing unitmay determine the cache strategy according to a variety of parameters. The parameters may be, for example, the timing of the event, the existence of cache, the cache history, network connection, user operation, auto-refreshing or the like. According to the auto-switching cache strategy, it may minimize potential user misunderstandings when viewing leaderboard data or the like.

15 FIG. 15 FIG. 15 FIG. 15 FIG. 1 2 3 2 is an exemplary functional configuration of the events in a live streaming platform. As shown in, there may be a plurality of events taking place at the same time in a live streaming platform. The events may be related to different topics such as singing, newbies, Xmas or the like. Each event may have a starting time and ending time as the events E, Eand Eshown in. In some embodiments, the event may be divided into several rounds and each round also has its starting time and ending time like event Eshown in.

20 30 In some embodiments, the users may request data related to the event via the user terminalor. For example, the livestreamers and viewers may request the leaderboard data to check the historical ranking, current ranking or the like. Moreover, the livestreamers and viewers may also request the event data to check the descriptions and rules of the event. In some embodiments, the cache strategy may be determined flexibly according to the above parameters or the like.

502 20 30 212 522 530 532 522 212 524 16 FIG. 16 FIG. In some embodiments, the step Sof getting the cache strategy may also be realized dynamically.is a flowchart showing steps of an application activation process on the user terminalsand. As shown in, the processing unitmay check the timing of events (S, Sand S). If the event is not yet started, which is before the starting time of the event (S), the processing unitmay determine whether there is a cache corresponding to the requested data (S).

524 212 526 524 212 528 If there is a cache corresponding to the requested data (true in S), the processing unitmay apply for the cache strategy of cache only (S) as a response. If there is no cache corresponding to the requested data (false in S), the processing unitmay apply for the cache strategy of cache then network (S) as a response.

530 212 524 212 526 524 528 524 In some embodiments, if the event has already ended, which is after the ending time of the event (true in S), the processing unitmay also determine whether there is a cache corresponding to the requested data (S). The processing unitmay apply for the cache strategy of cache only (S) in response to there being a cache corresponding to the requested data (true in S), or apply for the cache strategy of cache then network (S) in response to there being no cache corresponding to the requested data (false in S).

522 530 532 212 534 In some embodiments, if the event is neither before start nor after end (false in Sand S), which is in the progress of the event (S), the cache strategy of the event being in progress may be applied. In some embodiments, the processing unitmay determine whether the requested data is first load or not (S).

10 210 20 30 In some embodiments, the status of “First load” may refer to the status of the request being disconnected at the beginning of the request. For example, if the serverhas 3,000 data entries, the queue unitmay batch download in increments of 100 entries at a time. If no data from the 1st-100th data is requested successfully, it may be referred to as the “First load”. It may refer to the situation where the user's user terminaloris experiencing errors or encountering problems while requesting the first portion of the data or the like.

534 212 212 20 30 In some embodiments, if the requested data is first load (true in S), the processing unitmay determine the quality of network connection. The quality of network connection may be determined by parameters such as the speed of the network connection or the like. The processing unitmay detect the speed of network connection in the user terminalor. The speed of network connection may be classified according to, for example, network status such as no connection, low 2G, 2G, 3G, 4G, 5G or above.

In some embodiments, the network status of 3G or below may be referred to as not good in connection. In some embodiments, the network status of 4G or above may be referred to as good in connection. In some embodiments, the definition of good or not good in connection may be determined flexibly according to the practical need.

536 212 528 536 212 538 In some embodiments, if the quality of network connection is not good (not good in S), the processing unitmay apply for the cache strategy of cache then network as a response (S). In some embodiments, if the quality of network connection is good (good in S), the processing unitmay apply for the cache strategy of the network first as a response (S).

In some embodiments, the quality of not good may also be referred to as bad in network connection. In some embodiments, the quality of good or not good may further be divided into different levels respectively. For example, the quality of not good may further be divided into bad and the worst, the quality of bad in network connection may correspond to the network status of 3G and 2G, and the quality of the worst in network connection may correspond to the network status of low 2G and no network connection.

In some embodiments, the cache strategy of cache then network may be applied if the quality of network connection is bad, and the cache strategy of cache only may be applied if the quality of network connection is the worst or the like. In some embodiments, the level of quality of network connection and the corresponding cache strategy may be determined flexibly according to the practical need.

534 212 20 30 540 20 30 If the requested data is not first load (false in S), the processing unitmay determine whether there is an user operation from the user of the user terminalor(S). In some embodiments, the user operation may be an operation triggered by the user or the like and the purpose of operation may be to refresh the data or the like. For example, the user may click a button or swipe down on the screen to refresh the leaderboard data on the screen of the user terminalor.

540 212 540 346 If a refresh is triggered (true in S), the processing unitmay apply for the cache strategy of the network first as a response. In some embodiments, if there is no refresh triggered (false in S), no cache strategy may be applied and the process of getting the cache strategy may be ended. For example, the user may just be idle on the leaderboard pagewithout doing anything or the like. According to the embodiments, the cache strategy of network first may be applied once the user triggers a refresh on the leaderboard data, and the user experience may be improved.

540 212 212 In some embodiments, an auto-refresh mechanism may also be applied. The auto-refresh mechanism may refer to the data being refreshed automatically, for example, for a specific period or the like. In some embodiments, if there is no refresh triggered (false in S), the processing unitmay further check if auto-refresh is on or not. In some embodiments, if the auto-refresh mechanism is on, the processing unitmay apply for the cache strategy of the network first as a response. In some embodiments, if the auto-refresh mechanism is off, no cache strategy may be applied and the process of getting the cache strategy may be ended.

212 The event may have different periods such as before the starting, in progress, after ending of the event. At different time points during the event, there will be varying levels of data request traffic. According to the above embodiments, the cache strategy may be determined automatically and dynamically. For example, the processing unitmay check if there is an available cache before the start or after the end of the event, and then determine the cache strategy accordingly.

212 212 Moreover, the cache strategy may also be determined according to the network connection. The processing unitmay also determine the cache strategy according to the quality of network connection while the event is in progress. The processing unitmay also determine the cache strategy according to the user operation such as manual refresh or the like. Therefore, the user experience may be improved.

20 30 According to the above embodiments, the cache strategy may be determined dynamically before, during and after an event. The server load may be reduced and the responsiveness of the user terminalormay also be improved. The auto-switching cache strategy may also minimize potential user misunderstandings. Therefore, the user experience may be improved.

17 FIG. 17 FIG. 900 10 20 30 is a schematic block diagram of computer hardware for carrying out a system configuration and processing according to some embodiments of subject application. The information processing deviceinis, for example, is configured to realize the serverand the user terminal,respectively according to some embodiments of subject application.

900 901 902 903 900 907 909 911 913 915 917 919 921 925 929 900 901 100 200 102 104 106 108 202 204 206 302 304 306 320 322 324 208 210 250 252 The information processing deviceincludes a CPU, read only memory (ROM), and random-access memory (RAM). In addition, the information processing devicemay include a host bus, a bridge, an external bus, an interface, an input unit, an output unit, a storage unit, a drive, a connection port, and a communication unit. The information processing devicemay include imaging devices (not shown) such as cameras or the like. The CPUis an example of hardware configuration to realize various functions performed by the components described herein. The functions described herein may be realized by circuitry programmed to realize such functions described herein. The circuitry programmed to realize such functions described herein includes a central processing unit (CPU), a digital signal processor (DSP), a general-use processor, a dedicated processor, an integrated circuit, application specific integrated circuits (ASICs) and/or combinations thereof. Various units described herein as being configured to realize specific functions, including but not limited to the streaming unit, the viewing unit, the video control unit, the audio control unit, the distribution unit, the UI control unit, the UI control unit, the rendering unit, the input transmit unit, the streaming info unit, the relay unit, the processing unit, the stream DB, the user DB, the data DB, the cache unit, the queue unit, the cache DB, the data queue DBand so on, may be embodied as circuitry programmed to realize such functions.

901 900 902 903 919 923 901 10 20 30 902 901 903 901 901 902 903 907 907 911 909 The CPUfunctions as an arithmetic processing device and a control device, and controls the overall operation or a part of the operation of the information processing deviceaccording to various programs recorded in the ROM, the RAM, the storage unit, or a removable recording medium. For example, the CPUcontrols overall operations of respective function units included in the serverand the user terminalandof the above-described embodiment. The ROMstores programs, operation parameters, and the like used by the CPU. The RAMtransiently stores programs used when the CPUis executed, and parameters that change as appropriate when executing such programs. The CPU, the ROM, and the RAMare connected with each other via the host busconfigured from an internal bus such as a CPU bus or the like. The host busis connected to the external bussuch as a Peripheral Component Interconnect/Interface (PCI) bus via the bridge.

915 915 915 915 927 900 915 901 900 915 The input unitis a device operated by a user such as a mouse, a keyboard, a touchscreen, a button, a switch, and a lever. The input unitmay be a device that converts physical quantity to electrical signal such as audio sensor (such as microphone or the like), acceleration sensor, tilt sensor, infrared radiation sensor, depth sensor, temperature sensor, humidity sensor or the like. The input unitmay be a remote-control device that uses, for example, infrared radiation and another type of radio waves. Alternatively, the input unitmay be an external connection devicesuch as a mobile phone that corresponds to an operation of the information processing device. The input unitincludes an input control circuit that generates input signals on the basis of information which is input by a user to output the generated input signals to the CPU. The user inputs various types of data and indicates a processing operation to the information processing deviceby operating the input unit.

917 917 917 900 The output unitincludes a device that can visually or audibly report acquired information to a user. The output unitmay be, for example, a display device such as an LCD, a PDP, and an OLED, an audio output device such as a speaker and a headphone, and a printer. The output unitoutputs a result obtained through a process performed by the information processing device, in the form of text or video such as an image, or sounds such as audio sounds.

919 900 919 919 901 The storage unitis a device for data storage that is an example of a storage unit of the information processing device. The storage unitincludes, for example, a magnetic storage device such as a hard disk drive (HDD), a semiconductor storage device, an optical storage device, or a magneto-optical storage device. The storage unitstores therein the programs and various data executed by the CPU, and various data acquired from an outside.

921 923 900 921 923 903 921 923 The driveis a reader/writer for the removable recording mediumsuch as a magnetic disk, an optical disc, a magneto-optical disk, and a semiconductor memory, and built in or externally attached to the information processing device. The drivereads out information recorded on the mounted removable recording medium, and outputs the information to the RAM. The drivewrites the record into the mounted removable recording medium.

925 900 925 925 927 925 900 927 The connection portis a port used to directly connect devices to the information processing device. The connection portmay be a Universal Serial Bus (USB) port, an IEEE1394 port, or a Small Computer System Interface (SCSI) port, for example. The connection portmay also be an RS-232C port, an optical audio terminal, a High-Definition Multimedia Interface (HDMI (registered trademark)) port, and so on. The connection of the external connection deviceto the connection portmakes it possible to exchange various kinds of data between the information processing deviceand the external connection device.

929 929 The communication unitis a communication interface including, for example, a communication device for connection to a communication network NW. The communication unitmay be, for example, a wired or wireless local area network (LAN), Bluetooth (registered trademark), or a communication card for a wireless USB (WUSB).

929 929 929 The communication unitmay also be, for example, a router for optical communication, a router for asymmetric digital subscriber line (ADSL), or a modem for various types of communication. For example, the communication unittransmits and receives signals on the Internet or transmits signals to and receives signals from another communication device by using a predetermined protocol such as TCP/IP. The communication network NW to which the communication unitconnects is a network established through wired or wireless connection. The communication network NW is, for example, the Internet, a home LAN, infrared communication, radio wave communication, or satellite communication.

The imaging device (not shown) is a device that images real space using an imaging device such as a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS), for example, and various members such as a lens for controlling image formation of a subject image on the imaging device and generates a captured image. The imaging device may capture a still picture or may capture a movie.

1 The present disclosure of the live streaming systemhas been described with reference to embodiments. The above-described embodiments have been described merely for illustrative purposes. Rather, it can be readily conceived by those skilled in the art that various modifications may be made in making various combinations of the above-described components or processes of the embodiments, which are also encompassed in the technical scope of the present disclosure.

The procedures described herein, particularly flowchart or those described with a flowchart, are susceptible of omission of part of the steps constituting the procedure, adding steps not explicitly included in the steps constituting the procedure, and/or reordering the steps. The procedure subjected to such omission, addition, or reordering is also included in the scope of the present disclosure unless diverged from the purport of the present disclosure.

10 10 20 30 20 30 20 30 10 30 10 20 In some embodiments, at least a part of the functions performed by the servermay be performed by other than the server, for example, being performed by the user terminalor. In some embodiments, at least a part of the functions performed by the user terminalormay be performed by other than the user terminalor, for example, being performed by the server. In some embodiments, the rendering of the frame image may be performed by the user terminalof the viewer, the server, the user terminalof the livestreamer or the like.

Furthermore, the system and method described in the above embodiments may be provided with a computer-readable non-transitory storage device such as a solid-state memory device, an optical disk storage device, or a magnetic disk storage device, or a computer program product or the like. Alternatively, the programs may be downloaded from a server via the Internet.

Although technical content and features of the present disclosure are described above, a person having common knowledge in the technical field of the present disclosure may still make many variations and modifications without disobeying the teaching and disclosure of the present disclosure. Therefore, the scope of the present disclosure is not limited to the embodiments that are already disclosed but includes another variation and modification that do not disobey the present disclosure, and is the scope covered by the following patent application scope.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

November 27, 2024

Publication Date

October 6, 2026

Inventors

Wei-Hsiang Hung
Po-Yi Kuo
Che-Wei Hu
Tsung-Tai Shih

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Terminal, method and computer program” (US-12756892-B2). https://patentable.app/patents/US-12756892-B2

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.