cloudflare-stream-wordpress icon indicating copy to clipboard operation
cloudflare-stream-wordpress copied to clipboard

Preload behaviour for video embed

Open B-Interactive opened this issue 3 years ago • 2 comments

Touched on here, the Cloudflare Stream Player's preload attribute has a little more to it than simply true or false. The attribute is considered a hint for browsers on how to handle preloading, so the behaviour may vary. If I understand, the hints mean the following:

  • preload=none / preload=metadata / not specifying anything Any of the above will just load the metadata needed to start video playback when requested.

  • preload=auto Will preload the beginning of the video.

  • preload=true Will preload the entire video.

As of 1cb20385ab9c7a9754a29d0b7315b36afadb45f5, preload=auto is used when preload is requested by a shortcode. I considered this a safer option, as preload=true could result in bill shock, and a poor end-user experience, if the implications aren't fully understood.

Open to discussion:

  1. Is auto the appropriate default when preloading is requested?
  2. Might the ability for the user to specify preload behaviour of beginning (auto) or entire video (true) be useful?

B-Interactive avatar Sep 14 '22 04:09 B-Interactive

My understanding is that those are the only three valid options for the preload attribute (none, metadata, and auto).

Does true actually do anything (different than auto)? If not, I was apparently just being pedantic in my earlier comment about it not being binary. I can't see a real-world reason to set it to none (and Stream may not respect it anyway), so in practice it's probably a binary of metadata or auto.

I think the shortcode could map the values:

  • auto and true -> auto
  • metadata and false -> metadata
  • none -> none

It seems like a toggle probably does work for the block:

  • "on" state -> auto
  • "off" state -> metadata

If nothing is set in the shortcode, metadata seems like a good default since it's the recommendation in the spec (per the above MDN link) and the Stream platform default.

davidmpurdy avatar Sep 14 '22 05:09 davidmpurdy

I think you're right, it is only those three (none, metadata, and auto). I went and re-checked my references and it looks like I misunderstood it. I thought I saw true described in a forum comment, but I can't put my finger on it now.

In any case, that considerably simplifies how it's approached.

B-Interactive avatar Sep 14 '22 05:09 B-Interactive