static fromManifestDB(offlineUri, manifestDB) {
    goog.asserts.assert(
        manifestDB.streams.length,
        'Cannot create stored content from manifestDB with no streams.');

    const converter = new shaka.offline.ManifestConverter(
        offlineUri.mechanism(), offlineUri.cell());

    /** @type {shaka.extern.Manifest} */
    const manifest = converter.fromManifestDB(manifestDB);

    /** @type {!Object} */
    const metadata = manifestDB.appMetadata || {};

    /** @type {!Array<shaka.extern.Track>} */
    const tracks = shaka.offline.StoredContentUtils.getTracks_(manifest);

    goog.asserts.assert(
        manifestDB.expiration != null,
        'Manifest expiration must be set by now!');

    /** @type {shaka.extern.StoredContent} */
    const content = {
      offlineUri: offlineUri.toString(),
      originalManifestUri: manifestDB.originalManifestUri,
      duration: manifestDB.duration,
      size: manifestDB.size,
      expiration: manifestDB.expiration,
      tracks: tracks,
      appMetadata: metadata,
      isIncomplete: (manifestDB.isIncomplete || false),
    };

    return content;
  }
@param {!shaka.offline.OfflineUri} offlineUri
@param {shaka.extern.ManifestDB} manifestDB
@return {shaka.extern.StoredContent}