咨询是否存在Microsoft Stream的MS Graph API及外部网站视频流方案
核心结论:MS Graph 提供对应API支持
可以通过Microsoft Graph API获取OneDrive for Business/SharePoint中视频的CDN加速多分辨率流地址,直接在自有网站上实现类似Stream的播放体验。
具体实现步骤
1. 定位目标视频文件
首先需要获取视频对应的Drive ID和DriveItem ID:
- 调用
GET /sites/{site-id}/drive/root:/{视频文件的路径}(示例:/sites/MySite/drive/root:/Videos/demo.mp4),从返回结果中提取id(DriveItem ID)和parentReference.driveId(Drive ID)。
2. 获取视频流媒体信息
调用MS Graph API获取视频的多分辨率流地址:
GET /drives/{drive-id}/items/{item-id}/?$select=id,name,video
返回的video字段包含关键信息:
streams数组:每个元素对应一个分辨率的流,包含bitrate(比特率)、height(高度)、width(宽度)和url(CDN加速的播放地址)。- 这些
url直接指向Microsoft的CDN节点,支持自适应流式播放。
3. 在自有网站中集成播放
- HTML5 Video标签:可直接将不同分辨率的流地址作为
<source>标签的src,浏览器会自动根据网络情况切换最优分辨率:
<video controls> <source src="高分辨率CDN地址" type="application/vnd.apple.mpegurl"> <source src="中分辨率CDN地址" type="application/vnd.apple.mpegurl"> <source src="低分辨率CDN地址" type="application/vnd.apple.mpegurl"> </video>
- 第三方播放器:如果需要更稳定的自适应切换(比如HLS流场景),可以使用
hls.js等库,自动解析并切换最优分辨率的流。
权限与注意事项
- API权限:需为应用申请合适的MS Graph权限,比如应用权限
Files.Read.All(适合后台服务场景)或委托权限Files.Read(适合用户授权场景)。 - 文件权限设置:目标视频文件必须在OneDrive/SharePoint中设置为允许外部访问(比如公开共享),或者你的应用拥有该文件的访问权限,否则CDN地址会返回403错误。
- URL有效期:获取到的CDN流地址有一定有效期(通常几小时),如果需要长期播放,建议每次播放前调用API刷新地址。
内容的提问来源于stack exchange,提问作者BrandonStudio
相关产品推荐
相关产品推荐

