-
Notifications
You must be signed in to change notification settings - Fork 61
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
Media type parameters for EPUB #1026
Comments
Do you mean something additional in the package? Or augmenting "application/epub+zip" (and ".epub")? |
Nothing in the package, just a media type parameter. For example this could be:
|
Wouldn't this break backward compat, the whole goal of 3.2? |
I don't think media type parameters would break anything. |
Probably okay from a backward compatibility perspective, as it's serving time only. But, I do kinda worry about information duplication (from package and encryption.xml, respectively), and the need to define a couple of more vocabularies. |
It depends. Proper HTTP toolkits or media type 'managing' libraries separate the media parameter from the rest, ie, if a client is not interested in those (as now) then the new parameters would not bother anyone. However, it is not impossible that some tools parse the media type 'by hand', via some regular expression, for example, and does not take the extra type into account: those may get it wrong. One could argue, though, that such implementations should be considered as buggy... |
In the case of an API (like OPDS), this wouldn't be duplication since this could trigger specific behaviour before you download that file. For FXL publications, some of them can be massive. It would make a real impact (not in a good way) if we had to download those to figure this out. |
Media type parameters are hard to sell. In my understanding, EPUB A11Y recommends that bookstores should extract metadata from EPUB publications and use it for filtering of EPUB publications. I think that we should do the same thing. |
Bookstores typically receive this kind of information in ONIX where there are specific tags and code lists. But we need a solution that works for everyone and is not dependent on ONIX. |
Just to confirm, you're proposing that the mimetype file at the root of the package would optionally contain a media type parameter, with new values to be determined? |
No, I'm proposing that we update our IANA registration to include additional parameters that would be used in HTTP headers and hypermedia APIs. If you already have the package, it's too late too rely on such hint. |
There's a separate parameters registry, fwiw: https://www.iana.org/assignments/media-type-sub-parameters/media-type-sub-parameters.xhtml If the However, I'd share @dauwhe's concern that adding these to the |
Consensus on the CG call today was this was not something we're ready to due with the 3.2 revision. With more implementer interest it would be worth discussing for EPUB 4. |
The issue was discussed in a meeting on 2021-03-04 List of resolutions:
View the transcript1. Media type parameter for EPUBSee github issue #1026. Wendy Reid: epub type parameter would add hint to epub mime type about the specific epub Brady Duga: clarify that this is changing IANA registration, not the mimetype file Wendy Reid: benjamin posted that there is an existing registry of IANA properties
Dave Cramer: without interest from multiple implementers I'm not sure that we should invest in this issue speculatively
|
While all EPUB files share the same media type and file extension, there are a number of things that can make a specific file impossible to open or render correctly on a given device and/or app.
The top two reasons why you might not be able to render an EPUB correctly are:
Adding these two info in the media type of the EPUB would make it possible for apps to trigger specific behavior: for instance an OPDS client could display a warning when downloading an FXL EPUB or it could disable the download button if the file is protected by an unsupported DRM.
The text was updated successfully, but these errors were encountered: