我只是想在 youtube 上搜索我自己的视频,该视频在 X 日期之后发布
但是,当我使用publishAfter
参数时,即使我将type
参数设置为video
,它也会产生invalidSearchFilter
错误。
错误描述是这样的:
请求包含无效的搜索筛选器和/或限制组合。请注意,如果将forContentOwner
或forMine
参数设置为 true
,则必须将 type
参数设置为 video
。如果为eventType
、videoCaption
、videoCategoryId
、videoDefinition
、videoDimension
、videoDuration
、videoEmbeddable
、videoLicense
、videoSyndicated
或videoType
参数设置值,则还必须将type
参数设置为 video
。
您可以从以下位置重现此错误: https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&forMine=true&publishedAfter=1970-01-01T00%253A00%253A00Z&type=video&_h=11&(通过OAuth 2.0登录后)
知道在这种情况下我能做什么吗?
我使用了您提供的链接。问题不在于日期。问题在于您使用的搜索限制冲突。要使您的搜索正常工作,请将"forMine"参数留空,这样它就不会与您的日期过滤器冲突,也可能与"q"参数冲突。这样做,它将起作用。
此外,您必须指定通道 ID 以指定它是您的。试一试
我正在尝试执行一项任务以从我们自己的频道中检索所有视频,我使用forMine
过滤器的问题是,我将过滤器与过滤器一起传递channelId
过滤器forMine
(这实际上没有意义,如果我说要获取自己的数据,那么我不应该显式传递频道 ID, 所以我为此责怪自己),这是一个错误,说Request contains an invalid argument.
这是我在导致错误时的请求:
curl --location -g --request GET 'https://youtube.googleapis.com/youtube/v3/search?part=snippet,id&channelId=[Channel ID]&forMine=true&order=date&type=video&key=[API KEY]&maxResults=25'
--header 'Authorization: Bearer [ACCESS TOKEN]'
--header 'Accept: application/json'
这是 JSON 返回:
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"errors": [
{
"message": "Request contains an invalid argument.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}
一旦我删除了channelId
查询参数,错误就消失了。