Media APIs/Record and Download Use Cases
Recording and Downloading Media Use Cases
This is part of the work of the Media APIs Task force.
Background
This task force was initiated by a discussion in the TPAC 2012 on "Offline storage". Bryan Sullivan had suggested an agenda item for the Web & TV IG session:
- There is a proposal in Webapps to take the FileSystem API off REC track. But there is no alternate proposal or effort to develop an explicit Gallery API. The Gallery API was dropped from DAP earlier when the FileSystem API was handed to Webapps, and gallery use cases expected to be implemented on top of them, e.g. with metadata extensions etc.
- The ability to manage and access large amounts of locally stored content (local meaning on the device or in the local network) is key to enabling offline use cases. IMO this is one of the top 3 gaps in the current Web platform support for Web & TV (the other two are adaptive streaming and content protection). We either need to ensure that the File*/FileSystem APIs support these use cases, or that we have feasible support for network-local storage management/access from Web apps.
- Network-local in this case means something accessible via HTTP (even device-locally served) or abstracted e.g. through a Gallery Intent (e.g. Pick Media Intent) which allows the storage of media as well as "picking" something to play. But for local storage accessed directly through JavaScript APIs exposed by the Web browser/runtime (the preferred capability), we need either the earlier-envisioned functionality of the DAP FileSystem API, or Indexed DB APIs and storage support that supports in essence a high-performance/volume virtual filesystem managed by the browser.
A summary of the discussion on this agenda topic:
- Users want to download text, videos, etc content which needs to be locally cached, e.g. "download and go" or "download and view later" use cases.
- Note: The Web & TV IG's Requirements for Home Networking Scenarios includes a use case for Control of Content Recorders but not specifically for local storage on the end-user device.
- However the current options for locally caching large amounts of content (e.g. videos) are limited to use of the Indexed Database API, perhaps with support of a filesystem abstraction library such as the idb.filesystem.js.
- Defining the needed functionality (e.g. recording, downloading and playing from download ) first would enable other groups to determine the supporting technical approach, e.g. whether it's a database or file system API.
- There is interest in this topic, and a task force will be proposed.
Use Cases
Use cases from this document have been merged into the master list of use cases for the Media APIs task force.