我正在创建一个小窗口表单应用程序,该应用程序将根据查询返回视频列表。我正在使用此链接https://developers.google.com/youtube/v3/code_samples/dotnet一切正常工作,除了问题的问题是,如果所有者被某些视频的所有者禁用了嵌入,那么我会在尝试播放的同时遇到错误视频:"在YouTube上观看此视频。视频Onwer禁用了其他网站上的播放"。
所以我有两个问题
1)有什么方法可以播放该视频?
2)如果第一个问题的anwser是否,那么我如何过滤那些被其所有者禁用的嵌入的视频。意味着我不想在列表中添加这些视频。
谢谢。
根据官方文档,每个视频都有status.embeddable
属性,您可以在代码中检查。
status.embedabble,无论使用什么语言,都是随时称为视频参考中使用的一种方法。
因此,我建议例如使用方法列表。为了证明,我将YouTube视频放在此视频中。清单try-it和将"状态"放置为部分参数。
真实,我得到了嵌入式状态:
"items": [
{
"kind": "youtube#video",
"etag": ""7991kDR-QPaa9r0pePmDjBEa2h8/7NFYOO88j54fU9aKM8MsjN4zPro"",
"id": "kIBdpFJyFkc",
"status": {
"uploadStatus": "processed",
"privacyStatus": "public",
"license": "youtube",
"embeddable": true,
"publicStatsViewable": true
}
}
]
感谢所有答案。探索文档后,我终于找到了过滤那些被所有者禁用嵌入的视频的解决方案。
youtubeservice.search.list方法的Videoembeddable属性期望Google.apis.youtube.v3.searchResource.listrequest.videoembeddabledableEnum可以做到这一点。
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__;
指定类型的"视频"仅返回所有视频,播放列表和频道的视频。