Patent Description:
Over-the-top media services have grown in popularity. Such services deliver audio-video content to end users over the Internet (e.g., using HTTP), bypassing traditional cable, over-the-air, and satellite delivery channels.

Audio-video content may include, for example, a live broadcast of a sporting event. In this context, there is demand for alternative content such as highlights to supplement the live broadcast. Conventionally, audio-video streams of alternative content are made post production. For example, at the conclusion of a live broadcast, a recording of the source broadcast is edited using a linear editor and the alternative content is produced. However, the alternative content is not made available for consumption by end users until after conclusion of the live broadcast.

Accordingly, there is need for improved or alternate ways of providing such alternative content. <CIT> discloses a media presentation and delivery system handling media content distribution via a content delivery network. An event opportunity server is configured to instruct playback of dynamically generated personalized media content at identified candidate time intervals. <CIT> discloses systems that enable personalized recap clip sequences.

The present invention is as defined by the appended independent claims, which find support in <FIG> and its corresponding part of the description. The remaining embodiments described in the description are to be construed within the limitations of the independent claims.

In accordance with one aspect, there is provided a computer-implemented method for providing alternative content in audio-video streams. In accordance with a further aspect, there is provided a computer-implemented method for playing alternative content in audio-video streams. The methods are set out in the independent claims appended hereto.

Many further features and combinations thereof concerning embodiments described herein will appear to those skilled in the art following a reading of the instant disclosure.

These drawings depict exemplary embodiments for illustrative purposes, and variations, alternative configurations, alternative components and modifications may be made to these exemplary embodiments.

<FIG> is a network diagram for an example over-the-top (OTT) media service that delivers audio-video content to end users, in accordance with an embodiment. The OTT media service includes a content streaming system <NUM> that serves audio-video streams for consumption by end users. The audio-video streams include primary content streams, such as for a live broadcast, and also include alternative content streams, such as for highlights of the live broadcast in some embodiments. In some embodiments, such alternative content streams can be served before the end of the live broadcast.

As depicted, content streaming system <NUM> is interconnected with a plurality of content sources <NUM> and a plurality of client devices <NUM>, by way of a communication network <NUM>. Content streaming system <NUM> receives content from a content source <NUM> and processes the content to create alternative content in manners disclosed herein. Such alternative content is streamed to client devices <NUM> for consumption by end users.

In one example use case, an end user watching a live broadcast of a sporting event may request and receive alternative content corresponding to a highlights reel. After watching this alternative content, which is made available before the end of the live broadcast, the end user can resume watching the live broadcast.

In the depicted embodiment, each content source <NUM> may be a conventional source of audio-video content such as, for example, a television station or an Internet live stream. For example, a content source <NUM> may receive linear content by way of a satellite signal, a radio frequency (RF) antenna signal, or a dedicated portion of network <NUM>. The received linear content is encoded by a plurality of encoders into multiple bitrates and multiple formats. As will be appreciated, for live broadcasts, encoding is performed in real time or near real time. Encoders may reside at a content source <NUM>. For example, encoders may reside at a content source that is a local television station affiliate. Encoders may also be remote from a content source <NUM>, and be connected therewith by network <NUM>. Encoded content, in various bitrates and formats, is transmitted from the encoders to content streaming system <NUM>. In some cases, encoded content may be transmitted to multiple recipients, e.g., by way of a multicast transmission.

Each client device <NUM> is a device operable by an end user to play streamed audio-video content. For example, a client device <NUM> may be a digital media player, a set-top box, a video game console, each connected to a display device for playing streamed content. A client device <NUM> may also be SmartTV device or a personal computing device such as a laptop computer, a tablet computer or a smartphone, each having an integrated display screen. As detailed herein, each client device <NUM> include software adapting it to provide a user interface for alerting an end user when alternative content is available, and for requesting and displaying such alternative content.

Network <NUM> may include a packet-switched network portion, a circuit-switched network portion, or a combination thereof. Network <NUM> may include wired links, wireless links such as radio-frequency links or satellite links, or a combination thereof. Network <NUM> may include wired access points and wireless access points. Portions of network <NUM> could be, for example, an IPv4, IPv6, X. <NUM>, IPX or similar network. Portions of network <NUM> could be, for example, a GSM, GPRS, <NUM>, LTE or similar wireless networks. Network <NUM> may include or be connected to the Internet. When network <NUM> is a public network such as the public Internet, it may be secured as a virtual private network.

In the depicted embodiment, portions of network <NUM> interconnecting content streaming system <NUM> with client devices <NUM> are adapted for transmission of audio-video streams over HTTP. In other embodiments, other protocols may be used for transmission of audio-video streams.

Content streaming system <NUM> may transmit audio-video content to a client device <NUM> using adaptive bitrate (ABR) streaming. ABR streaming may be implemented using HTTP Live Streaming (HLS), Microsoft HTTP Smooth Streaming (HSS), MPEG-DASH streaming, or the like.

<FIG> is a high-level schematic of content streaming system <NUM>, in accordance with an embodiment. As depicted, content streaming system <NUM> includes a content controller <NUM>, a content packager <NUM>, a stream analyzer <NUM>, an alternative content manifest generator <NUM>, and a VOD generator <NUM>.

Content controller <NUM> controls the delivery of content to one or more client devices <NUM>. Content controller <NUM> authenticates a client device <NUM>, and establishes a secure communication channel between content streaming system <NUM> and client device <NUM> for transmission of audio-video. Establishing this secure communication channel may include, for example, transmitting cryptographic keys effective for a particular session. Content controller <NUM> controls provisioning of resources at system <NUM> for servicing client device <NUM> for the duration of a session, e.g., so long as client device <NUM> transmits periodic keep-alive signals to content controller <NUM>. Content controller <NUM> causes such resources to be released at the end of a session.

Content controller <NUM> receives requests for content from client devices <NUM>. In response to each such request, content controller <NUM> transmits to client device <NUM> an URL of a content manifest file, such as an ABR manifest file.

Content controller <NUM> transmits a notification signal to client device <NUM> when alternative content is available at system <NUM> for streaming to a client device <NUM>.

Content packager <NUM> receives primary content, e.g., from one or more content sources <NUM>. The primary content may include content encoded in a plurality of bitrates and formats. Content packager <NUM> generates a primary manifest data structure that includes data describing content available at system <NUM> for access by client devices <NUM>. For example, the manifest data structure may describe available content segments, each segment pertaining to a portion of content separately available for access and subsequent playback at a client device <NUM>. Content packager <NUM> also generates the segments files referenced in the primary manifest data structure in a format suitable for client device <NUM>, e.g., HLS, HSS, MPEG-DASH, or the like. Optionally, content packager <NUM> may encrypt the segment files, e.g., using a session key provided by content controller <NUM>.

In the depicted embodiment, the primary manifest data structure includes one or more manifest files. <FIG> and <FIG> show example manifest files in HLS format. In particular, <FIG> shows the contents of a master manifest file <NUM>. As shown, this file includes metadata descriptive of the stream including, e.g., metadata describing the stream bandwidth, resolution, codecs used, and framerate. This file also includes a reference <NUM> to a second manifest file <NUM> named "vX-XXX-XXX. <FIG> shows the contents of second manifest file <NUM>. As shown, second manifest file <NUM> includes line entries for a plurality of segments <NUM>. The second manifest file <NUM> identifies the content type. In this case, the #EXT-X-PLAYLIST-TYPE identifies the content type to be "VOD", which represents video-on-demand content. For a live broadcast, the content type would be "EVENT", for example.

In other embodiments, the manifest may be provided in another format, e.g., as appropriate for other ABR streaming implementations such as HLS, HSS, MPEG-DASH streaming, or the like.

In some embodiments, content packager <NUM> generates the manifest file and referenced segment files in a just-in-time manner, e.g., responsive to a request from a client device <NUM> or as new content segments become available. In such embodiments, content packager <NUM> may be referred to as a just-in-time (JIT) packager.

In the depicted embodiment, stream analyzer <NUM> processes the live stream data to identify content segments that contain alternative content. Alternative content segments may be identified in various ways. In one example, stream analyzer <NUM> processes the audio portion of an audio-video stream to analyze crowd reactions, e.g., elevated crowd noise level in response to a scoring play. In another example, stream analyzer <NUM> processes audio data of an audio-video stream to detect words such as "Goal", "Penalty", "Overtime", or the like.

In some embodiments, stream analyzer <NUM> processes data from a social media platform, which may be collected by way of an application programming interface of the platform or by scraping data from the platform. Stream analyzer <NUM> may process such social media data to detect spikes in the number of posts, to detect excitement based on sentiment analysis of social media, and/or to detect social media voting for popular alternative content segments. Timestamps from social media posts are cross-referenced to timestamps in content streamed by system <NUM> to facilitate identification of alternative content segments.

Upon identifying content segments that contain alternative content, stream analyzer <NUM> generates an alternative content data structure that includes data identifying alternative content segments. In the depicted embodiment, this data structure includes one or more XML files. <FIG> shows an example XML file <NUM> that includes two indicators <NUM>, namely two "ac-item" XML tags. Each tag indicates a segment, identified by a start time and an end-time, as being an alternative content segment. As shown, the two alternative content segments are identified, namely, "segmentid-<NUM>" and "segmentid-<NUM>". In other embodiments, the alternative content data structure may be defined in a format other than XML; for example, the alternative content data structure may be defined using a format such as JSON, YAML, or the like.

As shown in <FIG>, the alternative content data structure generated by stream analyzer <NUM> may also include metadata describing some or all of the alternative content segment. For example, as shown, XML file <NUM> includes scoring metadata that indicates that a score of <NUM> has been associated with segment "segmented-<NUM>". This score, may be used, for example, by client device <NUM> to filter for particularly highly scoring alternative content segments.

Alternative content manifest generator <NUM> generates an alternative content manifest data structure that includes data describing alternative content segments available at system <NUM> for access by client devices <NUM>. Alternative content manifest generator <NUM> generates this alternative content manifest data structure by modifying the primary manifest data structure generated by content packager <NUM> so that it includes only entries for segments that have been identified as containing alternative content.

To this end, alternative content manifest generator <NUM> receives the manifest data structure generated by content packager <NUM> and receives the alternative content data structure generated by data analyzer <NUM>. Alternative content manifest generator <NUM> generates the alternative content manifest data structure by modifying the primary manifest data structure to remove each entry for a segment that is not identified in the alternative content data structure as being an alternative content segment.

In some embodiments, alternative content manifest generator <NUM> generates an alternative content manifest data structure by personalizing the content for a particular viewer. In one example, the content can be personalized based on the particular viewer's preferences for alternative content. In another example, the content can be personalized to include advertising targeted to the particular viewer.

In the depicted embodiment, the alternative content manifest data structure includes a manifest file. <FIG> shows an example alternative content manifest file <NUM> in HLS format, which includes entries for a subset of the segments listed in <FIG>, namely, only alternative content segments <NUM>.

VOD generator <NUM> generates a VOD asset including both primary content, e.g., the live broadcasted content and alternative content identified by stream analyzer <NUM>. For example, the alternative content may be included as bonus content (e.g., a child asset) that supplements the primary content (e.g., a feature asset). VOD generator <NUM> may generate a VOD asset automatically upon conclusion of a live broadcast. VOD generator <NUM> may add an entry for the generated VOD asset in a VOD catalog accessible at client devices <NUM>. Optionally, VOD generator <NUM> may flag the VOD asset for manual review before adding it to the VOD catalog. In one example, VOD generator <NUM> generates a VOD asset including a primary manifest data structure (e.g., including manifest files <NUM> and <NUM>) and an alternative content manifest data structure (e.g., including manifest file <NUM>).

Each of content controller <NUM>, content packager <NUM>, stream analyzer <NUM>, alternative content manifest generator <NUM>, and VOD generator <NUM> may be implemented using conventional programming languages such as Java, J#, C, C++, C#, Perl, Visual Basic, Ruby, Scala, etc. These components of system <NUM> may be in the form of one or more executable programs, scripts, routines, statically/dynamically linkable libraries, or the like.

Client device <NUM> includes a graphical user interface (GUI) with elements operable by an end user to request alternative content. For example, while an end user is streaming primary content (e.g., a live broadcast of a sporting event), the GUI may present on screen a graphical indicator indicating the availability of alternative content (e.g., highlights from the sporting event). The end user may activate the indicator (e.g., by a button press) to interrupt streaming of the primary content, and begin streaming the alternative content. After the alternative content has been streamed, client device <NUM> automatically resumes streaming the primary content. For example, the client device <NUM> may automatically resume streaming the live broadcast at the current time stamp.

<FIG> shows an example screen <NUM> of the GUI presented at client device <NUM>, in accordance with an embodiment. In this example, an end user is watching a live broadcast of a hockey game. Because the end user began streaming after the game started, he or she may have missed highlights such as scoring plays. Screen <NUM> includes a "highlights" button <NUM>. The presence of button <NUM> indicates that alternative content in the form of highlights are available. Activation of button <NUM> by the end user causes client device <NUM> request an alternative content manifest from content streaming system <NUM>, and then begin streaming of alternative content segments. Once the end user has viewed these alternative content segments and "caught up" with the hockey game, client device <NUM> resumes streaming of the live broadcast.

The operation of content streaming system <NUM> and client device <NUM> is further described with reference to example service flows depicted in <FIG> and example sequences of actions depicted in <FIG> and <FIG>.

<FIG> is a service flow diagram for content streaming system <NUM> when streaming a live broadcast, in accordance with an embodiment. Flow begins at content source <NUM> where linear content is received at receiver <NUM> (arrow <NUM>). The received content is encoded at encoders <NUM> and then transmitted to content packager <NUM> of content streaming system <NUM> (arrow <NUM>). In the depicted embodiment, content packager <NUM> functions as the origin server of the ABR live stream.

Stream analyzer <NUM> acquires the live stream from content packager <NUM> (arrow <NUM>) by way of content delivery network <NUM>. In particular, stream analyzer <NUM> sends a request for a content manifest to content delivery network <NUM>, which triggers a cache miss, and causes the request to be sent onward to alternative content manifest generator <NUM> and then content packager <NUM>. Content delivery network <NUM> includes a distributed network of proxy servers and data caches interconnected by way of communication network <NUM> (<FIG>). Stream analyzer <NUM> analyzes the acquired live stream to identify alternative content segments in manners disclosed herein.

Upon activation by an end user, client device <NUM> initiates a streaming session by way of a request to content controller <NUM> (arrow <NUM>), which may be referred to as a "roll" request. Content controller <NUM> provides data to client device <NUM> regarding where to request the stream, e.g., where to request a manifest.

Client device <NUM> sends a manifest request to content delivery network <NUM> (arrow 78a) corresponding to a live broadcast of a particular channel, which triggers a cache miss, thereby causing the request to be sent onward to alternative content manifest generator <NUM> (arrow 78b). This triggers a further cache miss, thereby causing the request to be sent further onward to content packager <NUM> (arrow 78c). During operation, client device <NUM> requests and receives the manifest periodically, which changes as a live broadcast progresses and new segments become available.

Client device <NUM> is alerted to the availability of alternative content for the particular live broadcast by content controller <NUM>. In response, client device <NUM> presents a button to the end user to request this alternative content. When the end user activates this button, client device <NUM> sends a new manifest request to content delivery network <NUM> (arrow 80a). Again, this triggers a cache miss, thereby causing the request to be sent onward to alternative content manifest generator <NUM> (arrow 80b). Alternative content manifest generator <NUM> requests alternative content segments from stream analyzer <NUM> (arrow 80c), which responds with at least one alternative content indicator.

Upon receipt of a manifest, whether containing primary content segments or alternative content segments, client device <NUM> requests the stream from content delivery network <NUM> (arrow 82a). When this triggers a cache miss, this causes the request to be sent onward to content packager <NUM> (arrow 82b). Content packager <NUM> requests an encryption key from content controller <NUM> for encrypting the segment (arrow <NUM>), and periodically refreshes the encryption key from content controller <NUM>. Content packager <NUM> streams the encrypted segment data to client device <NUM>.

Client device <NUM> provides periodic beacon requests to content controller <NUM> (arrow <NUM>).

VOD generator <NUM> generates a VOD asset including the primary content and the alternate content (arrow <NUM>).

Referring to <FIG>, at content source <NUM>, a content receiver receives linear content and provides the received linear content to a plurality of encoders (action <NUM>). The plurality of encoders encode the linear content into various formats and bitrates and then sends the encoded content to content packager <NUM> (action <NUM>). Content packager <NUM> generates a manifest data structure including data reflective of a plurality of content segments, e.g., an ABR manifest. Thereafter, stream analyzer <NUM> requests the manifest data from content packager <NUM> (action <NUM>), and content packager <NUM> provides the manifest data (action <NUM>). Stream analyzer <NUM> analyses stream data to generate at least one alternative content indicator, each indicating one of the plurality of content segments as being an alternative content segment.

Referring to <FIG>, client device <NUM> initiates a streaming session, e.g., by presenting a device identifier to content controller <NUM> (action <NUM>). Then, client device <NUM> sends a request for a primary content manifest from content streaming system <NUM> (action <NUM>), e.g., to tune into the live broadcast. This content manifest request is received by alternative content manifest generator <NUM>, which passes the request to content packager <NUM> (action <NUM>). Content packager <NUM> provides a manifest data structure including data reflective of a plurality of content segments to alternative content manifest generator <NUM> (action <NUM>), which relays it to client device <NUM> (action <NUM>). Client device <NUM> processes this manifest data structure to initiate streaming of a segment.

Stream analyzer <NUM>, upon determining that there is alternative content, sends an indicator of availability of alternative content to notify content controller <NUM> (action <NUM>). In turn, content controller <NUM> sends an indicator of availability of alternative content to notify client device <NUM> (action <NUM>). In response, client device <NUM> presents, on a screen for displaying streamed content, a graphical indicator indicating the availability of alternative content (<FIG>). In response to receiving user input reflective of a request for alternative content, client device <NUM> sends a request for alternative content to alternative content manifest generator <NUM> (action <NUM>). In an embodiment, the form of this request may be the same as a request for primary content (e.g., a live broadcast), but may additionally include a flag such as "highlights=true". In other embodiments, the flag varies depending on the type of alternative content identified by stream analyzer <NUM>. For example, there may be a flag such as "mature subject matter=true" to indicate the existence of alternative content that is mature subject matter. In some embodiments, there may be multiple flags if stream analyzer <NUM> identifies multiple types of alternative content.

Alternative content manifest generator <NUM> requests from stream analyzer <NUM> at least one alternative content indicator, each indicating one of the plurality of content segments as being an alternative content segment (action <NUM>). If any alternative content has been identified, alternative content manifest generator <NUM> obtains the at least one alternative content indicator from stream analyzer <NUM> (block <NUM>). When at least one alternative content indicator is received, alternative content manifest generator <NUM> modifies the primary manifest data structure to remove data reflective of those of the plurality of content segments that are not indicated by one of the alternative content indicators as being an alternative content segment. Alternative content manifest generator <NUM> then sends the modified manifest data structure to client device <NUM> (action <NUM>).

Upon receiving the modified manifest data structure, client device <NUM> interrupts streaming of a primary content segments and initiates streaming one of the plurality of content segments which contain alternative content. When streaming the alternative content segments concludes, client device <NUM> automatically resumes streaming a primary content segment (e.g., the live broadcast).

Embodiments have described above with reference to alternative content corresponding to highlights of a live sporting event. However, alternative content may correspond to any portion of content that is of particular interest to an end user, which may vary across users and across content types. For example, alternative content may corresponding to all portions featuring a particular person (such as a particular athlete), or all portions containing product placements. In another example, alternative content may correspond to all portions containing mature subject matter (e.g., strong language, violence, nudity, drug use, or the like). Such selection of alternative content may be used, for example, by parents or rating agencies to review and screen content. In some embodiments, stream analyzer <NUM> may be configured to identify multiple types of alternative content.

More generally, alternative content may correspond to any content identified as being likely of particular interest to a viewer based on pre-defined criteria.

Embodiments have described above with reference to a live broadcast example. However, alternative content streams may also be provided for on-demand content such as, for example, movies, music videos, or content stored in a Cloud DVR system. For such content, stream analyzer <NUM> may identify alternative content corresponding to best scenes, or scenes featuring a particular actor or actress. In some embodiments, content streaming system <NUM> may include a content management system that distributes on-demand content to content packager <NUM> and stream analyzer <NUM> for processing.

<FIG> is a schematic diagram of computing device <NUM> which may be used to implement content streaming system <NUM>, in accordance with an embodiment.

As depicted, computing device <NUM> includes at least one processor <NUM>, memory <NUM>, at least one I/O interface <NUM>, and at least one network interface <NUM>.

Each processor <NUM> may be, for example, any type of general-purpose microprocessor or microcontroller, a digital signal processing (DSP) processor, an integrated circuit, a field programmable gate array (FPGA), a reconfigurable processor, a programmable read-only memory (PROM), or any combination thereof.

Memory <NUM> may include a suitable combination of any type of computer memory that is located either internally or externally such as, for example, random-access memory (RAM), read-only memory (ROM), compact disc read-only memory (CDROM), electro-optical memory, magneto-optical memory, erasable programmable read-only memory (EPROM), and electrically-erasable programmable read-only memory (EEPROM), Ferroelectric RAM (FRAM) or the like.

Each I/O interface <NUM> enables computing device <NUM> to interconnect with one or more input devices, such as a keyboard, mouse, camera, touch screen and a microphone, or with one or more output devices such as a display screen and a speaker.

Each network interface <NUM> enables computing device <NUM> to communicate with other components, to exchange data with other components, to access and connect to network resources, to serve applications, and perform other computing applications by connecting to a network (or multiple networks) capable of carrying data including the Internet, Ethernet, plain old telephone service (POTS) line, public switch telephone network (PSTN), integrated services digital network (ISDN), digital subscriber line (DSL), coaxial cable, fiber optics, satellite, mobile, wireless (e.g. Wi-Fi, WiMAX), SS7 signaling network, fixed line, local area network, wide area network, and others, including any combination of these.

For simplicity only, one computing device <NUM> is shown but system <NUM> may include multiple computing devices <NUM>. The computing devices <NUM> may be the same or different types of devices. The computing devices <NUM> may be connected in various ways including directly coupled, indirectly coupled via a network, and distributed over a wide geographic area and connected via a network (which may be referred to as "cloud computing").

For example, and without limitation, a computing device <NUM> may be a server, network appliance, set-top box, embedded device, computer expansion module, personal computer, laptop, personal data assistant, cellular telephone, smartphone device, UMPC tablets, video display terminal, gaming console, or any other computing device capable of being configured to carry out the methods described herein.

In some embodiments, a computing device <NUM> may function as a client device <NUM>.

The foregoing discussion provides many example embodiments of the inventive subject matter. Although each embodiment represents a single combination of inventive elements, the inventive subject matter is considered to include all possible combinations of the disclosed elements. Thus if one embodiment comprises elements A, B, and C, and a second embodiment comprises elements B and D, then the inventive subject matter is also considered to include other remaining combinations of A, B, C, or D, even if not explicitly disclosed.

The embodiments of the devices, systems and methods described herein may be implemented in a combination of both hardware and software. These embodiments may be implemented on programmable computers, each computer including at least one processor, a data storage system (including volatile memory or non-volatile memory or other data storage elements or a combination thereof), and at least one communication interface.

Program code is applied to input data to perform the functions described herein and to generate output information. The output information is applied to one or more output devices. In some embodiments, the communication interface may be a network communication interface. In embodiments in which elements may be combined, the communication interface may be a software communication interface, such as those for inter-process communication. In still other embodiments, there may be a combination of communication interfaces implemented as hardware, software, and combination thereof.

Throughout the foregoing discussion, numerous references will be made regarding servers, services, interfaces, portals, platforms, or other systems formed from computing devices. It should be appreciated that the use of such terms is deemed to represent one or more computing devices having at least one processor configured to execute software instructions stored on a computer readable tangible, non-transitory medium. For example, a server can include one or more computers operating as a web server, database server, or other type of computer server in a manner to fulfill described roles, responsibilities, or functions.

Claim 1:
A computer-implemented method for providing alternative content in audio-video streams, said method comprising:
generating a primary manifest data structure including data reflective of a plurality of content segments of an audio-video stream, the plurality of content segments including content available for access and subsequent playback at a client device, the primary manifest data structure including at least one manifest file that includes metadata descriptive of the audio-video stream;
sending, to the client device, the primary manifest data structure;
upon receiving a request from the client device to view alternative content during streaming of at least one of the plurality of content segments of the audio-video stream, obtaining at least one alternative content indicator from a stream analyzer that processes the audio-video stream, each alternative content indicator corresponding to and indicating one of said plurality of content segments as being an alternative content segment of one or more alternative content segments, wherein the one or more alternative content segments are a subset of said plurality of content segments, wherein the one or more of alternative content segments comprise highlights of the audio-video stream;
generating an alternative content manifest data structure by modifying said primary manifest data structure to remove data reflective of those of said plurality of content segments from the primary manifest data structure that are not indicated by said one of said alternative content indicators as being an alternative content segment; and
sending said alternative content manifest data structure to the client device such that the client device initiates streaming of at least one of the subset of the plurality of content segments which contain alternative content contained in the unmodified primary manifest data structure and retained in the alternative content manifest data structure.