我正在尝试使用YouTube数据API v3进行YouTube主题搜索。我发现有许多看似流行的Freebase主题,即使将safeSearch参数设置为“none”,YouTube也不会返回任何结果。例如,当我尝试在YouTube上搜索“酒精饮料”(/ m / 012mj)主题时,API会引发异常。
from apiclient.discovery import build
from apiclient.errors import HttpError
DEVELOPER_KEY = "blah blah"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION,
developerKey=DEVELOPER_KEY)
topic_id = "/m/012mj"
try:
search_response = youtube.search().list(
topicId=topic_id,
type="video",
part="id",
safeSearch="none",
q="",
).execute()
except HttpError,e:
print e
<HttpError 400 when requesting https://www.googleapis.com/youtube/v3/search?topicId=%2Fm%2F012mj&q=&safeSearch=none&part=id&key=AIzaSyC7MDamoleicn233r8mTyK2sohcV4A3Aq8&alt=&type=video returned "Invalid combination of search filters and/or restrictions.">
有什么建议么?
更新
这不再返回400错误。 API现在返回不包含项目的搜索响应。至少这可以帮助我区分错误和没有结果的搜索响应。但是,即使将safeSearch设置为“none”,YouTube也不返回该主题的搜索结果仍然令人感到奇怪。
最佳答案
您是否考虑过设置max-results参数?我没有使用Freebase API的YouTube风格的经验,但有read建议他们将视频结果限制为10,而不是接受默认值25。否则,奇怪的是,他们会发送400(错误请求)而不是401左右。
关于youtube - YouTube Data API v3:无效的搜索过滤器和/或某些Freebase主题的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17345443/