Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support "individualization-request" message type #1565

Closed
rkuroiwa opened this issue Aug 29, 2018 · 7 comments
Closed

Support "individualization-request" message type #1565

rkuroiwa opened this issue Aug 29, 2018 · 7 comments
Assignees
Labels
flag: good first issue This might be a relatively easy issue; good for new contributors status: archived Archived and locked; will not be updated type: enhancement New feature or request
Milestone

Comments

@rkuroiwa
Copy link

Encrypted Media Extensions defines "individualization-request" message type
https://www.w3.org/TR/encrypted-media/#idl-def-MediaKeyMessageType.individualization-request

For my use case, I would like to specify a URL to send the messages to, just like specifying a license server URL.

@joeyparrish joeyparrish added the type: enhancement New feature or request label Aug 29, 2018
@joeyparrish joeyparrish added this to the v2.5 milestone Aug 29, 2018
@joeyparrish joeyparrish added the flag: good first issue This might be a relatively easy issue; good for new contributors label Aug 29, 2018
@joeyparrish
Copy link
Member

Since it seems easy, we will try to fit it into v2.5. We just need to decide how the configuration will work.

We could create an additional URL field (per key-system) for this type of message. Or we could create a map of message type to URL (per key-system).

Or, we could add message type to the Request object, and let advanced routing based on message type be handled by request filters.

@joeyparrish
Copy link
Member

The advantage of the request approach is that apps could handle all message types if they wish, and it wouldn't make our configuration any more complicated.

The down side is that (if I understand correctly), individualization messages won't ever be destined for the same server as licenses, so not configuring this would almost certainly lead to failures.

@rkuroiwa, is that accurate?

If individualization messages are special (must always go somewhere special), then a separate field might be a better reflection of this status, and make it easier to discover the solution to any problems encountered.

@rkuroiwa
Copy link
Author

I don't think it is the case that "individualization messages won't ever be destined for the same server as licenses". It just happens to be that my use case needs a separate URL. It feels more like an implementation detail or business logic.
What is going to be the default behavior if the user doesn't want to special case individualization-request messages, and just want to use the same URL?

I'm ok with shaka player propagating up the message type along with a Request object but I'm guessing that most use cases is simply sending the message somewhere else, rather than changing the content of the requests. Plus it requires extra network handling in the app.

@joeyparrish
Copy link
Member

I don't think it is the case that "individualization messages won't ever be destined for the same server as licenses". It just happens to be that my use case needs a separate URL. It feels more like an implementation detail or business logic.

I was thinking that most individualization requests would be going to some central location run by the DRM provider, and that licenses might be served by something specific to the application. If everything can be handled by the app's servers, why do we need this feature?

What is going to be the default behavior if the user doesn't want to special case individualization-request messages, and just want to use the same URL?

If a separate URL is not provided, it would default to the one provided for licenses.

I'm ok with shaka player propagating up the message type along with a Request object but I'm guessing that most use cases is simply sending the message somewhere else, rather than changing the content of the requests. Plus it requires extra network handling in the app.

A URL string config is definitely easier for an app developer than writing a filter callback. So there's that to consider.

@rkuroiwa
Copy link
Author

I was thinking that most individualization requests would be going to some central location run by the DRM provider, and that licenses might be served by something specific to the application. If everything can be handled by the app's servers, why do we need this feature?

I think this will be the majority of the use cases. I was just replying to the "won't ever be" part.
If the default behavior uses the URL for licenses I'm not too worried about cases where they happen to be the same endpoint.

I think it's easiest for the app devs to be able to specify a separate URL for individualization requests, but I'll leave it up to you folks to design the API :)

@joeyparrish
Copy link
Member

Okay. Then I think my gut says to offer a configurable URL string for the individualization requests, for simplicity, and to add the message type to DRM-related requests for generality. Anybody who wants the common thing can do it easily, and anybody who wants more detailed routing can still get the info they need to do that.

Thanks for talking this out!

@TheModMaker TheModMaker self-assigned this Aug 30, 2018
@shaka-project shaka-project locked and limited conversation to collaborators Nov 4, 2018
@joeyparrish
Copy link
Member

This feature was released in v2.5.0-beta2.

@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
flag: good first issue This might be a relatively easy issue; good for new contributors status: archived Archived and locked; will not be updated type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants