如何在SharePoint中自动导入视频章节元数据,无需手动添加?
核心结论
SharePoint原生不支持自动读取视频文件内嵌的章节元数据,默认仅支持手动添加章节,但可通过以下两种方案实现批量自动化处理:
方案1:基于SharePoint Graph API批量添加章节
可以扩展你已有的Python脚本,调用Graph API为上传后的视频批量写入章节信息,步骤如下:
- 用脚本批量将视频上传至SharePoint文档库(可使用
Microsoft Graph Python SDK或直接调用REST API)
- 用脚本批量将视频上传至SharePoint文档库(可使用
- 从你的章节数据源(比如之前生成章节的元数据文件)中提取对应视频的章节时间戳与标题
- 调用
POST /sites/{site-id}/drive/items/{item-id}/video/operations/addOrUpdateVideoParts接口传入章节数据
- 调用
- 简化示例代码:
import requests from azure.identity import ClientSecretCredential # 初始化身份认证 credential = ClientSecretCredential( tenant_id="你的租户ID", client_id="你的应用ID", client_secret="你的应用密钥" ) token = credential.get_token("https://graph.microsoft.com/.default").token # 章节数据示例 chapters = [ {"start": 0, "end": 120, "title": "开场介绍"}, {"start": 121, "end": 300, "title": "核心内容讲解"} ] # 调用API写入章节 api_url = "https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/{item-id}/video/operations/addOrUpdateVideoParts" headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} response = requests.post(api_url, json={"parts": chapters}, headers=headers) response.raise_for_status()
- 注意:需为应用注册配置
Files.ReadWrite.All或Sites.ReadWrite.All权限,且需等待视频完成SharePoint的媒体处理(上传后等待一段时间,确保视频状态为可播放)再调用接口
方案2:转换视频为SharePoint兼容的章节嵌入格式
部分视频元数据字段可能不被SharePoint识别,可调整ffmpeg命令,写入WebVTT格式的章节轨道:
- ffmpeg命令示例:
ffmpeg -i input.mp4 -i chapters.vtt -c copy -map 0 -map 1 -metadata:s:s:0 language=eng output.mp4
- 对应的
chapters.vtt格式:
WEBVTT 00:00:00.000 --> 00:02:00.000 开场介绍 00:02:01.000 --> 00:05:00.000 核心内容讲解
- 上传转换后的视频后,部分场景下SharePoint会自动识别WebVTT轨道作为章节,但兼容性不稳定,优先推荐API方案
补充提示
- 手动录入仅适用于少量视频,批量场景必须依赖自动化脚本或API
- 使用Graph API批量处理时,建议加入重试机制,避免因网络延迟或媒体处理未完成导致的请求失败
内容的提问来源于stack exchange,提问作者pastacosta
相关产品推荐
相关产品推荐

