Will Holland is a Principal Software Engineer at ThreeWill. Will has proven to be adept at understanding a client’s needs and matching them with the appropriate solution. Recently he’s developed a passion for working with .NET, MVC, and cloud-based solutions such as Microsoft Azure and Microsoft 365.
The Challenge – How to View Embedded Videos in SharePoint
As more and more organizations make their move to the cloud, more and more interesting scenarios begin to arise, like his one of viewing embedded videos in SharePoint. One scenario that we’ve been dealing with a lot here lately at ThreeWill relates to larger organizations, comprised of two or more businesses, that each has its own Tenant. Some are seeking to consolidate into one tenant (via a Tenant-to-Tenant Migration), others are just looking on how to provide the most inter-Tenant collaboration possible. One thing they all have in common is that they want to allow their compatriots, from other organizations, to access content in their tenant without needing to create separate Azure Active Directory accounts for everyone. Coexistence is a buzzword I’ve been hearing a lot lately, but that’s another topic of conversation.
Azure Active Directory has a lot of support to provide B2B connections with your partner organizations. In short, for those unfamiliar with B2B, it essentially allows you to invite partner users into your tenant. This is accomplished by using their email address, an address that is connected to a different Azure Active Directory, and then “trust” that Azure Active Directory, to authenticate the guest.
For the most part, at least when consuming SharePoint and Teams content, these B2B guest users (who I’ll just refer to as guest users, or guests, for the rest of this blog) can do pretty much everything you’d want them to do from a collaboration perspective. However, one major challenge I’ve dealt with lately is the lack of anonymous/external access to videos in the Stream service. So while you can create wonderful videos to spread information for your users, store them in Stream, and then embed them all over the place – including modern pages – only “first class” users in your tenant will be able to actually view embedded videos in SharePoint.
It creates a rather cruddy user experience for B2B users, who instead are greeted with a not so lovely screen like below.
Thankfully, there is a feature on the roadmap that promises to enable anonymous access to videos in Stream. But unfortunately, it’s currently listed as “in-development,” despite having been a requested feature since at least 2016 when ‘Video’ was the Microsoft 365 video streaming app.
But what if you need this feature now?
First Approach: Use a File Viewer Webpart
This approach requires you to put your videos into a document library on the site you want to display the video. Once that’s done, you can add the “File Viewer” webpart to a page and point it to the video you wish to display. Once that’s done, you’ll have an embedded video on your page that users can play.
This approach accomplishes the task of sharing with guest users. Just as long as the guests in question have access to both the page where you’re displaying the webpart and the document library where the video is stored. It does, however, add some page load time.
Each time I loaded the page, I noticed that it took several seconds before the video was playable. Apparently, the page wants to download and transcode the video each time the page loads, as opposed to truly streaming the video. This might cause issues with large videos, or for users with particularly poor internet. I also noticed that even once the video was downloaded, trying to skip around the video was pretty sluggish.
Second Approach: Use the YouTube (or Embed) Webpart
As long as you don’t mind hosting your video content in a third-party video streaming service, such as YouTube or Vimeo, there are a couple of web parts that allow you to embed videos from these services. If you’re hosting your video content on YouTube, there is a YouTube web part available that you’d prefer to use. Otherwise, as long as your video service provider provides you with an embed code, you can simply use the embed webpart. Generally speaking, they do pretty much the same thing. The YouTube webpart allows you to simply paste in a YouTube URL and provides a few additional configuration options like start time and player controls.
Third Approach: Roll Your Own Webpart
If you find that you need to secure your video within O365 but need it to be stream-able and can’t afford to wait for Microsoft to deliver on guest access for Stream, there’s really only one avenue forward for you.
Create your own Webpart.
With the rise of SPFX, developing custom webparts has become far easier than ever before, at least relatively speaking. You’ll still need some development expertise, such as dealing with Microsoft’s PnP library and the React Framework…or at least have access to a quality partner that has those skills (wink-wink).
So, there are three approaches to allowing streaming of videos to all the users in the tenant. You also have the option to wait for Microsoft to roll out the guest access for Stream. Again, if you are needing to secure your video within O365, the third approach is the best option. Comment below any questions and I can get back to you.