非常感谢任何帮助!
当前代码:
YouTubeRequest request = Connect();
Video video = new Video();
video.Tags.Add(new MediaCategory("Nonprofit", YouTubeNameTable.CategorySchema));
video.Keywords = "Test";
video.YouTubeEntry.setYouTubeExtension("location", "UK");
答案 0 :(得分:1)
根据Youtube API博客,您可以使用<yt:accessControl>
标记,阅读here了解详情。
e.g。
<yt:accessControl action='comment' permission='denied'/
答案 1 :(得分:1)
以下方法接收从YouTube请求服务检索到的YouTube视频,同时还会获取权限类型和新权限。
private Video SetAccessControl(Video video, string type, string permission)
{
var exts = video.YouTubeEntry
.ExtensionElements
.Where(x => x is XmlExtension)
.Select(x => x as XmlExtension)
.Where(x => x.Node.Attributes["action"] != null && x.Node.Attributes["action"].InnerText == type);
var ext = exts.FirstOrDefault();
if (ext != null)
ext.Node.Attributes["permission"].InnerText = permission;
return video;
}
注意这只适用于检索到的视频,而不是传入“新视频()”
它做的是,迭代你作为feed的一部分返回的所有ExtentionElements,并提取xml扩展元素(因为没有c#访问控制扩展中的构建)获取匹配的位置的元素action == type然后将permissions属性更新为所需的值。
当视频条目发送并更新到YouTube服务器时,会发回更新的访问控制元素并附带更新请求。
答案 2 :(得分:0)
将youtube视频状态从UNLISTED更新为Public
YouTubeRequestSettings settings = new YouTubeRequestSettings(_application, _developerkey, _username, _password);
Uri videoEntryUrl = new Uri("https://gdata.youtube.com/feeds/api/users/default/uploads/" + VideoID);
YouTubeRequest Request = new YouTubeRequest(settings);
Video Video = Request.Retrieve<Video>(videoEntryUrl);
List<Google.GData.YouTube.YtAccessControl> AccessControlsArray = Video.YouTubeEntry.AccessControls.ToList();
foreach (var item in AccessControlsArray)
{
if (item.Attributes["action"].ToString()=="list")
{
item.Attributes["permission"]= "allowed";
}
}
Video = Request.Update(Video);