-3

我想从我的 YouTube 频道中删除选择了视频 ID 的视频,虽然MultiSelection属性ListBox已打开,但代码不起作用,还有其他解决方案吗?我收到如下错误:

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

2 回答 2

2

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

于 2013-06-29T16:46:21.673 回答
0
 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);







            }
于 2013-06-29T16:30:37.580 回答