vembedr

library("vembedr")

Embedding and customizing videos in RMarkdown documents might seem like a complex task. It need not be.

embed_url("https://www.youtube.com/watch?v=_fZQQ7o16yQ") %>%
  use_start_time("1m32")

Even the most seemingly-intractable issues can be brought into focus with a clarifying framework.

Above, we used an embed function followed by a use function. Using embed_url(), you can create an embed object for any of these supported services, or you can use an id with a service-specific embed function:

  • YouTube: embed_youtube()
  • Vimeo: embed_vimeo()
  • Box: embed_box()
  • Microsoft Stream: embed_msstream()

You can read more about these services in vignette("embed"). Once you create an embed object, you can modify it with use functions:

  • start time: use_start_time()
  • formatting: use_align(), use_rounded()
  • responsiveness (for Bootstrap): use_bs_responsive()

You can read more about these modifications in vignette("modify").

Examples

To align the video horizontally within its container, use_align():

embed_url("https://www.youtube.com/watch?v=uV4UpCq2azs") %>%
  use_align("center")

To add rounded corners, use_rounded():

embed_youtube("lGTEUtS5H7I") %>%
  use_rounded()

If your HTML file uses Bootstrap, and want to make the size responsive to the width of the container, use_bs_responsive():

embed_url("https://www.youtube.com/watch?v=H9KYQ_tnTtc") %>%
  use_bs_responsive()

For example this does not work in the R vignette, but it does work in the pkgdown site.

Caveats

Just because a service publishes a video, this does not mean that you can embed it. For example, this is an amazing Otis Redding performance:

# does not embed, but you can watch it at Vimeo
embed_vimeo("45157591")