如何通过特定频道子集搜索 YouTube 视频?

How to search for YouTube videos over a specific subset of channels?

我想从频道子集中获取与特定搜索词关联的所有视频的列表。渠道的子集是:

例如,如果我搜索字词 force,我希望以上 3 个频道中与该搜索字词相关的所有 YouTube 视频都显示在结果中。

如何使用 YouTube 数据执行此操作 API 的 Search.list endpoint? The argument for author mentioned in the explainer video 似乎已被弃用。

通过使用 Search.list API 端点,您可以随意使用以下请求参数:

channelId (string)

The channelId parameter indicates that the API response should only contain resources created by the channel.

Note: Search results are constrained to a maximum of 500 videos if your request specifies a value for the channelId parameter and sets the type parameter value to video, but it does not also set one of the forContentOwner, forDeveloper, or forMine filters.

鉴于上述规范,您必须调用 Search.list 三次,并在每次调用时传递您感兴趣的频道 ID 之一。

请注意,频道用户名 minutephysicsAsapSCIENCEkhanacademy 都不是有效的频道 ID,但这很容易解析:

$ python3 youtube-search.py --user-name minutephysics
UCUHW94eEFW7hkUMVaZz4eDg

$ python3 youtube-search.py --user-name AsapSCIENCE
UCC552Sd-3nyi_tk2BudLUzA

$ python3 youtube-search.py --user-name khanacademy
UC4a-Gbdw7vOaccHmFo40b9g

以上我使用了我的public(麻省理工学院许可)Python 3 脚本youtube-search.py;此脚本能够在 API 中搜索自定义 URL,并分别在 API 中查询用户名。

请注意,youtube-search.py 需要将有效的 API 键作为命令行选项的参数传递给它 --app-key,否则,作为环境变量传递 YOUTUBE_DATA_APP_KEY。 (使用命令行选项 --help 获取简短的帮助信息。)