Description

Unified Streaming is a software-based media streaming technology that enables live and on-demand video and audio content to be delivered to a variety of devices and platforms, including smartphones, tablets, PCs and smart TVs. It supports a wide range of streaming formats, including Apple HLS, Microsoft Smooth Streaming, MPEG-DASH and Adobe HDS. With Unified Streaming, content providers can optimize workflows, reduce costs and improve the end-user experience.

Unified Streaming`s Virtual Channel service provides a unified and simplified approach to streaming by aggregating different content sources, such as live and on-demand videos, into a single virtual channel. This allows viewers to access and enjoy a wide range of content through a consistent user experience, regardless of the device or platform they are using.

Supported Operations

Virtual Channel

Healthcheck

Get Channel and Transition Jobs

Get a list of all channels jobs. The list includes channel name and status uri.

Get Channel Detail

Get all available details of the channel.

Submit a job for Channels creation/update

Submits a job to create a channel or to modify an existing one. The request body must be a valid SMIL XML playlist. For VOD2Live playlusts, the SMIL head section must contain at least the two options: - vod2live (set to True) - vod2live_start_time, in a valid ISO8601 format, as supported by mp4split. For Live playlists, the SMIL must ... [WRITEME] The SMIL body section must be non-empty. If {channel} does not exist already, a job is scheduled to create one. When a job is successfully scheduled, a 200 status is returned. The response will include a 'task_id' and a 'status_url' which can be queried to check the job status. If {channel} exists, an update is attempted. This function is mostly dedicated to modify "future" channels that are not active yet (their vod2live_start_time has not yet expired). In fact, the update will fail if: - a creation/update job is pending or running already. In this case, 503 is returned. The update can be re-attempted later. - the channel has started already (e.g. vod2live_start_time in the past). In this case, a 400 error is returned: the operation is prevented because modifying an active channel would break running streams. If you really want to update an active channel and break playout, you can do so by forcing the operation with the `force` query parameter. Use this with extreme caution. NOTICE: if your intent is to switch the channel to different content (and keep the existing archive) you should use a "transition". If instead you need to completely obliterate the channel, use the "DELETE" endpoint.

Request Channel Deletion

Attempts to delete a channel. If the channel is not found, returns 404. If the channel is found but it has a pending or running creation/update job, it returns 503. If the channel is found and the task creation job is terminated (either successfully or with a failure), deletes the channel, removing the isml file, the remixed mp4 and all the related entries from the database. The deletion of a channel is only 100 percent safe if its vod2live_start_time is in the future, otherwise, running streams may break. Use with extreme caution.

Get VOD2Live delay

Get the fixed offset in seconds to delay VOD2Live outputs to simulate live encoder latency, in order to more closely align VOD2Live and Live source media timelines.

Set VOD2Live delay

Set a fixed offset in seconds to delay VOD2Live outputs to simulate live encoder latency, in order to more closely align VOD2Live and Live source media timelines. Delay must be a positive integer.

Delete VOD2Live delay

Delete the fixed offset in seconds to delay VOD2Live outputs to simulate live encoder latency, in order to more closely align VOD2Live and Live source media timelines.

Get Channel's ISML server manifest

Get the .isml server manifest file created by mp4split for this channel.

Get Channel Log

Get the command line parameters and stderr logs for both unified_remix and mp4split commands. If only a remix command is logged, i.e. because the remix process failed so mp4split wasn't run, the mp4split entry will be empty.

Get Channel Mp4split Log

Get the mp4split command line parameters, and the stderr logging from the process.

Get Channel Remix Log

Get the Unified Remix command line parameters, and the stderr logging from the process.

Gets a list of all pipelines associated to this channel for any format

Gets a complete list of all pipelines for this channel.

Gets the default pipeline for this channel and format

Gets the default pipeline associated to this channel for this format.

Set a default pipeline for the channel

Activate a Manifest Edit use case for this channel, based on the provided pipeline configuration. The request body must be a valid yaml pipeline configuration file. The use case is available at the default playout URI channel.isml/.{format}. The playout URI is returned on success for clarity.

Deletes the default pipeline for the channel

Deletes and deactivates a previously set default pipeline for this channel. The previously accessible playout URI will still be accessible, and will return the default manifest, without any specific Manifest Edit use case applied.

Get a list of any variant for this channel and its pipelines

Gets a list of all pipelines for this format, for any of the channel variant.

Gets pipeline for this channel variant and format

Gets the specific pipeline for this channel, format and variant.

Set a pipeline for this specific variant of the channel

Activate a Manifest Edit use case for this channel, based on the provided pipeline configuration. The request body must be a valid yaml pipeline configuration file. A channel variant will be created, which is available at the playout URI channel.isml/.{format}/?python_pipeline_config={variant}. The playout URI is returned on success for clarity.

Deletes the pipeline associated to this specific variant of the channel

Deletes the pipeline associated to this channel format and variant. The previously accessible playout URI will 404 after pipeline deletion.

Get Channel's SMIL

Get the SMIL playlist which was used to create this channel.

Get Channel's creation/update job status

Get the current status of a channel. Includes both the overall status ["Pending", "In Progress", "Success", "Failed"] and a detailed history.

Get Channel Transitions

Gets the complete list of transitions that have successfully been created for this channel.

Get Transition Detail

Get all available details of the transition.

Submit a job for Transitions creation/update

Submits a job to create a transition or to modify an existing one. The request body must be a valid SMIL XML playlist. For VOD2Live playlists, the SMIL head section must contain at least the two options: - vod2live (set to True) - vod2live_start_time, in a valid ISO8601 format, as supported by mp4split. For Live playlists, the SMIL must ... [WRITEME] The SMIL body section must be non-empty. If {transition} does not exist already, a job is scheduled to create one. When a job is successfully scheduled, a 200 status is returned. The response will include a 'task_id' and a 'status_url' which can be queried to check the job status. If {transition} exists, an update is attempted. This function is mostly dedicated to modify "future" transitions that are not active yet (their transition time has not yet expired). In fact, the update will fail if: - a creation/update job is pending or running already. In this case, 503 is returned. The update can be re-attempted later. - the transition is active already (e.g. transition time in the past). In this case, a 400 error is returned: the operation is prevented because modifying an active transition would break running streams. If you really want to update an active transition and possibly break playout, you can do so by forcing the operation with the `force` query parameter. Use this with extreme caution. NOTICE: if your intent is to switch the channel to a different content (and keep the existing archive) you should just add another "transition". If instead you need to remove the transition, use the "DELETE" endpoint. See the FAQ to understand how this may affect running streams.

Request Transition Deletion

Attempts to delete a transition. If the transition is not found, returns 404. If the transition is found but it has a pending or running creation/update job, it returns 503. If the transition is found and the task creation job is terminated (either successfully or with a failure), deletes the transition. All other transitions belonging to the same channels will not be affected and the channel will still be working. The deletion of a transition is only 100 percent safe if its transition time is in the future, otherwise, running streams may break. Use with extreme caution.

Get Transition's ISML server manifest

Get the .isml server manifest file created by mp4split for this transition.

Get Transition Log

Get the command line parameters and stderr logs for both unified_remix and mp4split commands. If only a remix command is logged, i.e. because the remix process failed so mp4split wasn't run, the mp4split entry will be empty.

Get Transition Mp4split Log

Get the mp4split command line parameters, and the stderr logging from the process.

Get Transition Remix Log

Get the Unified Remix command line parameters, and the stderr logging from the process.

Get Transition's SMIL

Get the SMIL playlist which was used to create this transition.

Get Transition's creation/update job status

Get the current status of a transition. Includes both the overall status ["Pending", "In Progress", "Success", "Failed"] and a detailed history.

Get License

Get Virtual Channel API's license

Get Version

Get Virtual Channel API's version string

Details
Preview

This item is available for early access. It is still in development and may contain experimental features or limitations.

Last Update

3 days ago

Includes
unified-virtual-channel-api-client