C#Youtube-我想从我的Youtube频道删除视频

本文关键字:频道 删除 视频 Youtube 我的 C#Youtube- | 更新日期: 2023-09-27 18:20:19

我想从我的YouTube频道中删除已选择视频ID的视频,尽管ListBoxMultiSelection属性处于启用状态,但代码不起作用,有其他解决方案吗?我得到这样一个错误如下:

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);
}

C#Youtube-我想从我的Youtube频道删除视频

好的。。。我认为这里的关键是从对象集合中获取数据,而一种简单的方法是使用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);



            }