Downloading Office 365 Video

Updated 3/26/2016: Microsoft is now rolling out the ability to download videos in a much more elegant manner. 

One of the more popular features requested in Microsoft's Office 365 video portal is the ability to download the videos for offline use. As it stands today the user experience is that the video streams via your browser or mobile app and the user is not presented with any kind of download option in the UI.

But, we know that the Office 365 video portal is simply built on top of SharePoint so there must be a way to get at the actual video object somehow, right? Good news: you can, as long as you can construct the correct SharePoint URLs.

The root of your O365 Video portal is at this address:

https://[Tenant Name].sharepoint.com/portals/hub

Hitting that URL will simply take you to the O365 Video home page, which isn't super helpful for saving a video. In order to download a video you'll want to first identify the channel the video is in and then access this URL to see a SharePoint view of all content within that channel:

https://[Tenant Name].sharepoint.com/portals/[Channel Name]/pVid/Forms/Thumbnails.aspx 

Note that the /hub part of the previous URL is not necessary here and if your channel names have a space remember to replace the space with a hyphen, not your typical %20 encoding in the URL. SharePoint replaces the spaces with hyphens when it builds the site URL.

As an example, if my tenant name is confusedamused.onmicrosoft.com and my videos are in a channel called PDX then the URL to see the contents of that channel would be this:

https://confusedamused.sharepoint.com/portals/PDX/pVid/Forms/Thumbnails.aspx

Once you land on that URL you should see thumbnails of all your videos. Hover over any of them and hit the ellipses button to present a download option. Be sure to watch your video at least 5 times to justify the extra effort required to save it for offline access.

Alternatively, if you know the channel and video name you can access it directly with this format:

https://[Tenant Name].sharepoint.com/portals/[Channel Name]/pVid/[Video Title].mp4

In the case where your video title has a space in the name you'll want to use a %20 encoding as usual. And one last note - if a video channel name was ever changed the SharePoint URL will retain the original channel name's URL path despite the new display name. You can sort out what the original name was via some Fiddler traces if you're striking out on the URL you've created, but that is outside the scope of this post.

Lync Split-Domain & Static Route Conflicts

Something that is coming up more and more on Lync projects is the concept of integrating with newer video and collaboration services like Acano or Pexip. It's very important to understand that the deployment guides from these services request you create a static route from your Lync Front End pools to their MCUs. This in itself is not a red flag, especially since this is how some of the Polycom DMA or Cisco VCS integration has worked in the past.

However, this does pose a problem for organizations looking to leverage split-domain with Lync Online, or more commonly, Exchange Online being leveraged for voicemail while Lync Enterprise Voice remains on-premises. The issue here is that using your primary SIP domain as the Match URI in the static route to these video services prevents the signaling from getting to your federation Edge servers (at least, as of the latest Lync 2013 CUs.) The static routing configuration seems to kick in before the call is ever routed to the Edge, so the concept of the CsHostingProviders and the shared address space is never respected.

Let's walk through an example:

  • My primary SIP domain in Lync is @confusedamused.com.
  • I migrate my mailboxes to O365 and enable the Exchange Online shared address space. My voicemail is hosted in O365.
  • I want to host large meetings in O365 so I also enable the Lync Online shared address space for hybrid. I have some users homed to O365.

Everything works fine at this point.

  • I now want to integrate with Acano or Pexip. I create a static route for @confusedamused.com which goes from my Lync FEs to their bridges.

This breaks both Exchange Online voicemail routing and communication to Lync Online users.

The real solution here is to use a different SIP domain for your video routing, which as undesirable as this may be to end users, has arguably been a best practice for a long time. Create the static route matching @video.confusedamused.com, @acano.confusedamused.com, or @pexip.confusedamused.com. Take your pick, or create your own variation. It just needs to be different from the SIP domain you actually assign to Lync users.

This is important to grasp if you're using Lync Online or Exchange Online today and looking to add video, but probably even more critical from a roadmap standpoint. Exchange Online Unified Messaging is a fairly common use-case today, and Lync Online hybrid is becoming more and more popular. Planning ahead for these scenarios and any potential video integration will help you avoid these issues.