Skip to content

URL syntax identifying both connection and track #60

@wilaw

Description

@wilaw

It would be convenient to be able to represent both a connection to a MOQT endpoint and a WARP catalog track as a URL. This would allow a Content Management System to vend a single URL to a player which would give it the information it needs to both connect to a MOQT distribution network (MDN) and discover a catalog track.

WebTransport endpoints have the form of a http3 connection and may have several path segments for business purposes

https://mdn.com/customerID/appID

A track can be represented as a namespace + name as a pseudo relative URL

example.com/live/broadcastID/catalog

We can combine these and add in an access token

https://mdn.com/customerID/appID/example.com/live/broadcastID/catalog?token=12345

The MDN will know which segments its needs to parse to accept the connection. However, how does the player know where the namespace begins in order to issue the SUBSCRIBE? Some options:

  1. The player knows through some out-of-band information and we don't need to tell it. This seems fragile for interop.

  2. We specify that the first segment after the hostname is always reserved for the connection. Separators other than / may be used by the MDN vendor to provide ancillary information.

https://mdn.com/customerID-appID/example.com/live/broadcastID/catalog?token=12345

  1. We create a reserved path segment which identified the division between the two. In this case we use '!'

https://mdn.com/customerID/appID/!/example.com/live/broadcastID/catalog?token=12345

A second problem is that we need to tell the player that the query arg holds a token which should be extracted and supplied via the AUTHORIZATION TOKEN setup parameter , as well as a token for SUBSCRIBE, PUBLISH etc. For this, we can reserve a query arg name , for example 'warp-token'. Providers are not required to supply a token in this fashion (they may vend it as a separate asset to the player), but at least it provides an interoperable methd of providing a token to players which the content distributor does not control.

https://mdn.com/customerID/appID/!/example.com/live/broadcastID/catalog?warptoken=12345

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions