我正在创建一个小窗口表单应用程序,它将根据查询返回视频列表。我正在使用此链接https://developers.google.com/youtube/v3/code_samples/dotnet一切正常,但是如果某个视频的所有者禁用了嵌入,那么我在尝试播放视频时遇到错误: "在youtube上观看此视频。其他网站上的播放已被视频点播功能禁用"。
所以现在我有两个问题
1)有没有办法播放该视频?
2)如果第一个问题的答案为否,那么我如何过滤那些嵌入已被其所有者禁用的视频。意味着我不想在我的列表中添加这些视频。
感谢。
答案 0 :(得分:0)
根据official documentation,每个视频都有status.embeddable
属性,您可以在代码中查看。
答案 1 :(得分:0)
无论使用何种语言,status.embedabble都是在成功调用Videos reference中使用的某个方法时的响应。
所以我建议使用方法列表作为示例。为了演示,我在此videos.list Try-it中放置了一个YouTube视频,并放置了#34;状态"作为部分参数。
而且我已经获得了可嵌入的状态:
"items": [
{
"kind": "youtube#video",
"etag": "\"7991kDR-QPaa9r0pePmDjBEa2h8/7NFYOO88j54fU9aKM8MsjN4zPro\"",
"id": "kIBdpFJyFkc",
"status": {
"uploadStatus": "processed",
"privacyStatus": "public",
"license": "youtube",
"embeddable": true,
"publicStatsViewable": true
}
}
]
答案 2 :(得分:0)
感谢所有答案。在浏览文档之后,我终于找到了过滤那些嵌入者被所有者禁用的视频的解决方案。
YoutubeService.Search.List方法的VideoEmbeddable属性需要Google.Apis.YouTube.v3.SearchResource.ListRequest.VideoEmbeddableEnum可以解决问题。
var searchListRequest = youtubeService.Search.List("snippet");
searchListRequest.Q = ""; // Replace with your search term.
searchListRequest.MaxResults = 50;
searchListRequest.Type = "video";
searchListRequest.VideoEmbeddable = SearchResource.ListRequest.VideoEmbeddableEnum.True__;
指定类型“视频”只会返回所有视频,播放列表和频道的视频内容。