Server-side ad insertions (SSAI) with additional metadata and client functionality

The method addresses ad insertion challenges by using an origin server to integrate active substream content and metadata, enabling customizable and ad-blocker-resistant ad insertion with accurate analytics, improving user experience and profitability.

JP2025120286APending Publication Date: 2025-08-15BRIGHTCOVE INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025093603
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2020-05-28
Filing Date
2025-06-04
Publication Date
2025-08-15

AI Technical Summary

Technical Problem

Existing ad insertion methods, such as client-side ad insertion (CSAI) and server-side ad insertion (SSAI), face challenges in providing accurate analytics and customizable interactivity due to ad blockers, leading to reduced profitability and consumer annoyance.

Method used

A method and system that utilizes an origin server to insert active substream content and metadata into a video stream, enabling a media player to customize interaction based on metadata received from an origin server, using a metadata service and storage to provide accurate analytics and interactivity.

Benefits of technology

Enhances ad insertion by providing reliable, customizable, and ad-blocker-resistant ad insertion with accurate analytics, ensuring seamless playback and enhanced user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025120286000001_ABST
    Figure 2025120286000001_ABST
Patent Text Reader

Abstract

To provide a method of operating a media player so as to provide customized interaction based on metadata during playback of a video stream in the media player.SOLUTION: A method includes: receiving a playlist for video stream playback including a URI for metadata inserted into a playlist by an origin server; transmitting a request of metadata related to insertion of an active substream content in playback of a video stream to the origin server during the playback of the video stream in a media player; receiving the metadata; determining functionality related to the active substream content based on the metadata; and customizing interaction of the media player during playback of the active substream content based on the functionality.SELECTED DRAWING: Figure 5
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 031,446, filed May 28, 2020, which is incorporated by reference in its entirety for all purposes. [Background technology]

[0002] Advertisements embedded in video streams allow advertisers to easily connect with large audiences. These advertisements provide advertisers with a unique opportunity to secure a wide audience. Ad-supported video streams are widespread, allowing consumers to watch video streams for free or at low or minimal cost.

[0003] The insertion of ads into videos has traditionally been accomplished using client-side ad insertion (CSAI) and server-side ad insertion (SSAI). CSAI generally refers to the media player communicating directly with ad providers to download and play ads while also providing associated viewing analytics. CSAI solutions generally enable developers to customize the player and facilitate increased interactivity with other page elements. However, obtrusive and distracting ads can be a nuisance for consumers, forcing them to use ad-blocking software to prevent such ads from playing. Furthermore, the use of ad blockers prevents the collection of analytics information from ads, reducing the profitability and sustainability of ad-supported videos.

[0004] On the other hand, SSAI uses a server for ad insertion and analytics information. While using SSAI can be effective in preventing ad blocking, traditional SSAI solutions are considered to provide less accurate analytics and less customization than CSAI solutions. Having reliable, enticing page interactivity and customization that is difficult for traditional ad blockers to disrupt is important for both ad providers and consumers. Summary of the Invention

[0005] In one embodiment of the present disclosure, a method for providing customized interaction of a media player based on metadata obtained from an origin server is provided. 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 the metadata, the request being associated with inserting the active substream content in playing 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 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 the interaction during playback of the secondary video stream.

[0006] In one embodiment of the present disclosure, a method for providing customized interaction of a media player based on metadata during playback of a video on the media player is provided. 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, the request being associated with inserting the active substream content in 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 on the media player. A Uniform Resource Identifier (URI) is inserted by the origin server into the metadata playlist. The origin server inserts the active substream content, along with a metadata segment, into the primary video stream to obtain a secondary video stream. The metadata corresponding to the active substream content is provided to the media player by the origin server using a metadata service. The origin server provides the metadata to the media player based on retrieving, by the metadata service, an Application Programming Interface (API) response from the metadata storage using the URI and timing information of the active sub-stream content from the origin server, and 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 features associated with the active substream content from the metadata are extracted by the media player, and interaction of the media player during playback of the secondary video stream is customized based on the features associated with the active substream content.

[0007] In another embodiment of the present disclosure, a server configured to provide metadata for customizing media player interaction during playback of a video on the media player is provided. The server includes a communication interface, a memory, and a processor coupled to the communication interface and the memory. Metadata corresponding to active substream content for playback of a 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 inserting the active substream content in playback of the primary video stream. The request for the metadata is received from the media player. The request is received during playback of the primary video stream on the media player. A Uniform Resource Identifier (URI) is inserted into the playlist for the metadata. To obtain a secondary video stream, the active substream content is inserted into the primary video stream along with the metadata segment. A metadata service is provided with timing information of the active substream content. The metadata corresponding to the active substream 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 features associated with the active sub-stream content from the metadata to customize the media player's interaction during playback of the secondary video stream.

[0008] In yet another embodiment of the present disclosure, a non-transitory computer-readable medium having embedded thereon instructions for customizing media player interaction based on metadata during playback of a video, the instructions, when executed by one or more computers, causing the one or more computers to: obtaining, by an origin server, metadata corresponding to active sub-stream content for playback of the primary video stream from a third-party provider, and storing, by the origin server, the metadata in a metadata storage; providing the media player with a playlist for playing the primary video stream, the playlist including a request for the metadata, the request associated with inserting 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, the request being received during playback of the primary video stream on the media player; inserting a Uniform Resource Identifier (URI) into the playlist of the metadata by the origin server; inserting, by the origin server, the active sub-stream content along with a metadata segment into the primary video stream 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, by the origin server, the metadata to the media player; The metadata service retrieving an application programming interface (API) response from the metadata storage using the URI; and retrieving timing information for the active sub-stream content from the origin server; 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, features associated with the active sub-stream content from the metadata; customizing, by the media player, interaction of the media player during playback of the secondary video stream based on the features associated with the active sub-stream content; Execute the following.

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

[0010] [Figure 1] 1 is a block diagram illustrating a media services system directed to the insertion of active sub-stream content into video playback. [Figure 2] 1 is a flow diagram illustrating a media service system. [Figure 3] FIG. 1 illustrates a playback timeline of a video stream with active substream content inserted. [Figure 4] 1 is a data flow diagram for providing metadata from an origin server to a media player using a metadata service and metadata storage. [Figure 5] A swimlane diagram showing interactions between content providers, third-party providers, origin servers, metadata services, and media players. [Figure 6] 1 illustrates a flowchart of a method for providing customized media player interaction based on metadata during video playback. [Figure 7] 1 illustrates a flowchart of a method for customizing media player behavior based on metadata during video playback. [Figure 8] FIG. 10 illustrates a flowchart for providing metadata associated with customization information to a media player. DETAILED DESCRIPTION OF THE INVENTION

[0011] The present disclosure is described in conjunction with the accompanying drawings, in which similar components and / or features may have the same reference label. Furthermore, distinctions may be made between components of the same type, in which case the reference label is followed by a second alphabetical label that distinguishes between the similar components. When only a first reference label is used herein, 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 merely provides preferred exemplary embodiments and is not intended to limit the scope, applicability, or configuration of the present disclosure. Rather, the following description of preferred exemplary embodiments will provide those skilled in the art with an enabling description for implementing the preferred exemplary embodiments. It will be understood that various changes can be made in the function and arrangement of elements without departing from the spirit and scope as set forth in the appended claims.

[0013] Referring initially to Figure 1, a block diagram of a media serving system 100 directed to inserting active substream content into video playback is shown. The media serving 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, metadata storage 160, and a metadata service 170. The media serving system 100 distributes media content to the media player 145, which can be executed by the client device 140 to provide media playback to an end user of the client device 140. The media player 145 may 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 distribution network. Client device 140 may be one of any number of devices configured to receive media via Internet 180 and may include a mobile phone, tablet, personal computer, portable media device, television, set-top box, video game system, etc. Although only one media player 145 and one client device 140 are shown in Figure 1, it may be understood that media serving system 100 may provide media to multiple media players 145 on multiple client devices 140. The active substream content may be, for example, advertisements or non-advertising media content.

[0014] For on-demand content, media files provided by content provider 150 are stored on CDN 130. On-demand content is provided to media player 145 via progressive download and / or streaming. A similar process can occur for live content, which may be real-time or near real-time, depending on processing and / or other buffer times.

[0015] One or more of the one or more third-party providers 120 (or one or more advertising providers) provide active substream content, which may include advertisements, to various media players 145 on various client devices 140. The one or more third-party providers 120 enable businesses to 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 advertising data separate from the media content.

[0016] Origin server 110 may be a server-side ad insertion (SSAI) server that processes media content from content provider 150 and active substream content from third-party provider 120. Origin server 110 inserts the active substream content into the media content and provides metadata to media player 145 for customization of media player 145 interaction during content delimitation 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 providers 120. The metadata responses are stored in metadata storage 160 by origin server 110 for processing and / or retrieval. The metadata responses may be application programming interface (API) responses, advertising API responses, or Video Ad Serving Template (VAST) responses.

[0018] Metadata service 170 is used to retrieve the metadata response 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 serves the metadata to media player 145.

[0019] Referring to FIG. 2, a flow diagram of the media serving system 100 is shown. The media serving system 100 provides for the insertion of active substream content into a video stream during playback of the video stream. The origin server 110 receives a video stream from a content provider 150 for playback on a media player 145 of a client device 140. The origin server 110 also receives the active substream content from a third-party provider 120. The origin server 110 further obtains metadata associated with the active substream 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 interactivity of the media player 145 during playback of the active substream content in the content delimitation 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 substream content to a metadata service 170.

[0020] The origin server 110 provides a video stream to the media player 145 for playback. A playlist or manifest file for playing the video stream is provided to the media player 145. The playlist includes requests for metadata associated with the insertion of active substream 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 integration between the origin server 110 and the media player 145.

[0021] Origin server 110 receives a request for metadata from media player 145. The request is received while a video stream is being played on 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. This functionality is provided by the metadata service 170, which provides failover metadata segments in the event that a separate CDN 130-2 causes service outages due to lack of support from the origin server 110. The CDN 130-2 provides generic segments, such as segments in HyperText Transfer Protocol HTTP Live Streaming (HLS), that consist of an empty Transport Stream (TS) header with no packetized elementary stream (PES) data. For example, upon failover of the metadata service 170, a blank segment with an empty header and no data is provided to the media player 145 to provide the 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 the metadata.

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

[0024] The media player 145 receives the metadata from the metadata segments provided by the metadata service 170. The media player 145 uses a client software development kit (SDK) to extract features associated with the active substream content from the metadata. The client SDK may be a plug-in. The extracted features include interactivity for the media player 145, such as disabling Video Cassette Recorder (VCR)-type controls for fast-forwarding or skipping the active substream content, disabling volume control at substream delimiter intervals, and / or enabling click-through functionality. The media player 145 customizes its interaction during playback of the video stream with the active substream content based on the extracted features.

[0025] 3, a playback timeline of a video stream 300 with active sub-stream content 320 inserted is shown. After receiving a request to insert the active sub-stream content 320 from a media player 145, the origin server 110 inserts the active sub-stream content 320 into the video stream 300. The video stream 300 includes content segments 310 and 330 along with the active sub-stream content 320. The active sub-stream content 320 is inserted into the break period or content break between the content segments 310 and 330. When the video stream 300 is played with the active sub-stream content 320 inserted into the video stream 300, the media player 145 uses a plug-in to customize the interface of the media player 145.

[0026] 4, a data flow 400 is shown for providing metadata from an origin server 110 to a media player 145 using the metadata service 170 and metadata storage 160. First, a media player 145 used by an end user 420 requests metadata associated with active substream content, which is to be inserted into a content break in the video stream. This request by the media player 145 is made from the metadata service 170 using a GET query string that contains encoded parameters for communicating with the metadata service 170. A media playlist 440 is received by the media player 145 from the origin server 110 that is used to play the video stream.

[0027] The origin server 110 inserts a uniform resource identifier (URI) into the video stream's media playlist 440 for the zero-second duration metadata segment. The URI routes the media player 145 request to the metadata service 170, which serializes the metadata response from the metadata storage 160 into an ID3 cue point suitable for parsing by the client SDK. The ID3 cue point contains the metadata. The ID3 cue point tags the metadata within the video stream's metadata track. The metadata track is generated at playback time by encapsulating only the metadata segments needed at that particular time.

[0028] The metadata response is provided to the origin server 110 by the third-party provider 120. The API 430 of the origin server 110 stores an API or VAST response for each active substream content with each content break per session in the metadata storage 160. Timing information is provided by the origin server 110 to the metadata service 170. The timing information relates to the playhead position within the content break interval, for example, the remaining time of the active substream content, or the number of active substream content within the content break interval. The metadata includes the metadata response and the timing information.

[0029] When the metadata service 170 receives the GET query string, it uses the URI to retrieve the metadata response from the metadata storage 160. The ID3-ts-lib 410 of the metadata service 170 generates a TS segment based on Video Multiple Ad Playlist (VMAP) data constructed from the parameters encoded in the GET query string. The VMAP is compatible with the client SDK, and VAST data is provided. The TS segment includes the metadata response and timing information in the metadata. The TS segment containing the metadata is 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 in the content delimitation interval.

[0031] The client SDK of the media player 145 parses the ID3 metadata cue points obtained from the metadata service 170. The client SDK is responsible for decoding the ID3 cue points into surface information such as the duration of active substream content, their position in the content delimiter interval, as well as any custom VAST extensions from the third-party provider 120 to facilitate interactivity on the page.

[0032] The metadata segments are provided in metadata tracks. The metadata tracks contain information about subtitles, karaoke tracks, or album data. The information is decoded by the media player 145 playback engine by parsing the ID3 cues in the metadata segments in a client-independent manner. The metadata tracks are separate from the audio and video tracks required for video stream playback. This separation allows players without a compatible client SDK to safely ignore the metadata tracks without losing existing functionality for playback, analytics, or custom integration. This helps ensure seamless playback using both new and legacy media players. Additionally, media player 145 developers can customize how the media player 145 interacts with content breaks. This can include click-through interactions at content break intervals, custom page styling separate from playback-level events, and custom analytics information. Client SDK developers can configure the analytics information sent by the origin server 110 or media player 145 to fit their specific use cases.

[0033] Referring now to FIG. 5, a swim lane diagram illustrating interactions between content providers 150, third party providers 120, origin servers 110, metadata services 170, and media players 145 is shown.

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

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

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

[0037] In block 520, origin server 110 receives the video stream from 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 playback of the video stream. The playlist includes zero-second duration segments with ID3 cue points associated with metadata requests, 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 and end times of the active sub-stream content within the content delimitation 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 for the insertion of active substream content and metadata to the metadata service 170.

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

[0042] In block 550, upon receiving the request for metadata routed by the origin server 110, the metadata service 170 retrieves 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 segment of the metadata to the media player 145. The metadata includes API responses and timing information.

[0044] In block 565, the media player 145 receives a playlist from the origin server 110 for playback of the video stream. In block 570, the media player 145 uses the playlist to send a request for metadata to the origin server 110. The request is associated with the insertion of the active substream 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 . In block 580 , the media player 145 receives the metadata from the metadata segment provided by the metadata service 170 .

[0046] In block 585, the media player 145 uses a client SDK or plug-in to extract functionality from the metadata, the functionality being associated with the interaction of the media player 145 while playing the modified video stream.

[0047] In block 590, the interaction of the media player 145 is customized based on the functionality associated with the metadata, including modifying styling and interactivity at the content delimitation intervals.

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

[0049] In block 520, origin server 110 retrieves the video stream for playback along with the active substream content to be inserted into the video stream. Metadata associated with the active substream content is also received by origin server 110.

[0050] In block 605, the origin server 110 inserts a zero second (0 s) duration segment into a playlist for playing the video stream. The zero second duration segment includes an ID3 cue point that contains metadata specific to the active substream content in the content delimitation interval.

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

[0052] In block 610 , a request for metadata is received by origin server 110 from media player 145 . In block 530, the origin server 110 uses the server API to insert the URI into the playlist. The origin server 110 inserts the URI into the playlist of the zero-second duration segment in 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 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 the metadata.

[0055] In block 545, the active substream content along with the metadata segment is inserted into the video stream to obtain a modified video stream. 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, the analytics information related to viewing or playback of the modified video stream is provided to the third-party provider 120. The analytics information can then be used by developers to customize the active substream content. Developers may configure the analytics information provided by the origin server 110 to suit their particular use case.

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

[0058] 7, there is shown a flowchart of a method 700 for customizing media player behavior based on metadata during video playback. The steps of the method 700 are performed 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 requests to insert active substream content into the video stream and metadata associated with the active substream content in content delimitation intervals. The playlist includes zero-second duration segments associated with the metadata requests, thereby ensuring compatibility with different types of media players. The zero-second duration segments include ID3 cues that include metadata associated with the active substream content.

[0060] In block 705, the request in the playlist is sent to the origin server 110 for insertion of the active substream content and metadata. After receiving the request, the origin server 110 routes the request to the 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 substream content and a metadata segment that is used by media player 145 to communicate with metadata service 170.

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

[0063] In block 580, a metadata segment containing metadata is received by media player 145 from metadata service 170. The metadata includes API response and timing information associated with the active substream content.

[0064] In block 715, the client SDK or plug-in of the media player 145 decodes the ID3 cues in the metadata segment to extract the metadata. In block 720, the client SDK parses the extracted metadata to extract features associated with customizing the interaction of the media player 145. Extracted features include disabling VCR-type controls for fast-forwarding or skipping the active substream content, disabling volume control during content delimiter intervals, and enabling click-through functionality. The entire video area or any subset thereof can be converted into an addressable space on which clicking can forward the user to a page or service associated with the active substream content, enabling "companion ads" shown along with the video content to enable advertising opportunities outside of the streaming content, achieving accurate impression counting as applied specifically to inserted advertising content, and / or other possible customizations of desired player behavior based on the content of the active substream content.

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

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

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

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

[0069] In block 550 , after receiving the request for metadata, the metadata service 170 retrieves the API response from the 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 remaining for the active substream content, the duration of the active substream content, or the number of active substream content segments in a content delimitation interval.

[0070] In block 810, the metadata service 170 generates an ID3 queue containing the metadata. In block 815, the metadata service 170 sends the ID3 cue in a transport stream (TS) segment using the metadata segment to the media player 145. The TS segment is sent in response to the media player 145's request for metadata. The metadata is extracted from the ID3 cue by the media player 145 to customize the behavior of the media player 145 during playback of a video stream with active substream content.

[0071] Specific details are given in the above description to provide a thorough understanding of the embodiments. However, it will be understood that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order to avoid obscuring the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.

[0072] The above-described techniques, blocks, steps, and means can be implemented in various ways. For example, these techniques, 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 in 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 above-described functions, and / or combinations thereof.

[0073] Also, it should be noted that the embodiments may be described as a process that is depicted as a flowchart, flow diagram, swim diagram, data flow diagram, structure diagram, or block diagram. While the depiction may describe operations as a sequential process, many of the operations may be performed in parallel or concurrently. Additionally, the order of operations may be rearranged. A process terminates when its operations are completed, but may have additional steps not included in the diagram. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.

[0074] Furthermore, embodiments may be implemented by hardware, software, scripting languages, firmware, middleware, microcode, hardware description languages, and / or any combination thereof. When implemented in software, firmware, middleware, scripting languages, and / or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium. A code segment or machine-executable instructions may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a script, a class, or any combination of instructions, data structures, and / or program statements. A code segment may 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, forwarded, or transmitted by any suitable means including memory sharing, message passing, token passing, network transmission, etc.

[0075] For a firmware and / or software implementation, the methods may be implemented with modules (e.g., procedures, functions, etc.) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software code may be stored in a memory. The memory may be implemented within the processor or external to the 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 or number of memories or the type of medium on which the memory is stored.

[0076] Additionally, as disclosed herein, the term "storage medium" can refer to 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 capable of storing or carrying one or more instructions and / or data.

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

Claims

1. 1. A method of operating a media player to provide customized interaction of the media player based on metadata during playback of a video stream on the media player, the method comprising: receiving a playlist for playing the video stream, the playlist including uniform resource identifiers (URIs) for metadata inserted into the playlist by an origin server; sending a request for the metadata to the origin server, the request being associated with an insertion of active sub-stream content in playback of the video stream and sent during playback of the video stream on the media player; receiving the metadata; determining features associated with the active sub-stream content based on the metadata; and customizing the interaction of the media player during playback of the active sub-stream content based on the features associated with the active sub-stream content; A method for providing

2. The method of claim 1 , wherein the playlist further comprises a zero-second duration segment associated with the request for the metadata.

3. The method of claim 1 or 2, further comprising providing the analytical information as named by the metadata to an analytical information repository.

4. 4. The method of claim 1, wherein the functionality includes disabling video cassette recorder (VCR) type controls for fast-forwarding or skipping the active substream content, disabling volume control at substream delimiter intervals, and / or enabling click-through functionality.

5. The method of any one of claims 1 to 4, wherein a plug-in is used by the media player to analyze the metadata to customize the interaction of the media player.

6. The method of any one of claims 1 to 5, wherein the video stream is in HyperText Transfer Protocol (HTTP) Live Streaming (HLS) format, Dynamic Adaptive Streaming over HTTP (DASH) format, or SCTE-35 format.

7. 7. The method of claim 1, wherein the metadata includes timing information of the active sub-stream content and application programming interface (API) responses obtained by a metadata service using a URI for the metadata inserted in the playlist.

8. The method of claim 7 , wherein the API response comprises a Video Ad Serving Template (VAST) response.

9. A media player, a communication interface; Memory and a processor coupled to the communication interface and the memory; Equipped with The processor: receiving a playlist for playing a video stream, the playlist including uniform resource identifiers (URIs) for metadata inserted into the playlist by an origin server; sending a request for the metadata to the origin server, the request being associated with an insertion of active sub-stream content in playback of the video stream and sent during playback of the video stream on the media player; receiving the metadata; determining features associated with the active sub-stream content based on the metadata; and customizing the media player's interaction during playback of the video stream based on the features associated with the active sub-stream content; a media player configured to perform functions including:

10. 10. The media player of claim 9, wherein the playlist further includes a zero-second duration segment associated with the request for the metadata.

11. 11. The media player of claim 9 or 10, wherein the processor is further configured to provide analytical information as named by the metadata to an analytical information repository.

12. 12. The media player of claim 9, wherein the functionality includes disabling video cassette recorder (VCR) type controls for fast-forwarding or skipping the active sub-stream content, disabling volume control at sub-stream delimiter intervals, and / or enabling click-through functionality.

13. 13. The media player of any one of claims 9 to 12, wherein the processor is further configured to execute a plug-in to analyze the metadata to customize the interaction of the media player.

14. 14. The media player of any one of claims 9 to 13, wherein the video stream is in HyperText Transfer Protocol (HTTP) Live Streaming (HLS) format, Dynamic Adaptive Streaming over HTTP (DASH) format, or SCTE-35 format.

15. 15. The media player of claim 9, wherein the metadata includes timing information of the active sub-stream content and application programming interface (API) responses obtained by a metadata service using a URI for the metadata inserted in the playlist.

16. 16. The media player of claim 15, wherein the API response includes a Video Ad Serving Template (VAST) response.

17. 1. A non-transitory computer-readable medium having embedded thereon instructions for providing customized interaction of a media player based on metadata during playback of a video, the non-transitory computer-readable medium comprising: The instructions, when executed by one or more processors of the media player, cause the media player to: receiving a playlist for playing a video stream, the playlist including uniform resource identifiers (URIs) for metadata inserted into the playlist by an origin server; sending a request for the metadata to the origin server, the request being associated with an insertion of active sub-stream content in playback of the video stream and sent during playback of the video stream on the media player; receiving the metadata; determining features associated with the active sub-stream content based on the metadata; and customizing the media player's interaction during playback of the video stream based on the features associated with the active sub-stream content; A non-transitory computer-readable medium for causing the execution of

18. 20. The non-transitory computer-readable medium of claim 17, wherein the playlist further comprises a zero-second duration segment associated with the request for the metadata.

19. 19. The non-transitory computer-readable medium of claim 17 or 18, wherein the instructions, when executed by one or more processors of the media player, cause the media player to provide analytics information as named by the metadata to an analytics information repository.

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