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
The Delete method works as expected if you use the right url, i.e. the one from the /upload feed.
The entries in the /videos feed do not have an edit url which is the one that must be used to send a delete request. I just updated the library (rev. 1169) to return a more meaningful ArgumentNullException instead of the generic null reference.
Please use this code to delete a video you uploaded:
YouTubeRequestSettings settings = new YouTubeRequestSettings(YOUTUBE_CHANNEL, YOUTUBE_DEVELOPER_KEY, USERNAME, PASSWORD);
YouTubeRequest request = new YouTubeRequest(settings);
Uri videoEntryUrl = new Uri(String.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads/{1}", YOUTUBE_CHANNEL, VIDEO_ID));
Video video = request.Retrieve<Video>(videoEntryUrl);
request.Delete(video);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With