Teams Real Simple with Pictures: Opting into SharePoint/OneDrive for Business as the location for Teams Meeting Recordings

This blog is part of a series on Teams. For more articles, check back often

Written: 11/10/2020 | Updated: N/A

Stream is changing. If you kept up to date with Ignite then you will know that it’s being re-imagined and rebuilt to integrate seamlessly with applications across the stack. One of the consequences of this change is that Teams Meeting Recordings (TMR) will – like all video – be stored within SharePoint (in the case of channel meetings) and OneDrive (in the case of non-channel or what we call private meetings). There is a lot of sense and upside to this. For example, video will now be able to be shared externally which was the Achilles heel with classic stream and which many users ended up doing anyway albeit moving the video manually. Secondly, we can now leverage Microsoft 365’s security and compliance functionality such as retention.

In terms of a roadmap, setting SPO/ODFB as the location of your TMR is an opt in process which the organisation administrator will need to do via Powershell. By November, the admin will have to specifically opt out and can only do so with Powershell be explicitly setting Stream as the continued storage destination. By early 2021, all organisations will be using SPO/ODFB as the meeting storage for their TMR’s. There will also be a number of features released in that time including

  • The Stream player for SPO/ODFB
  • Simple auto-expiration of TMR files as set in the TAC (60 days by default has been mentioned with a limit of 1 year. Retention policies applied will supersede this auto-expiration
  • Transcripts and closed captions for SPO/ODFB videos and subsequent transcript functionality (I.e. Enterprise Search, Legal Hold,)

You can check out the roadmap here as well as the limitations which include transcripts and the inability to prevent blocking the download of video (both of which will be patched in time). Of course, there is a lot more to write on about both Stream and TMR’s as these features are released. This will be a simple first step to opt in to the experience. The question that first springs to mind is – how does the video actually play if it’s not using Stream and there the stream player does not exist yet? Well, until the stream player is developed the video files will use the video player in OneDrive for Business and SharePoint.

This blog will cover

  • How to set SPO/ODFB as the storage locations for TMR’s

Some organisations may want to wait until the functionality is more developed whilst some, who have very simple video needs, may want to get in on the new experience as soon as possible. In terms of a migration, Microsoft have confirmed that it’s currently working on migration tools based upon Mover, which is uses to conduct file migrations from other cloud storage vendors such as Box

In addition, I have recently seen tickets in the tech community that have stated even after changing the location, videos are still being recorded to Stream. Microsoft have stated October for the opt in period so the functionality may not have hit your tenant yet, however by changing it in the meeting policy you can expect it to change when the functionality is released to your tenant


  • To opt into the new Teams Meeting Recording (TMR) Experience
  • To get ahead of the curve with the new Stream video experience


1.) Administrator role (I.e. Global Administrator, Teams Administrator)

2.) Per docs article, Skype for Business Windows Powershell Module (although you should be able to do this in the latest version of Teams module (1.1.6) now SfB has been integrated into it)


1.) Navigate to and select Download to download the Skype for Business Windows PowerShell Module

2.) Open the file

3.) Agree to the conditions then select Install

4.) Once installed select Close

5.) Restart your machine

6.) Once restarted, select Start then Windows Powershell folder. Right click on Windows Powershell and select More then Run as Administrator

7.) Enter

Import-Module SkypeOnlineConnector $sfbSession = New-CsOnlineSession Import-PSSession $sfbSession

8.) Enter teams administrator credentials and sign in with password

9.) Enter

Set-CsTeamsMeetingPolicy -Identity Global -RecordingStorageMode “OneDriveForBusiness”

Important note: this is setting for the global org wide default policy, if you have custom policies use -Identity (custom policy name)

10.) The policy has been applied

11.) You can ratify this by running

Get-CsTeamsMeetingPolicy -Identity Global

12.) Our job here is done. Recording a private meeting the recording is now saved into ODFB and recording a channel meeting it is now saved into SharePoint


ODFB: OneDrive for Business/Recordings

SPO: Documents/Channel Name/Recordings


  • If you have multiple meeting policies in your tenant assigned to users, you will need to apply these too. For example, the meeting policy used above is the global (org wide) default policy. If I had a subset of users who had a meeting policy called ‘MP1’ then the Powershell command should be Identity MP1. I have seen tickets in the community where some prepopulated messaging policies may not be able to be changed. In that case, create a custom meeting policy, assign and then change via shell
  • Remember to set this to policies created in the future in case you change a users meeting policy until SPO/ODFB storage becomes default
  • Policies can take a few hours to a few days to apply. If you record directly after applying the policy it will likely still go into Stream so check back regularly after changing it. As said above, the functionality may not be set for your tenant. This doesn’t invalidate the change, it simply means you’ve opted in and when the functionality becomes available TMR’s will start saving into SPO/ODFB
  • You can easily get a list of the meeting policies in your tenant by simply using the Get-CsTeamsMeetingPolicy command
  • If you want to take advantage of the new transcription ability when it comes in, you need to have transcription on in your meeting policy. You can set this in the TAC or do this in Powershell through the command Set-CsTeamsMeetingPolicy -Identity Global -AllowTranscription $true