YouTube Data API v3 を使用して YouTube トピックを検索しようとしています。safeSearch パラメータが "none" に設定されているにもかかわらず、YouTube が結果を返さない、一見人気のある Freebase トピックが多数あることがわかりました。たとえば、トピック「アルコール飲料」(/m/012mj) を YouTube で検索しようとすると、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 は、アイテムのない検索応答を返すようになりました。少なくとも、これはエラーと結果のない検索応答を区別するのに役立ちます。ただし、セーフサーチを「なし」に設定しても、YouTube がこのトピックの検索結果を返さないのは奇妙に思えます。