1

我今天从 curl 尝试了这个 YouTube API v3 调用:

http://www.googleapis.com/youtube/v3/videos?id=ZCJgvabihQ8&key=apiKey&part=snippet,recordingDetails

其他一切都很好,但是我没有在响应json中找到recordingDetails对象:

{
"kind":"youtube#videoListResponse",
"etag":"\"oLweQuB9Vh7wAB9a0AIHg_K-wsM/EuRsJ-sxI3qstP1T58S5Qnb_NIg\"",
"items":[
{
    "id":"ZCJgvabihQ8",
    "kind":"youtube#video",
    "etag":"\"oLweQuB9Vh7wAB9a0AIHg_K-wsM/CYNTRL05S4okPzkUfE5LbrRKt9g\"",
    "snippet":{
    "publishedAt":"2013-01-25T13:36:19.000Z",
    "channelId":"UCpVm7bg6pXKo1Pr6k5kxG9A",
    "title":"Weird Nature: Pink Dolphins?",
    "description":"Up to 9 feet long and weighing up to 300 pounds, pink river dolphins           are the largest freshwater dolphins in the world.",
    "thumbnails":{
        "default":{
           "url":"https://i.ytimg.com/vi/ZCJgvabihQ8/default.jpg"
        },
        "medium":{
           "url":"https://i.ytimg.com/vi/ZCJgvabihQ8/mqdefault.jpg"
        },
        "high":{
           "url":"https://i.ytimg.com/vi/ZCJgvabihQ8/hqdefault.jpg"
        }
    },
    "categoryId":"24"
    }
}
]
}

有什么我错过的吗?非常感谢。

4

3 回答 3

3

recordingDetails 并非对所有视频都是公开的,因此如果视频没有这些属性可用,则不会返回任何内容。通过不返回任何内容,YouTube 节省了带宽并且响应时间可以更快。


原回复:

这看起来像一个合法的错误......

recordingDetails 在视频资源概述页面上列为一个选项,但未在此处的视频列表方法中列为有效部分:https ://developers.google.com/youtube/v3/docs/videos/list

通常,当您尝试使用无效部分时,您会收到“400 Bad Request”错误,但 recordingDetails 仍会返回 200 响应,因此看起来确实应该返回...

您应该在此处提交错误报告: https://code.google.com/p/gdata-issues/issues/entry?template=YouTube%20(Defect%20Report)

于 2013-01-28T20:35:12.077 回答
0

recordingDetails只有明确设置了地理位置或录制时间的视频才会返回。(并非所有视频都设置了录制时间;这是与发布时间不同的元数据。)

于 2013-02-06T22:01:46.783 回答
0

您可以进行列表调用以检索基于 alocation和的视频列表locationRadius

然后,使用返回的列表,您可以进行视频id通话,包括查询参数中的所有视频 ID 。然后,您可以指定recordingDetails为“部分”,它将起作用。

这就是 Youtube 在这里的做法:

https://github.com/youtube/geo-search-tool

于 2015-11-17T21:25:27.087 回答