如何使用Youtube Go API获取视频信息?

时间:2019-07-19 09:39:35

标签: go youtube-data-api

我只想做类似的事情:

curl "https://www.googleapis.com/youtube/v3/videos?id=${ID}&part=snippet&key=${KEY}"

使用Go API确定上传视频的日期。但是,在将https://godoc.org/google.golang.org/api/youtube/v3reference倒入鼠标后,我很沮丧地无法弄清楚如何完成此基本任务。

我可以在godoc中看到VideoSnippet,但我不知道如何发现调用返回的结果。

3 个答案:

答案 0 :(得分:0)

使用/youtube/v3/videos(用于搜索)和查询参数part=snippet。返回的每个项目都将包含一个带有发布日期的snippet对象。

{
    "kind": "youtube#videoListResponse",
    "etag": "\"Bdx4f4ps3xCOOo1WZ91nTLkRZ_c/Eemxf1NUP9tlqRv5dvxAjeicTjI\"",
    "pageInfo": {
        "totalResults": 1,
        "resultsPerPage": 1
    },
    "items": [{

            "kind": "youtube#video",
            "etag": "\"Bdx4f4ps3xCOOo1WZ91nTLkRZ_c/tq9JVgQy7-68z3ESgWpT0bHx5BE\"",
            "id": "9bZkp7q19f0",
            "snippet": {
                "publishedAt": "2012-07-15T07:46:32.000Z",
                ...

curl + jq❤的示例:

$ curl "https://www.googleapis.com/youtube/v3/videos?part=snippet&id=9bZkp7q19f0&key=$KEY" -s | jq -r '.items[0].snippet.publishedAt'
2012-07-15T07:46:32.000Z

答案 1 :(得分:0)

[免责声明:我自己不是golang程序员-只是在寻求帮助]

根据文档,publishedAt位于response.Items[].snippet.publishedAt

然后,您可以使用Search endpoint's examples处的Golang代码作为灵感的源泉。或在Github w.r.t.上提供更好的示例代码PlaylistItems endpoint


另外请注意,API不会发布视频的上传日期和时间。这是相应视频所有者的私人信息。

  

publishedAt (日期时间)

     

视频发布的日期和时间。 请注意,此时间可能不同于视频的上传时间。例如,如果视频作为私人视频上传,然后在以后公开,则此属性将指定时间该视频已公开。

答案 2 :(得分:0)

我为此编写了一个包:

package main
import "github.com/89z/mech/youtube"

func main() {
   w, err := youtube.NewWeb("JsjrIa9E9A8")
   if err != nil {
      panic(err)
   }
   println(w.PublishDate == "2016-07-18")
}

https://pkg.go.dev/github.com/89z/mech/youtube