使用GoogleAPI v3 url使用这个url:https://www.googleapis.com/youtube/v3/videos?part=snippet& id = D-wxnID2q4A&键= {MyKey}
我得到这个json: {
"kind": "youtube#videoListResponse",
"etag": ""dhbhlDw5j8dK10GxeV_UG6RSReM/uzqDS1yLcX0DglL60bHeS56kZ7c"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"kind": "youtube#video",
"etag": ""dhbhlDw5j8dK10GxeV_UG6RSReM/l7OMkGqgmC10NvbO5PzI_nonZzA"",
"id": "D-wxnID2q4A",
"snippet": {
"publishedAt": "2014-01-08T05:34:04.000Z",
"channelId": "UCtA7mzeypl_udtFySMXTusQ",
"title": "Can You Walk on Water? (Non-Newtonian Fluid Pool)",
"description": "Running, jumping and biking on 8,000 litres of non-newtonian fluid in Kuala Lumpur, Malaysia! Brought to you by Mach by Hong Leong Bank together with We are KIX. Music and info below..nnGet Banking with Mach by Hong Leong Bank: http://www.machbyhongleongbank.comnnA film and event concept by: http://www.wearekix.comnnFeatured Runner: https://www.caykuijpers.comnnMUSIC by Thrill me now & Ion Ray: https://soundcloud.com/thrillmenow/walk-on-water-canyouwalkonwater-soundtracknnHosted at: The Square Publika nDance Crew: http://www.facebook.com/KatoonNetworkDanceCrewnLive DJ and Sound Effects by: http://www.facebook.com/weare2dbnLive DJ's: http://www.facebook.com/deersociety",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/D-wxnID2q4A/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/D-wxnID2q4A/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/D-wxnID2q4A/hqdefault.jpg",
"width": 480,
"height": 360
},
"standard": {
"url": "https://i.ytimg.com/vi/D-wxnID2q4A/sddefault.jpg",
"width": 640,
"height": 480
},
"maxres": {
"url": "https://i.ytimg.com/vi/D-wxnID2q4A/maxresdefault.jpg",
"width": 1280,
"height": 720
}
},
"channelTitle": "Mach by Hong Leong Bank",
"categoryId": "24",
"liveBroadcastContent": "none",
"localized": {
"title": "Can You Walk on Water? (Non-Newtonian Fluid Pool)",
"description": "Running, jumping and biking on 8,000 litres of non-newtonian fluid in Kuala Lumpur, Malaysia! Brought to you by Mach by Hong Leong Bank together with We are KIX. Music and info below..nnGet Banking with Mach by Hong Leong Bank: http://www.machbyhongleongbank.comnnA film and event concept by: http://www.wearekix.comnnFeatured Runner: https://www.caykuijpers.comnnMUSIC by Thrill me now & Ion Ray: https://soundcloud.com/thrillmenow/walk-on-water-canyouwalkonwater-soundtracknnHosted at: The Square Publika nDance Crew: http://www.facebook.com/KatoonNetworkDanceCrewnLive DJ and Sound Effects by: http://www.facebook.com/weare2dbnLive DJ's: http://www.facebook.com/deersociety"
}
}
}
]
}
我在YouTube上使用c# (Nuget) GoogleAPI,我已经给了API权限并收到了v3的密钥。
我的c#代码是: var VideoID = "D-wxnID2q4A";
var youtubeService = new YouTubeService(new BaseClientService.Initializer()
{
ApiKey = APT.core.Properties.Settings.Default.GoogleKey,
ApplicationName = this.GetType().ToString()
});
var t= youtubeService.Videos.List("part=snippet,id="+VideoID);
抛出异常:
Exception:Thrown: "Google.Apis.Requests.RequestError
No filter selected. [400]
Errors [
Message[No filter selected.] Location[ - parameter] Reason[missingRequiredParameter] Domain[youtube.parameter]
]
我做错了什么
应该这样做:
var VideoID = "D-wxnID2q4A";
var youtubeService = new YouTubeService(new BaseClientService.Initializer()
{
ApiKey = "{YOUR-API-KEY}",
ApplicationName = "YouTube-test"
});
var t = youtubeService.Videos.List("snippet");
t.Id = VideoID;
var listResponse = t.Execute();
listResponse
应该包含您需要的信息。
public List<VideoItem> GetCurrentChannelVideos()
{
var channelsListRequest = youtube.Channels.List("contentDetails");
channelsListRequest.Mine = true;
// Retrieve the contentDetails part of the channel resource for the authenticated user's channel.
var channelsListResponse = channelsListRequest.Execute();
//List<VideoLink> allVideos = new List<VideoLink>();
List<VideoItem> allVideos = new List<VideoItem>();
foreach (var channel in channelsListResponse.Items)
{
// From the API response, extract the playlist ID that identifies the list
// of videos uploaded to the authenticated user's channel.
var uploadsListId = channel.ContentDetails.RelatedPlaylists.Uploads;
var nextPageToken = "";
while (nextPageToken != null)
{
var playlistItemsListRequest = youtube.PlaylistItems.List("snippet,status");
playlistItemsListRequest.PlaylistId = uploadsListId;
playlistItemsListRequest.MaxResults = 50;
playlistItemsListRequest.PageToken = nextPageToken;
// Retrieve the list of videos uploaded to the authenticated user's channel.
var playlistItemsListResponse = playlistItemsListRequest.Execute();
allVideos.AddRange(playlistItemsListResponse.Items.Select(s => new VideoItem() { VideoID = s.Snippet.ResourceId.VideoId, ThumbnailURL = s.Snippet.Thumbnails.Default__.Url, Title = s.Snippet.Title }).ToList());
nextPageToken = playlistItemsListResponse.NextPageToken;
}
}
return allVideos;
}