Server-Side Ad Insertion (SSAI) with Additional Metadata and Client Features

By using an origin server to obtain and deliver metadata related to active substream content to a media player, the method addresses the limitations of conventional SSAI solutions, enhancing analysis accuracy and customizability to prevent ad blocking and improve ad-supported video sustainability.

JP7692939B2Active Publication Date: 2025-06-16BRIGHTCOVE INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022572708
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-05-28
Filing Date
2021-05-28
Publication Date
2025-06-16
Estimated Expiration
2041-05-28

AI Technical Summary

Technical Problem

Conventional server-side ad insertion (SSAI) solutions face challenges in providing accurate analysis information and customizability, leading to lower profitability and sustainability of ad-supported videos due to ad blocking and intrusive ads.

Method used

The method involves an origin server obtaining metadata related to active substream content from a third-party provider and providing it to a media player, allowing for customized interactions during video playback. This includes inserting active substream content and metadata segments into the primary video stream, using metadata storage and metadata service to manage and deliver metadata to the media player.

Benefits of technology

This approach enhances the accuracy of analysis information and customizability of media player interactions, effectively preventing ad blocking and improving the profitability and sustainability of ad-supported videos.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007692939000001
    Figure 0007692939000001
  • Figure 0007692939000002
    Figure 0007692939000002
  • Figure 0007692939000003
    Figure 0007692939000003
Patent Text Reader

Abstract

A method for providing customized media player interaction based on metadata obtained from an origin server. In one step, the origin server obtains metadata associated with active substream content. The media player is provided with a playlist for playing a primary video stream. The playlist includes a request for metadata, the request being associated with inserting the active substream content in playing the primary video stream. The origin server receives the request for metadata from the media player. The origin server inserts the active substream content and a metadata segment into the primary video stream. The secondary video stream is obtained after inserting the active substream content. The origin server provides the metadata to the media player using a metadata storage and a metadata service. The media player uses the metadata to customize interaction during playback of the secondary video stream.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Relates to server-side ad insertion with additional metadata and client functionality. This application claims the benefit of U.S. Provisional Patent Application No. 63 / 031,446, filed May 28, 2020, which is hereby incorporated by reference in its entirety for all purposes.

Background Art

[0002] By embedding advertisements in video streams, advertisers can easily reach a large number of viewers. Such advertisements provide advertisers with a unique opportunity to secure a wide range of viewers. Advertised video streams are widespread, allowing consumers to watch video streams for free, at low cost, or at minimal cost.

[0003] The insertion of advertisements into videos has conventionally been performed using client-side ad insertion (CSAI) and server-side ad insertion (SSAI). CSAI generally refers to the media player communicating directly with the ad provider to download and play the advertisement while also providing relevant viewing analysis information. CSAI solutions generally allow developers to customize within the player and promote increased interactivity with other page elements. However, intrusive and distracting advertisements can be annoying to consumers, forcing them to use ad-blocking software to prevent the playback of such advertisements. Also, when ad blockers are used, the collection of analysis information from advertisements is hindered, causing a decrease in the profitability and sustainability of ad-supported videos.

[0004] On the one hand, SSAI uses a server for advertisement insertion and analysis information. Although using SSAI has an effect of preventing ad blocking, in conventional SSAI solutions, the accuracy of analysis information is considered to be lower than that of CSAI solutions and it is inferior in terms of customizability. Having elicitation page interactivity and customization that are reliable and difficult to be obstructed by conventional ad blockers is important for both advertisers and consumers.

Summary of the Invention

[0005] In one embodiment of the present disclosure, a method is provided for providing customized interactions of a media player based on metadata obtained from an origin server. In one step, the origin server obtains metadata related to active substream content. The media player is provided with a playlist for playing a primary video stream. The playlist includes a request for the metadata, and the request is associated with the insertion of the active substream content in the playback of the primary video stream. The origin server receives the request for the metadata from the media player. The origin server inserts the active substream content and the metadata segment into the primary video stream. A secondary video stream is obtained after the insertion of the active substream content. The origin server uses metadata storage and metadata service to provide the metadata to the media player. The media player uses the metadata to customize the interaction during the playback of the secondary video stream.

[0006] In one embodiment of the present disclosure, a method is provided for providing customized interactions of a media player based on metadata during video playback in the media player. In one step, metadata corresponding to active substream content for playback of a primary video stream is obtained and stored by an origin server from a third-party provider. The metadata is stored in a metadata storage. A playlist for playing the primary video stream is provided to the media player. The playlist includes a request for the metadata, and the request is associated with the insertion of the active substream content in the playback of the primary video stream. The request for the metadata is received by the origin server from the media player. The request is received during playback of the primary video stream in the media player. Uniform Resource Identifiers (URIs) are inserted into the playlist of the metadata by the origin server. To obtain a secondary video stream, the active substream content is inserted into the primary video stream by the origin server together with metadata segments. The metadata corresponding to the active substream content is provided to the media player by the origin server using a metadata service. The provision of the metadata by the origin server to the media player is based on the metadata service retrieving an Application Programming Interface (API) response from the metadata storage using the URI and retrieving timing information of the active substream content from the origin server. The metadata including the timing information and the API response is provided to the media player by the metadata service using the metadata segments.The functions associated with the active sub-stream content from the metadata are extracted by the media player. Based on the functions associated with the active sub-stream content, the interaction of the media player is customized during the playback of the secondary video stream.

[0007] In another embodiment of the present disclosure, a server is provided that is configured to provide metadata for customizing the interaction of a media player during the playback of a video in the media player. The server includes a communication interface, a memory, and a processor coupled to the communication interface and the memory. Metadata corresponding to the active sub-stream content for the playback of the primary video stream is obtained from a third-party provider. The metadata is stored in a metadata storage. A playlist for playing the primary video stream is provided to the media player. The playlist includes a request for the metadata. The request is associated with the insertion of the active sub-stream content in the playback of the primary video stream. The request for the metadata is received from the media player. The request is received during the playback of the primary video stream in the media player. A Uniform Resource Identifier (URI) is inserted into the playlist for the metadata. To obtain a secondary video stream, the active sub-stream content is inserted into the primary video stream together with the metadata segment. Timing information for the active sub-stream content is provided to the metadata service. The metadata corresponding to the active sub-stream content is provided to the media player using the metadata service. An Application Programming Interface (API) response is retrieved from the metadata storage by the metadata service using the URI. The metadata including the timing information and the API response is provided to the media player by the metadata service using the metadata segment. The media player extracts functions associated with the active sub-stream content from the metadata to customize the interaction of the media player during the playback of the secondary video stream.

[0008] In yet another embodiment of the present disclosure, there is provided a non-transitory computer-readable medium having instructions embedded therein for customizing media player interactions based on metadata during video playback. The instructions, when executed by one or more computers, cause the one or more computers to, obtain, by an origin server, metadata corresponding to active sub-stream content for playback of a primary video stream from a third-party provider and store the metadata in a metadata storage by the origin server; provide, to the media player, a playlist for playing the primary video stream, the playlist including a request for the metadata, the request being associated with insertion of the active sub-stream content in the playback of the primary video stream; receive, by the origin server, the request for the metadata from the media player, the request being received during playback of the primary video stream in the media player; insert, by the origin server, a uniform resource identifier (URI) into the playlist for the metadata; insert, by the origin server, the active sub-stream content into the primary video stream along with a metadata segment to obtain a secondary video stream; provide, by the origin server, the metadata corresponding to the active sub-stream content to the media player using a metadata service, the providing of the metadata to the media player by the origin server being by the metadata service, Retrieving an Application Programming Interface (API) response from the metadata storage using the URI, retrieving timing information of the active sub-stream content from the origin server, including, providing the metadata to the media player, wherein the metadata including the timing information and the API response is provided to the media player by the metadata service using the metadata segment, extracting, by the media player, a function associated with the active sub-stream content from the metadata, customizing, by the media player, an interaction of the media player during playback of the secondary video stream based on the function associated with the active sub-stream content, and causing the execution.

[0009] Further areas of applicability of the present disclosure will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating various embodiments of the disclosure, are intended for purposes of illustration only and are not necessarily intended to limit the scope of the disclosure.

Brief Description of the Drawings

[0010]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Best Mode for Carrying Out the Invention

[0011] The present disclosure is described in conjunction with the accompanying drawings. In the accompanying drawings, similar components and / or features may have the same reference labels. Further, even if they are of the same type, components may be distinguished, and in that case, a second alphabetical label for distinguishing similar components follows the reference label. When only the first reference label is used in this specification, the description is applicable to any one of the similar components having the same first reference label regardless of the second reference label.

[0012] The following description is only provided to give a preferred exemplary embodiment and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of the preferred exemplary embodiment provides an enabling description for those skilled in the art to implement the preferred exemplary embodiment. It is understood that various changes can be made to the functions and arrangements of the elements without departing from the spirit and scope described in the appended claims.

[0013] Referring initially to FIG. 1, a block diagram of a media service system 100 for inserting active substream content into video playback is shown. The media service system 100 includes an origin server 110, a third-party provider 120, a content delivery network (CDN) 130, a client device 140, a media player 145 of the client device 140, a content provider 150, a metadata storage 160, and a metadata service 170. The media service system 100 can deliver media content to the media player 145, which is executed by the client device 140 to provide media playback to the end user of the client device 140. The media player 145 can be, for example, a media player, a browser, or other application adapted to request and / or play media files. The media content may be provided via a network such as the Internet 180 and / or other data communication networks such as a television content delivery network. The client device 140 can be one of any number of devices configured to receive media via the Internet 180 and may include mobile phones, tablets, personal computers, portable media devices, televisions, set-top boxes, video game systems, and the like. Although only one media player 145 and one client device 140 are shown in FIG. 1, it can be understood that the media service system 100 may provide media to a number of media players 145 on a number of client devices 140. The active substream content can be, for example, an advertisement or non-advertisement media content.

[0014] In the case of on-demand content, the media files provided by the content provider 150 are stored on the CDN 130. The on-demand content is provided to the media player 145 by progressive download and / or streaming. For live content, which is real-time or near real-time depending on the processing time and / or other buffer times, a similar process can be performed.

[0015] One or more of the one or more third-party providers 120 (or one or more advertising providers) provide active sub-stream content that can include advertisements to the various media players 145 on the various client devices 140. By means of the one or more third-party providers 120, an enterprise can show advertisements to end-users who are viewing media content received from one or more content providers 150. The one or more third-party providers 120 maintain advertisements and / or advertisement data separate from the media content.

[0016] The origin server 110 may be a server-side advertisement insertion (SSAI) server that processes media content from the content provider 150 and active sub-stream content from the third-party provider 120. The origin server 110 inserts the active sub-stream content into the media content and provides metadata to the media player 145 for customization of the interaction of the media player 145 at content break intervals.

[0017] To provide metadata to media player 145, metadata storage 160 and metadata service 170 provide a means of communication between origin server 110 and media player 145. Metadata storage 160 is a repository for storing metadata responses from third-party provider 120. The metadata response is stored in metadata storage 160 by origin server 110 in preparation for processing and / or retrieval. The metadata response may be an application programming interface (API) response, an advertising API response, or a Video Ad Serving Template (VAST) response.

[0018] Metadata service 170 is used to retrieve metadata responses from metadata storage 160. Metadata service 170 serializes the metadata response from metadata storage 160 into metadata segments suitable for consumption by media player 145. Origin server 110 uses metadata service 170 and metadata storage 160 to provide metadata to media player 145. Metadata storage 160 stores the metadata and metadata service 170 supplies the metadata to media player 145.

[0019] Referring to FIG. 2, a flowchart of the media service system 100 is shown. The media service system 100 provides for the insertion of active sub-stream content into a video stream during the playback of the video stream. The origin server 110 receives a video stream from the content provider 150 for playback on the media player 145 of the client device 140. The origin server 110 also receives active sub-stream content from the third-party provider 120. The origin server 110 further obtains metadata associated with the active sub-stream content from the third-party provider 120. The third-party provider 120 further provides a metadata response including a VAST response to the origin server 110. The metadata response facilitates the interactivity of the media player 145 during the playback of the active sub-stream content at the content break intervals. The metadata response includes information for customizing the interaction of the media player 145. The origin server 110 stores the metadata response in the metadata storage 160. The origin server 110 provides timing information associated with the active sub-stream content to the metadata service 170.

[0020] The origin server 110 provides the video stream to the media player 145 for playback. A playlist or manifest file for playing back the video stream is provided to the media player 145. The playlist includes a request for metadata. This request is associated with the insertion of the active sub-stream content in the playback of the video stream. The origin server 110 communicates with the client device 140 via the CDN 130-1. The CDN 130-1 provides the integration of the origin server 110 and the media player 145.

[0021] The origin server 110 receives a metadata request from the media player 145. This request is received during the playback of the video stream in the media player 145.

[0022] The metadata service 170 interacts with the CDN 130-2 to communicate with the media player 145. The CDN 130-2 provides increased scalability and global distribution with minimal latency. The provision of such functions allows the metadata service 170 to provide failover metadata segments even when the service stops due to lack of support from the origin server 110 because the CDN 130-2 is provided separately. The CDN 130-2 includes general-purpose segments such as segments in HTTP Live Streaming (HLS) consisting of an empty Transport Stream (TS) header without packetized elementary stream (PES) data. For example, at the time of failover of the metadata service 170, a blank segment consisting of an empty header and containing no data is provided to the media player 145, thereby providing a metadata segment. In another embodiment, other protocols such as Dynamic Adaptive Streaming over HTTP (DASH) or the SCTE-35 format can be used for the various interactions required for the media player 145 to receive metadata.

[0023] The origin server 110 inserts active substream content into the video stream. The origin server 110 uses the metadata storage 160 and the metadata service 170 to provide metadata to the media player 145 in response to requests. The media player 145 communicates with the metadata service 170 using metadata segments to obtain metadata. The metadata service 170 extracts a metadata response from the metadata storage 160. The metadata service 170 provides the metadata response and timing information within the metadata segment to the media player 145 via the CDN 130-2.

[0024] The media player 145 receives metadata from the metadata segment provided by the metadata service 170. The media player 145 uses a client software development kit (SDK) to extract functions associated with the active substream content from the metadata. The client SDK may be a plugin. The functions to be extracted include the interactivity of the media player 145. For example, disabling video cassette recorder (VCR)-type controls for fast-forwarding or skipping the active substream content, disabling volume control at substream separation intervals, and / or enabling a click-through function. The media player 145 customizes the interaction of the media player 145 during the playback of the video stream with the active substream content based on the extracted functions.

[0025] Next, referring to FIG. 3, a playback timeline of video stream 300 into which active sub-stream content 320 is inserted is shown. Origin server 110 inserts active sub-stream content 320 into video stream 300 after receiving an active sub-stream content 320 insertion request from media player 145. Video stream 300 includes content segments 310, 330 together with active sub-stream content 320. Active sub-stream content 320 is inserted during a break period between content segments 310 and 330 or at a content break. When video stream 300 is played back together with active sub-stream content 320 inserted therein, media player 145 uses a plug-in to customize the interface of media player 145.

[0026] Next, referring to FIG. 4, a data flow 400 for providing metadata from origin server 110 to media player 145 using metadata service 170 and metadata storage 160 is shown. First, media player 145 used by end user 420 requests metadata associated with active sub-stream content. The active sub-stream content is to be inserted at a content break of the video stream. This request by media player 145 is made to metadata service 170, and a GET query string including encoded parameters for communication with metadata service 170 is used. Media playlist 440 is received by media player 145 from origin server 110 for playing back the video stream.

[0027] The origin server 110 inserts a Uniform Resource Identifier (URI) into the media playlist 440 of the video stream for zero - second duration metadata segments. The URI routes requests from the media player 145 to the metadata service 170, and the metadata service 170 serializes the metadata response from the metadata storage 160 into ID3 cue points suitable for parsing by the client SDK. The ID3 cue points contain metadata. The ID3 cue points tag the metadata within the metadata track of the video stream. The metadata track is generated by encapsulating only the metadata segments required at that particular time at the playback time.

[0028] The metadata response is provided to the origin server 110 by a third - party provider 120. The API 430 of the origin server 110 stores in the metadata storage 160 the API or VAST response for each active sub - stream content having each content break per session. The timing information is provided by the origin server 110 to the metadata service 170. The timing information is related to the playback head position at the content break interval, for example, the remaining time of the active sub - stream content, or the number of active sub - stream contents at the content break interval, etc. The metadata includes the metadata response and the timing information.

[0029] When the metadata service 170 receives a GET query string, it retrieves a metadata response from the metadata storage 160 using the URI. The ID3-ts-lib410 of the metadata service 170 generates TS segments based on Video Multiple Ad Playlist (VMAP) data constructed from the encoded parameters within the GET query string. The VMAP is compatible with the client SDK and provides VAST data. The TS segments include the metadata response and timing information within the metadata. The TS segments containing metadata are provided to the media player 145 of the client device 140.

[0030] As the media player 145 progresses through the media playlist 440, subsequent metadata segments provide timing information and metadata responses for each active sub-stream content at the content break intervals.

[0031] The client SDK of the media player 145 analyzes the ID3 metadata cue points obtained from the metadata service 170. The client SDK is responsible for decrypting the ID3 cue points into surface information such as the duration of the active sub-stream content at the content break intervals, their positions, and any custom VAST extensions from the third-party provider 120 to facilitate interactivity on the page.

[0032] The metadata segment is provided within the metadata track. The metadata track contains information regarding subtitles or karaoke tracks or album data. The information is decoded by the playback engine of the media player 145 by parsing the ID3 cues within the metadata segment in a client-independent manner. The metadata track is separated from the audio and video tracks required for video stream playback. By separating the metadata track, the player can safely ignore the metadata track without losing existing functionality for playback, analysis information, or custom integration without a compatible client SDK. This helps in performing playback while avoiding confusion using both old and new media players. Additionally, the developer of the media player 145 can customize how the media player 145 interacts with content breaks. This can include click-through interactions at content break intervals, custom page styling away from playback level events, and custom analysis information. The developer of the client SDK can configure the analysis information sent by the origin server 110 or the media player 145 to suit their specific use case.

[0033] Referring next to FIG. 5, a swimlane diagram showing the interactions between the content provider 150, third-party provider 120, origin server 110, metadata service 170, and media player 145 is shown.

[0034] In block 505, the content provider 150 provides a video stream to the origin server 110 for playback in the media player 145. The video stream may be video or media content having one or more content breaks or ad breaks for the insertion of active media content such as advertisements.

[0035] In block 510, the third-party provider 120 provides the origin server 110 with the active sub-stream content and the metadata associated with the active sub-stream content.

[0036] In block 515, the third-party provider 120 provides the origin server 110 with an API response. The API response includes a VAST response or interaction-specific data for the media player 145.

[0037] In block 520, the origin server 110 receives a video stream from the content provider 150 for playback. In block 525, the origin server 110 stores the API response in the metadata storage 160.

[0038] In block 530, the origin server 110 inserts a URI into a playlist for playing the video stream on the media player 145. The playlist is used by the media player 145 to request metadata. The playlist is provided to the media player 145 for playing the video stream. The playlist includes a zero-duration segment with an ID3 cue point associated with the metadata request, which can help ensure backward compatibility with older players.

[0039] In block 535, the origin server 110 provides timing information to the metadata service 170. The timing information includes the start time and end time of the active sub-stream content in the content segmentation interval, the number of active sub-stream content, and / or the timing of each of the active sub-stream content.

[0040] In block 540, the origin server 110 routes the request received from the media player 145 regarding the insertion of active sub-stream content and metadata to the metadata service 170.

[0041] In block 545, the origin server 110 inserts the active sub-stream content into the video stream together with the metadata segments to generate a modified video stream. The modified video stream is provided to the media player 145 and the metadata service 170.

[0042] In block 550, upon receiving the metadata request routed by the origin server 110, the metadata service 170 extracts the API response. The API response is retrieved from the metadata storage 160 using the URI.

[0043] In block 555, the metadata service 170 receives timing information from the origin server 110. In block 560, the metadata service 170 provides the metadata segments of the metadata to the media player 145. The metadata includes the API response and the timing information.

[0044] In block 565, the media player 145 receives a playlist from the origin server 110 for playing the video stream. In block 570, the media player 145 uses the playlist to send a metadata request to the origin server 110. This request is associated with the insertion of active sub-stream content in the playback of the video stream.

[0045] In block 575, the media player 145 receives the modified video stream from the origin server 110. At block 580, the media player 145 receives metadata from metadata segments provided by the metadata service 170.

[0046] At block 585, the media player 145 extracts functions from the metadata using the client SDK or a plugin. This function is associated with the interaction of the media player 145 while playing the modified video stream.

[0047] At block 590, the interaction of the media player 145 is customized based on the functions associated with the metadata. Customization of the interaction includes styling and modification of interactivity at content separation intervals.

[0048] Referring to FIG. 6 next, a flowchart of a method 600 for providing a customized interaction of a media player based on metadata during video playback is shown. The steps of method 600 are executed by the origin server 110.

[0049] At block 520, the origin server 110 obtains a video stream for playback along with the active sub-stream content to be inserted into the video stream. Metadata associated with the active sub-stream content is also received by the origin server 110.

[0050] At block 605, the origin server 110 inserts a zero-second (0-second) duration segment into the playlist for playing the video stream. The zero-second duration segment includes an ID3 cue point containing metadata specific to the active sub-stream content at the content separation interval.

[0051] In block 525, an API response corresponding to metadata is stored in the metadata storage 160. The origin server 110 uses the server API to store the API response received from the third-party provider 120 in the metadata storage 160. The server API inserts, from the advertisement API responses in the playlist, into the content delimiter for each session, the API response for the active sub-stream content, specifically the VAST response. The API response inserted into the content delimiter is stored in the metadata storage 160.

[0052] In block 610, a request for metadata is received by the origin server 110 from the media player 145. In block 530, the origin server 110 inserts a URI into the playlist using the server API. The origin server 110 inserts the URI into the playlist of the zero-second duration segments of the metadata.

[0053] In block 535, the origin server 110 provides timing information to the metadata service 170. The timing information includes the timing of the active sub-stream content.

[0054] In block 615, the origin server 110 provides the playlist to the media player 145 for the playback of the video stream. In block 540, the origin server 110 routes the request received from the media player 145 to the metadata service 170 to provide metadata.

[0055] In block 545, the active sub-stream content is inserted into the video stream together with the metadata segment, and the modified video stream is obtained. In block 620, the modified video stream is provided to the media player 145. The metadata segment is used by the media player 145 to request metadata from the metadata service 170.

[0056] In block 625, analysis information related to viewing the modified video stream or analysis information related to playback is provided to the third-party provider 120. The analysis information can further be used by developers to customize the active sub-stream content. The developer may configure the analysis information provided by the origin server 110 to suit their specific use case.

[0057] In block 630, the origin server 110 determines whether the next video stream has been received for processing. If there is a subsequent video stream for playback, control moves to block 520; otherwise, the method ends.

[0058] Next, referring to FIG. 7, a flowchart of a method 700 for customizing the behavior of a media player based on metadata during video playback is shown. The steps of method 700 are executed by the media player 145.

[0059] In block 565, a playlist for playing the video stream is received by the media player 145 from the origin server 110. The playlist includes a request to insert active sub-stream content into the video stream and metadata associated with the active sub-stream content at the content delimiter interval. The playlist includes a zero-duration segment associated with the metadata request, thereby ensuring compatibility with different types of media players. The zero-duration segment includes an ID3 queue containing metadata associated with the active sub-stream content.

[0060] In block 705, requests within the playlist are sent to origin server 110 for the insertion of active sub-stream content and metadata. After receiving the request, origin server 110 routes the request to metadata service 170.

[0061] In block 575, media player 145 receives the modified video stream from origin server 110. The modified video stream includes active sub-stream content and metadata segments. The metadata segments are used by media player 145 to communicate with metadata service 170.

[0062] In block 710, media player 145 generates a GET query string to request metadata service 170. The GET query string is sent to metadata service 170 to request metadata.

[0063] In block 580, metadata segments containing metadata are received by media player 145 from metadata service 170. The metadata includes API responses and timing information associated with the active sub-stream content.

[0064] In block 715, the client SDK or plugin of media player 145 decodes the ID3 queue within the metadata segment to extract the metadata. In block 720, the client SDK analyzes the extracted metadata to extract features related to customizing the interaction of the media player 145. The features to be extracted include disabling VCR-type controls for fast-forwarding or skipping active sub-stream content, disabling volume control during content break intervals, enabling click-through functionality, being able to convert the entire video area or any subset thereof into an addressable space, and by clicking thereon, transferring the user to a page or service associated with the active sub-stream content, enabling "companion ads" shown with video content that enables advertising opportunities outside of the streaming content, and achieving accurate impression counts specifically applicable to the inserted ad content and / or other possible customizations of the desired player behavior based on the content of the active sub-stream content.

[0065] In block 725, the styling and interaction of the media player 145 are customized based on the features during the playback of the modified video stream. Developers can use the client SDK to customize the interaction between the media player 145 and the content breaks. This customization can include click-through interactions during content break intervals, custom page styling away from playback level events, and custom analytics information.

[0066] In block 730, the media player 145 provides the analytics information to an analytics information repository (not shown) based on the developer configuration settings as commanded by the metadata. Developers configure the analytics information sent by the media player 145 to suit their specific requirements.

[0067] Next, referring to FIG. 8, a flowchart of a method 800 for providing metadata associated with customization information to a media player is shown. The steps of method 800 are performed by metadata service 170.

[0068] In block 805, metadata service 170 receives a request for metadata associated with active substream content from media player 145. The active substream content is to be inserted into a video stream played by media player 145. This request is provided by a GET query string from media player 145.

[0069] In block 550, after receiving the metadata request, metadata service 170 retrieves an API response from metadata storage 160. In block 555, timing information associated with the active substream content is received from origin server 110. The timing information includes the time left for the active substream content, the duration of the active substream content, or the number of active substream contents in a content segmentation interval.

[0070] In block 810, metadata service 170 generates an ID3 queue containing the metadata. In block 815, metadata service 170 transmits the ID3 queue within a transport stream (TS) segment to media player 145 using the metadata segment. The TS segment is transmitted as a response to a request from media player 145 for the metadata. The metadata is extracted from the ID3 queue by media player 145 to customize the behavior of media player 145 during playback of a video stream having the active substream content.

[0071] Specific details are provided in the above description to provide a complete understanding of the embodiments. However, it is understood that the embodiments can be practiced without these specific details. For example, circuits can be shown in block diagrams so as not to obscure the embodiments with unnecessary details. In other instances, well-known circuits, processes, algorithms, structures, and techniques can be shown without unnecessary detail to avoid obscuring the embodiments.

[0072] The implementation of the technologies, blocks, steps, and means described above can be done in various ways. For example, these technologies, blocks, steps, and means can be implemented in hardware, software, or a combination thereof. In the case of a hardware implementation, the processing unit can be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, microcontrollers, microprocessors, other electronic units designed to perform the functions described above, and / or combinations thereof.

[0073] Also, it should be noted that the embodiments can be described as a process shown as a flowchart, a flow diagram, a swimlane diagram, a data flow diagram, a structural diagram, or a block diagram. The description can describe the operations as a sequential process, but many of the operations can be executed in parallel or simultaneously. Additionally, the order of the operations can be rearranged. The process ends when its operations are completed, but can have additional steps not included in the figures. The process can correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When the process corresponds to a function, its end corresponds to the return of the function to the calling function or the main function.

[0074] Furthermore, embodiments may be implemented by hardware, software, script language, firmware, middleware, microcode, hardware description language, and / or any combination thereof. When implemented in software, firmware, middleware, script language, and / or microcode, program code or code segments for performing the necessary tasks can be stored in a machine-readable medium such as a storage medium. Code segments or machine-executable instructions can represent any combination of procedures, functions, subprograms, programs, routines, subroutines, modules, software packages, scripts, classes, or instructions, data structures, and / or program statements. A code segment can be coupled to another code segment or a hardware circuit by passing and / or receiving information, data, arguments, parameters, and / or memory contents. Information, arguments, parameters, data, etc. can be passed, transferred, or transmitted by any suitable means including memory sharing, message passing, token passing, network transmission, etc.

[0075] In the case of firmware and / or software implementations, the method can be implemented using modules (e.g., procedures, functions, etc.) that perform the functions described herein. Any machine-readable medium that tangibly embodies instructions can be used in implementing the methods described herein. For example, software code may be stored in memory. Memory can be implemented within or external to a processor. As used herein, the term "memory" refers to any type of long-term, short-term, volatile, non-volatile, or other storage medium and is not limited to any particular type of memory or number of memories, or the type of medium in which the memories are stored.

[0076] Furthermore, as disclosed herein, the term "memory medium" can represent one or more memories for storing data, including read-only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage media, optical storage media, flash memory devices, and / or other machine-readable media for storing information. The term "machine-readable medium" includes, but is not limited to, portable or fixed storage devices, optical storage devices, and / or various other storage media that can store or carry one or more instructions and / or data.

[0077] Although the principles of the present disclosure have been described above in connection with specific apparatus and methods, it should be clearly understood that this description is made by way of example only and not as a limitation on the scope of the present disclosure.

Claims

1. A method for providing customized interaction of a media player based on metadata during video playback in the media player, comprising: obtaining, by an origin server, metadata corresponding to active sub-stream content for playback of a primary video stream from a third-party provider, and storing, by the origin server, the metadata in a metadata storage; providing, to the media player, a playlist for playing the primary video stream, wherein the playlist includes a request for the metadata, and the request is associated with insertion of the active sub-stream content in the playback of the primary video stream; receiving, by the origin server, the request for the metadata from the media player, wherein the request is received during playback of the primary video stream in the media player; inserting, by the origin server, a uniform resource identifier (URI) into the playlist of the metadata; inserting, by the origin server, the active sub-stream content into the primary video stream together with a metadata segment to obtain a secondary video stream; providing, by the origin server, the metadata corresponding to the active sub-stream content to the media player using a metadata service, wherein providing the metadata to the media player by the origin server is: by the metadata service; retrieving, using the URI, an application programming interface (API) response from the metadata storage; Retrieving timing information of the active sub-stream content from the origin server, including , and providing the metadata including the timing information and the API response to the media player by the metadata service using the metadata segment. Extracting, by the media player, a function associated with the active sub-stream content from the metadata. Customizing, by the media player, an interaction of the media player during playback of the secondary video stream based on the function associated with the active sub-stream content. A method comprising. **Claim 2** The function includes disabling video cassette recorder (VCR)-type control for fast-forwarding or skipping the active sub-stream content, disabling volume control at sub-stream separation intervals, and / or enabling a click-through function. A method of providing a customized interaction of a media player based on metadata during video playback in the media player according to claim 1. **Claim 3** Providing analysis information by the origin server to the third-party provider. Providing the analysis information by the media player based on the metadata. Further comprising A method of providing a customized interaction of a media player based on metadata during video playback in the media player according to claim 1. **Claim 4** The API response includes a video advertisement serving template (VAST). A method for providing customized interactions of a media player based on metadata during video playback in the media player according to claim 1.

5. A content delivery network (CDN) provides the metadata segment by providing a blank segment consisting of an empty header and containing no data to the media player during a failover of the metadata service. A method for providing customized interactions of a media player based on metadata during video playback in the media player according to claim 1.

6. The metadata track of the metadata contains customization information of the media player, and the metadata track is separated from the audio track and video track of the secondary video stream. A method for providing customized interactions of a media player based on metadata during video playback in the media player according to claim 1.

7. A plugin is used by the media player to analyze the metadata in order to customize the interaction of the media player. A method for providing customized interactions of a media player based on metadata during video playback in the media player according to claim 1.

8. The playlist further includes a zero-second duration segment associated with the request of the metadata. A method for providing customized interactions of a media player based on metadata during video playback in the media player according to claim 1.

9. The primary video stream is in the Hypertext Transfer Protocol (HTTP) Live Streaming (HLS) format, Dynamic Adaptive Streaming over HTTP (DASH), or the SCTE-35 format. A method for providing customized interaction of a media player based on metadata during video playback in the media player according to claim 1.

10. A server configured to provide metadata for customizing the interaction of a media player during video playback in the media player, A communication interface, A memory, A processor coupled to the communication interface and the memory, comprising: The processor is obtaining metadata corresponding to active sub-stream content for playback of a primary video stream from a third-party provider and storing the metadata in a metadata storage, wherein a playlist for playing the primary video stream is provided to the media player, the playlist includes a request for the metadata, and the request is associated with insertion of the active sub-stream content in the playback of the primary video stream, storing the metadata; receiving the request for the metadata from the media player, wherein the request is received during playback of the primary video stream in the media player, receiving the request for the metadata; inserting a Uniform Resource Identifier (URI) into the playlist of the metadata; inserting the active sub-stream content into the primary video stream together with a metadata segment to obtain a secondary video stream; Providing timing information of the active sub-stream content to a metadata service; Providing the metadata corresponding to the active sub-stream content to the media player using the metadata service; configured to execute functions including: using the URI, an application programming interface (API) response is retrieved from the metadata storage by the metadata service; the metadata including the timing information and the API response is provided to the media player by the metadata service using the metadata segment; the media player extracts functions associated with the active sub-stream content from the metadata and customizes the interaction of the media player during playback of the secondary video stream; Server.

11. The functions include disabling video cassette recorder (VCR) type control for fast-forwarding or skipping the active sub-stream content, disabling volume control at sub-stream delimiter intervals, and / or enabling a click-through function; A server configured to provide metadata for customizing the interaction of a media player during video playback in the media player according to claim 10.

12. further executing providing analysis information to the third-party provider; the media player provides the analysis information based on the metadata; A server configured to provide metadata for customizing the interaction of a media player during video playback in the media player according to claim 10.

13. wherein the API response includes a Video Advertising Serving Template (VAST). A server configured to provide metadata for customizing interactions of a media player during video playback in the media player according to claim 10. **Claim 14** A content delivery network (CDN) provides the metadata segment by providing a blank segment consisting of an empty header and containing no data to the media player during failover of the metadata service. A server configured to provide metadata for customizing interactions of a media player during video playback in the media player according to claim 10. **Claim 15** A metadata track of the metadata includes customization information of the media player, and the metadata track is separated from an audio track and a video track of the secondary video stream. A server configured to provide metadata for customizing interactions of a media player during video playback in the media player according to claim 10. **Claim 16** A plugin is used by the media player to analyze the metadata in order to customize the interaction of the media player. A server configured to provide metadata for customizing interactions of a media player during video playback in the media player according to claim 10. **Claim 17** The playlist further includes a zero-second duration segment associated with the request for the metadata. A server configured to provide metadata for customizing interactions of a media player during video playback in the media player according to claim 10. **Claim 18** A non-transitory computer-readable medium having instructions embedded therein for customizing media player interactions based on metadata during video playback, wherein the instructions, when executed by one or more computers, cause the one or more computers to, obtain, by an origin server, metadata corresponding to active sub-stream content for playback of a primary video stream from a third-party provider and store the metadata in a metadata storage by the origin server; provide, to the media player, a playlist for playing the primary video stream, the playlist including a request for the metadata, the request being associated with insertion of the active sub-stream content in the playback of the primary video stream; receive, by the origin server, the request for the metadata from the media player, the request being received during playback of the primary video stream in the media player; insert, by the origin server, a uniform resource identifier (URI) into the playlist for the metadata; insert, by the origin server, the active sub-stream content into the primary video stream along with a metadata segment to obtain a secondary video stream; provide, by the origin server, the metadata corresponding to the active sub-stream content to the media player using a metadata service, the providing of the metadata to the media player by the origin server being by the metadata service, Retrieving an Application Programming Interface (API) response from the metadata storage using the URI; Retrieving timing information of the active sub-stream content from the origin server; Providing the metadata to the media player, including the timing information and the API response, where the metadata is provided to the media player by the metadata service using the metadata segment; Extracting, by the media player, functions associated with the active sub-stream content from the metadata; Customizing, by the media player, interactions of the media player during playback of the secondary video stream based on the functions associated with the active sub-stream content; Causing to execute; A non-transitory computer-readable medium.

19. The primary video stream is in a Hypertext Transfer Protocol (HTTP) Live Streaming (HLS) format, Dynamic Adaptive Streaming over HTTP (DASH), or SCTE-35 format; The non-transitory computer-readable medium according to claim 18.

20. The playlist further includes a zero-duration segment associated with the request for the metadata; The non-transitory computer-readable medium according to claim 18.

21. The extracting by the media player includes decrypting an ID3 cue within the metadata segment; The metadata segment is provided as a zero-length media segment carrying an ID3 tag. A method for providing customized interaction of a media player based on metadata during video playback in the media player according to claim 1.

22. The function is derived by decrypting an ID3 queue in the metadata segment, The metadata segment is provided as a zero-length media segment carrying an ID3 tag, A server configured to provide metadata for customizing the interaction of a media player during video playback in the media player according to claim 10.

23. The function is derived using an ID3 queue in the metadata segment, The metadata segment is provided as a zero-length media segment carrying an ID3 tag, The non-transitory computer-readable medium according to claim 18.

Citation Information

Patent Citations

  • Contents reproduction controller, data managing device, build up version contents distributing system and method and server, control data transmitting server, and program

    JP2004007063A

  • Data processing method, data processing apparatus, and program and data recording medium therefor

    JP2007259478A

  • Server apparatus, trick reproduction restricting method, and receiving device

    JP2010252262A

  • Protecting portions of the content stream from modification or deletion

    JP2019521625A