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

时间:2013-06-29 14:21:23

标签: c# video youtube

我想从我的YouTube频道中删除已选择视频ID的视频,但MultiSelection的{​​{1}}属性已启用,代码无效,是否有其他解决方案?我得到如下错误:

ListBox

这是我的代码:

Execution of request failed: http://gdata.youtube.com/feeds/api/users/xxxxxx/uploads/System.Windows.Forms.ListBox+SelectedObjectCollection

填充CheckedListBox的代码

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分: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);







            }