Teams Meeting Recordings Moving from Stream Classic to ODSP
Updated: June 9, 2021
Announced at Ignite 2020, the move for Teams video recordings to use OneDrive storage is now in place (the move is really to store Teams meeting recordings in both OneDrive for Business and SharePoint Online, or ODSP for short). Tenants have been able to opt-in to use OneDrive to store recordings of Teams meetings since mid-October 2020.
The timeline for the roll-out has gone through several revisions but is currently:
October 19, 2020: Tenants can opt to use OneDrive to store new recordings of Teams meetings. (Complete).
January 7, 2021: All new recordings of Teams meetings are stored in OneDrive unless the organization explicitly choses to continue using Stream by updating their meeting policies. (Complete).
August 16, 2021: An incremental roll-out begins to switch tenants to store new recordings of Teams meetings to OneDrive even if their meeting policies are set to use Stream.
The most recent change removed the March 1, 2021 deadline for commercial and GCC tenants to move to OneDrive. Microsoft is also now saying that the roll-out in July to switch all tenants over to OneDrive will be incremental rather than a hard date. Commercial and GCC tenants now share a common date with education tenants, to which Microsoft had previously extended support until July to accommodate the school year.
Updating Teams Meeting Policies
Control over the choice of storage location is accomplished by updating Teams meeting policies to switch the RecordingStorageMode setting from Stream (the default) to OneDriveForBusiness. This currently can’t be done through the Teams admin center, but it’s an easy update to do in PowerShell using the latest Teams PowerShell module. This module contains the old Skype for Business Online cmdlets needed to update policies. With the module installed we can do the following ($O365Cred is a variable populated using the Get-Credential cmdlet). In this example, we update a single meeting policy to instruct Teams to store the recordings started by the users assigned the policy in OneDrive for Business.
# Connect to Teams and update the meeting policy
Connect-MicrosoftTeams -Credential $O365Cred
# Update the Teams meeting policy for US employees so that their meeting recordings are stored in OneDrive
Set-CsTeamsMeetingPolicy -Identity "U.S. Region Workers" -RecordingStorageMode OneDriveForBusiness
Saying that the storage is OneDrive for Business is a little misleading, but it might be explained because recordings for personal and group chats as well as meetings organized by a person and not tied to a channel end up in OneDrive. Channel meetings end up in the document library SharePoint team site for the team. In both cases, a folder called Recordings is used.
When the switch is effective, users see that recordings are being saved to OneDrive rather than Stream (Figure 1).
Figure 1: OneDrive for Business stores a Teams meeting recording
One thing I noticed is that those who record meetings do not receive email to tell them that their recording is ready to view. This might be linked with the lack of post-processing currently done when videos are stored in OneDrive for Business.
In this instance, the meeting is in a channel, so the recording is saved in SharePoint. We can see the MP4 file for the recording through the Teams Files channel tab, or by opening SharePoint. Figure 2 shows three recording files stored in the Recordings folder for a channel. Because SharePoint treats recordings like any other file, you can amend their properties, assign retention labels (but not yet sensitivity labels), and share them with other users, including people outside the tenant (subject to the restriction capability for the site).
Figure 2: Teams meeting recordings in a SharePoint Online folder
Permissions for meeting recordings stored in OneDrive are limited to internal users, even if guests participate in the call. If it is necessary to share a recording with an external user, the owner (the person who started the recording) must update the sharing list to include that user. Channel recordings stored in SharePoint can be accessed by any team member.
Teams Meeting Recordings and Storage
Only new recordings are stored for now, but Microsoft says they will deliver facilities to move old recordings over from Stream to OneDrive. When this happens, the storage currently charged against the Stream storage quota for the tenant will be absorbed by OneDrive and SharePoint quotas. You might then have to pay more attention to reporting the amount of storage consumed in SharePoint and OneDrive for Business.
Ups and Downs, but Mostly Up
Being able to share meeting recordings outside the tenant is a major change over the capabilities available in classic Stream that will be welcomed by many. Some downsides do exist. For instance, the automatic transcript and captions created by Stream and features like video trim and noise suppression aren’t yet available for videos stored in OneDrive. Microsoft is working to close any functionality gaps and are confident that everything will be in place to allow a complete switchover from classic Stream as scheduled.
The Office 365 for IT Pros eBook will cover the transition of video content from classic Stream to Stream 2.0 as it unfolds. Being able to change to reflect the actual state of Office 365 is a big advantage of an eBook.
Hi Tony! Thanks for this article and explaining how to change the storage location for MS Teams meeting recordings. I understand that organizations that have their O365 tenant hosted in an Azure data center which doesn’t support Microsoft Stream (classic) yet, cannot make use of Teams Live Events. Do you think there’s a chance that changing the storage location for Teams meeting recordings as described might – as a side effect – make Live Events available to those tenants?
We have A1 licenses and our O365 is located in the US. We are having trouble trying to locate team recordings now. Both private Meetnow and Meetings within a teams channel do not seem to be stored anywhere on the backend. We can’t find them in sharepoint or onedrive.
I opened a support ticket with microsoft and they are also complexed and where the recordings are being stored.
The person who recorded the meeting should be able to see it in the meeting chat and delete it there.
Loading...
The problem is there is no option to delete the recording. I just got off the phone with Microsoft Support and they are telling me its impossible to delete them before the 21 days.
Microsoft doesn’t relies that some records must be deleted for very good reasons…. We have students that can now access recordings. The only option I can think of is to delete the Channel or Team altogether just to remove the recording. Last option is basically nuclear, thanks Microsoft for removing features.
I wish I could help, but I don’t have an A1 license to test with, and my tenant is located in the EMEA region and the results I see might be different to what you see. Such is the delight of working in a multi-region cloud service…
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
Hi Tony! Thanks for this article and explaining how to change the storage location for MS Teams meeting recordings. I understand that organizations that have their O365 tenant hosted in an Azure data center which doesn’t support Microsoft Stream (classic) yet, cannot make use of Teams Live Events. Do you think there’s a chance that changing the storage location for Teams meeting recordings as described might – as a side effect – make Live Events available to those tenants?
I don’t know. I think there are other moving parts inside Stream (where the Live Events are processed) that need to be moved to Stream 2.0.
We have A1 licenses and our O365 is located in the US. We are having trouble trying to locate team recordings now. Both private Meetnow and Meetings within a teams channel do not seem to be stored anywhere on the backend. We can’t find them in sharepoint or onedrive.
I opened a support ticket with microsoft and they are also complexed and where the recordings are being stored.
According to the Microsoft support article, this is how it should work for A1 licenses: https://docs.microsoft.com/en-us/stream/portal-upload-teams-meeting-recording
Have you configured the tenant to use OneDrive storage instead of Stream classic?
How do we delete a recording before the 21 days?
The person who recorded the meeting should be able to see it in the meeting chat and delete it there.
The problem is there is no option to delete the recording. I just got off the phone with Microsoft Support and they are telling me its impossible to delete them before the 21 days.
Microsoft doesn’t relies that some records must be deleted for very good reasons…. We have students that can now access recordings. The only option I can think of is to delete the Channel or Team altogether just to remove the recording. Last option is basically nuclear, thanks Microsoft for removing features.
I wish I could help, but I don’t have an A1 license to test with, and my tenant is located in the EMEA region and the results I see might be different to what you see. Such is the delight of working in a multi-region cloud service…