linux - youtube api v3 通过 bash 和 curl 进行搜索

标签 linux bash curl youtube

我在使用 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,至少默认情况下不是。您有两个选择:

  1. 将 -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/

    相关文章:

    linux - 从 SpringBoot 应用程序访问 Ubuntu 16.04 上的 MariaDB Galera 集群

    linux - 如何使用 "awk"执行具有相同尾部的多个文件并导出到一些具有新尾部的新文件?

    perl - 如何转义任意字符串以用作 Bash 中的命令行参数?

    php - 使用 curl 或 guzzle 的 laravel passport oauth 功能

    java - 如何在java中使用HttpsUrlConnection

    c# - 如何使用 Mono 从 Linux 中的网络摄像头捕获?

    c - 我们可以在 `fdopen()` 中指定哪些类型,以及该类型的哪一部分是有效的?

    linux - 从 postgresql 数据库中的表中选择 linux 上的 cobol 程序时出错

    bash - POSIX 替代多变量赋值与读取

    c++ - cURL c++ 和 gunzip