This is my code:
YouTubeService serv = new YouTubeService("myDeleteService", YOUTUBE_DEVELOPER_KEY);
serv.setUserCredentials(USERNAME, PASSWORD);
YouTubeRequestSettings settings = new YouTubeRequestSettings(YOUTUBE_CHANNEL, YOUTUBE_DEVELOPER_KEY);
YouTubeRequest request = new YouTubeRequest(settings);
string feedUrl = String.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads", YOUTUBE_CHANNEL);
Feed<Video> videoFeed = request.Get<Video>(new Uri(feedUrl));
Uri videoEntryUrl = new Uri("http://gdata.youtube.com/feeds/api/videos/" + VideoId);
Video video = request.Retrieve<Video>(videoEntryUrl);
Video vid = (from vi in videoFeed.Entries
where vi.VideoId == VideoId
select vi).First<Google.YouTube.Video>();
request.Delete(vid);
The code breaks on the last line stating that object reference is not set to an object.
This appears to be an issue internal to the Google YouTube API. I’m having the same issue with good request and video objects. (Google API v1.9.0.0)
UPDATE: check out Claudio’s response below. It is correct. I received an email back from support and forgot to update this answer:
this uri will fail:
“http://gdata.youtube.com/feeds/api/videos/” + videoID
this will work:
“http://gdata.youtube.com/feeds/api/users/” + accountName + “/uploads/” + videoID