Following my post about the Petri videos taped in Washington DC last week, a reader asked me why we didn’t post the videos on Microsoft Stream. The reason is simple: the Office 365 roadmap includes a work item (2778) to support Public anonymous external video sharing that will allow Stream videos to be marked for public access and embedded in a web site. Today, that’s not possible and viewers need Office 365 licenses to access Stream content.
Hopefully, Microsoft will deliver external access by the end of 2019 as the roadmap indicates. Apart from making Stream much more useful as a platform for corporate video communications (internal and external), it could help ease the issues guest accounts have viewing Stream content in Teams, Outlook Groups, and Planner.
Transcribing Human Conversations
The question prompted me to take a fresh look at Stream video processing, especially some of the advanced features like face recognition and automatic transcripts. I uploaded the 1.2 GB MP4 file for the conversation between Paul Thurrott and myself about Outlook, Teams, and the meaning of life.
If a video’s language is English or Spanish, Stream processes automatic captions after a video has completed uploading. The captions are then concatenated to form a transcript. The process happens faster than I remember and the transcript itself seems to be more accurate. In many cases, the problems visible in the transcript were due to the humans when we didn’t express thoughts clearly or mumbled. Obviously Microsoft has been working hard in this area to improve the quality of automatic transcription, which wasn’t great when they first launched Stream in 2017. Figure 1 shows the video playing. You can see the transcript in a scrolling pane on the right-hand side.
Figure 1: Talking about Office 365 for IT Pros with Paul Thurrott in Washington DC
Editing a Stream Transcript
In most cases, the transcript serves as an adequate record of what was said, but if necessary the video owner (the person who uploads it to Stream) can edit the transcript to correct the text (Figure 2). Notice that the transcript is broken up into chunks of text that are tied to timestamps in the video (the captions). The transcript intermingles contributions from different speakers. For instance, the text I’m editing completes a remark by Paul with “Thank you” and then runs on to my brilliant response starting with “Yeah, well.” It would be nice if you could edit the transcript more comprehensively to separate out what each speaker says more obviously, but that might break the connection with the video timestamps.
Figure 2: Correcting a Stream transcript
Searching Transcripts
Apart from making transcripts look better, another good reason for editing transcripts to correct errors and improve the clarity of communications is that Stream supports transcript search. Because it’s based on the captions used to create the transcripts, don’t expect a full-text search facility. Instead, by using simple search terms that are likely to be found in transcript chunks, you should get reasonable results. Figure 3 is an example where we search Stream for “Office 365.” Notice that Stream tells you where in the video the transcript identifies the search term. These are clickable links that open the video and take you to the place in the video where the search term was found.
Figure 3: Searching Stream transcripts
Transition from Office 365 Video
Stream is obviously improving but the migration from the older Office 365 Video portal has been slow. The latest (this month) report from Microsoft says that we are now in Phase 1:
Phase 1 – Tenant Admin Opt-in (started rollout June 2019) Open to customers in specific regions who are not using the Office 365 Video REST APIs, Office 365 integrations (Delve, SharePoint Home, SharePoint mobile, Enterprise Search), and are comfortable with other differences between Office 365 Video and Stream. See more details about the migration experience for this phase.
It would be nice to complete the process… except that my videos that are in the older video portal are now a tad old and some qualify for historic status!
For more information about Stream, read the Office 365 for IT Pros eBook. In fact, we’ve just rewritten all our Stream content and will bring Stream back into the main book for the 2020 edition.
The transcription feature is ‘nice’ and the word recognition works better than I expected, but unless MS prefixes *who* is speaking, normal conversations become a garbled unintelligible mess. Would work OK if just one person is performing a long monologue, though.
{"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}
Thank you very much for posting an informative and helpful post.
The transcription feature is ‘nice’ and the word recognition works better than I expected, but unless MS prefixes *who* is speaking, normal conversations become a garbled unintelligible mess. Would work OK if just one person is performing a long monologue, though.
I’m not sure that a long monologue would create any better text…
I think I got this link from another page in Office365ITPros.com, but this link is worth re-sharing… https://docs.microsoft.com/en-us/stream/media/stream-utils/cleanvtt.html if you want to d/load the transcript from Stream.