Create Stable, Direct-Access URLs to the Manifests
Right now, the API provides information to a custom application and isn't useful in a broader scope. This effort is designed to smooth over these rough edges and provide a simple, memorable, and stable URL to a given manifest.
This would be helpful to allow users to use other applications, such as VLC Player, to stream the content from this API without needing to discover the custom manifest URL and update it each time the event reloads.
Here is the intended URL structure:
https://example.com/direct/(smooth|dash|hls)?(/endpoint-name/event-name)?
Concrete examples with meaning:
- Smooth stream for the default endpoint and event: https://example.com/direct
- Smooth stream for the default endpoint and event: https://example.com/direct/smooth
- DASH (
mpd-time-csf
) stream for the default endpoint and event: https://example.com/direct/dash - HLS (
m3u8-aapl
) stream for the default endpoint and event: https://example.com/direct/hls - Smooth stream for the specified endpoint and event: https://example.com/direct/endpoint-name/event-name
- Smooth stream for the specified endpoint and event: https://example.com/direct/smooth/endpoint-name/event-name
- DASH (
mpd-time-csf
) stream for the specified endpoint and event: https://example.com/direct/dash/endpoint-name/event-name - HLS (
m3u8-aapl
) stream for the specified endpoint and event: https://example.com/direct/hls/endpoint-name/event-name
There isn't any support for only having an endpoint or event without the other. Either both are omitted and the default values are used or both are included and the provided values are used. So, https://example.com/direct/smooth/endpoint-name https://example.com/direct/event-name, etc... are all invalid examples and would create an ambiguous situation.
In effect, the workflow would look like this:
Note: These endpoints do NOT support more than one event name at a time, unlike the locators API, which can return many events. That would not make any sense in this scenario, since most players are only able to view one stream at a time.