我在使用 YouTube API 时遇到问题。我正在尝试制作一个 bash 应用程序,以便在 Linux 的命令行上轻松观看 YouTube 视频。我尝试通过 cURL 获取一些视频搜索结果,但它返回错误:curl: (16) HTTP/2 stream 1 was not close cleanly: error_code = 1
我使用的 cURL 命令是:
curl "https://ww.googleapis.com/youtube/v3/search" -d part="snippet" -d q="kde" -d key="~~~~~~~~~~~~~~~~"
当然,我会在 ~~~~~~~~~
所在的位置添加我的 YouTube 数据 API key 。
我究竟做错了什么?
如何使其工作并返回搜索属性?
最佳答案
我发现您的请求中有两处不正确:
首先,您输错了“www”,而说成了“ww”。这不是一个有效的 URL
然后,curl
的“-d”选项仅用于 POST
,而不是 GET
,至少默认情况下不是。您有两个选择:
- 将 -G 开关添加到 url,让curl 将
-d
选项重新解释为查询选项:
curl -G https://www.googleapis.com/youtube/v3/search -d part="snippet"-d q="kde"-d key="xxxx"
- 将您的网址修改为典型的 GET 请求:
curl “https://www.googleapis.com/youtube/v3/search?part=snippet&q=kde&key=XX”
作为提示,使用 bash 解释生成的 json 可能不是最好的方法。您可能想考虑使用 python、javascript 等来运行查询并解释生成的 json。
关于linux - youtube api v3 通过 bash 和 curl 进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36372209/