If you were not aware MS Stream is changing, all of the content will ultimately be stored within the SharePoint/OneDrive/Teams arena, its all SharePoint as you know.

For some you may already be storing your recorded video in Teams, but still be using Stream for your video. There is a migration plan and a roadmap so you should keep an eye on this.

The new version of Microsoft Stream – Microsoft Stream | Microsoft Docs

So what about now, never mind later when we have to worry about migrating, what about those of us who are ready to start using SharePoint a video repository today in advance of the Stream Changes.

Well MS have been thinking about this, in fact most of the capability to deliver video today is being retro fitted to deliver video better. It will continue to be developed and changed to be retro fitted to the new Stream capabilities.

You can read about that here.


Now there are some legacy Video capabilities in SharePoint, don’t use the legacy stuff, just use document libraries and the new modern parts for displaying our video. Then as they make the changes to Stream it will show here.

It’s going to get better so make sure you read and understand what’s coming


One thing that is not here today and is mentioned in the What’s Coming section is the ability to get an embed code.

Well this is something you can do yourself today using JSON and formatted columns.

You see the embedded page that is used in SharePoint and all thru the platform is a page called embed.aspx, this is what is utilised by the FileViewWebpart and this is what will be used in future, because to change it would cause so much disruption and data backfitting and url changes, well it not going to happen, this is page that is getting all the changes and all the new MS stream love as its this page that delivers it all for the platform.

Now you will have a problem with this “embed” code, especially in Chrome. This page has never had the capability know it does not have an auth token and to display a button to say open a popup to login, this is what MS Stream had once. This will need to be developed by MS in the future. So for now, your embed should either be part of an authenticated MS platform, or open these videos in a popup. If you are authenticating with AzureAD auth, but using your own cookies for your app and they are not synchronised with MS tokens, you will feel pain here also.

So on to the embed code and how to display it for your users.

Below is a picture of my list, I added a new column called EmbedUrl, this is because I’m lazy and I’m doing a column format, if you want to do a View Formatter then go mad.
Anyway, I dont use that field for holding data, I just used the Column formater on it.

This is the JSON I used in the Column Formatter to display the actual URL you will want to embed.

I haev rolled this out to a few users and they can use it, but there are some SharePoint Gotchas with this, if you right mouse over this link, and then click get link, its not getting that link its getting the standard item link from SharePoint,
You have to click it and copy it from the URL, now this is a bit poor, but I have spoken with a team member and they are aware folk will want to get this URL and embed in other places, so lets see what happens.

*Update to not do it for folders

  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "a",
  "txtContent": "=@currentWeb + '/_layouts/15/embed.aspx?UniqueId=' + substring([$UniqueId]1,37) + '&client_id=FileViewerWebPart'",
  "style" : {
    "visibility": "=if(((indexOf([$ContentTypeId],'0x0120')) == 0),'hidden', 'visible')"
  "attributes": {
    "target": "_blank",
    "href": "=@currentWeb + '/_layouts/15/embed.aspx?UniqueId=' + substring([$UniqueId]1,37) + '&client_id=FileViewerWebPart'"

This will get the player and just the player, none of the other SharePoint Chrome, for instance if you reference the file itself you get the SPList Item viewer with embedded video player, but that gives you the ability to navigate the other video items, if you close the video file, it takes you to the list, now this is a bad experience for viewing video which is why you should use the embed page even if its in a popup.

The last thing you should consider is the Permissions on your video , I have a specific Doc Lib for my video and create a new Permission Level. This grants everyone only read access at an item level, they cannot view the site or the list but the embed view will allow them to view that one file they linked to.