首先让我说我不是在问“如何检查以前上传的视频的状态”。我的问题是关于从上传的响应中获取视频的状态。我正在使用 dotnet 客户端,上传完成后,响应是一个Google.Apis.Youtube.v3.Data.Video
对象。该对象有一个名为的属性Status
,其中包含以下字段RejectionReason
:PrivacyStatus
和UploadStatus
。问题是只有 PrivacyStatus 和 UploadStatus 有值。RejectionReason 为空。Jeff Posnick 提到过(在这里查看整个线程)
作为上传响应的一部分,无法确定视频是否重复,因为 YouTube 在处理视频之前不知道视频是否重复,并且在上传完成后进行处理
这有点奇怪,因为当我在上传后立即发出 video.list 时,API 会返回上传视频的状态。因此,即使视频没有发布,而且 YouTube 似乎仍在索引/处理视频,它已经知道“刚刚上传的视频”的状态。那么为什么它不能将状态作为响应的一部分返回呢?
响应中包含状态很重要,因为如果没有,那么在代码中,每次上传时我们都必须执行两次 API 调用:(1) insertmediaupload 然后 (2) video.list。这是一项非常昂贵的操作,尤其是并非所有上传都是重复的。
编辑 作为对 Jeff-Posnick 在下方评论的回应,问题是“API 是否可以等待几秒钟并检查处理是否完成,然后将状态作为响应的一部分包含在内?”。
由于我所看到的行为,我提出了这个问题:That's a bit strange because when I issue a video.list right after the upload the API returns a status for the uploaded video
. 但我一直在使用 API 并得到不一致的结果。我一遍又一遍地上传相同的视频,有时会出现“重复”状态,有时则没有。请注意我采取的步骤,上面的 #1 和 #2。这两个 API 调用之间没有其他代码。