C#Youtube-我想从我的Youtube频道删除视频
本文关键字:频道 删除 视频 Youtube 我的 C#Youtube- | 更新日期: 2023-09-27 18:20:19
我想从我的YouTube频道中删除已选择视频ID的视频,尽管ListBox
的MultiSelection
属性处于启用状态,但代码不起作用,有其他解决方案吗?我得到这样一个错误如下:
Execution of request failed: http://gdata.youtube.com/feeds/api/users/xxxxxx/uploads/System.Windows.Forms.ListBox+SelectedObjectCollection
这是我的代码:
public void delete()
{
YouTubeRequestSettings settings = new YouTubeRequestSettings(my app name,
my dev key,
my username,
my password);
YouTubeRequest request = new YouTubeRequest(settings);
Uri videoEntryUrl = new Uri(String.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads/{1}", my channel name, list.checkedItems));
Video video = request.Retrieve<Video>(videoEntryUrl);
request.Delete(video);
}
填充CheckedListBox的代码
Feed<Video> videoFeed;
string feedUrl = "https://gdata.youtube.com/feeds/api/users/default/uploads";
videoFeed = request.Get<Video>(new Uri(feedUrl));
foreach (Video entry in videoFeed.Entries)
{
list.Items.Add(entry.VideoId,0);
}
好的。。。我认为这里的关键是从对象集合中获取数据,而一种简单的方法是使用foreach
循环。我不熟悉YouTube API,所以我不知道它需要什么格式的视频ID(对于多个视频),但为了这个示例的目的,我将使用逗号。
string videoIDs = "";
foreach (object vidID in list.CheckedItems)
{
videoIDs = videoIDs + vidID.ToString() + ",";
}
videoIDs = videoIDs.Substring(0, videoIDs.Length - 1);
基本上,上面的代码循环通过CheckedListBox.CheckedItemCollection
并获得视频ID,这就是您从提供的代码中存储在CheckedBoxList中的内容。
然后,您可以简单地在代码中使用videoIDs
字符串:
Uri videoEntryUrl = new Uri(String.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads/{1}", my channel name, videoIDs));
同样,这是一种通用的方法-您需要修改代码以适应YouTube API。
Feed<Video> videoFeed;
string feedUrl = "https://gdata.youtube.com/feeds/api/users/default/uploads";
videoFeed = request.Get<Video>(new Uri(feedUrl));
foreach (Video entry in videoFeed.Entries)
{
list.Items.Add(entry.VideoId,0);
}