2013-06-29 137 views
-3

我想從我的YouTube頻道中刪除視頻選擇了哪些視頻ID,但屬性ListBox已啓用,代碼無效,是否有其他解決方案?我得到這樣一個錯誤,如下所示:C#Youtube-我想從我的Youtube頻道中刪除視頻

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

回答

2

好...我認爲這裏的關鍵是從obj中獲取數據ect collection - 一個簡單的方法就是用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。

+0

感謝您的幫助,我會試一試 –

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







      }