如果我打电话
YouTube.Search.List.setForMine(true);
然后我收到以下错误,即使使用YouTube.Search.List.setType("video")
也要求调用YouTube.Search.List.setForMine(true)
:
There was a service error: 400 : Invalid combination of search filters and/or restrictions.
hu.pocketguide.kmlvideo.youtube.exception.YouTubeException: Service error.
at com.google.api.services.samples.youtube.cmdline.data.PgFindByKmlId.findVideosByKmlId(PgFindByKmlId.java:107)
at com.google.api.services.samples.youtube.cmdline.data.PgFindByKmlId.main(PgFindByKmlId.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
at java.lang.Thread.run(Thread.java:745)
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "youtube.search",
"location" : "",
"locationType" : "parameter",
"message" : "Invalid combination of search filters and/or restrictions.",
"reason" : "invalidSearchFilter"
} ],
"message" : "Invalid combination of search filters and/or restrictions."
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:145)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:312)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1049)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
at com.google.api.services.samples.youtube.cmdline.data.PgFindByKmlId.findVideosByKmlId(PgFindByKmlId.java:100)
... 7 more
尝试中的相同查询! https://developers.google.com/youtube/v3/docs/search/list部分的作品。
有人可以告诉我如何使用google-api-java-client过滤标签(关键字)来列出我自己的“不公开”视频吗?
提前致谢。
答案 0 :(得分:0)
我发现了问题。我无法将适当的凭据对象传递给new YouTube.Builder(...)
。通过以下初始化,它可以工作:
List<String> scopes = Lists.newArrayList("https://www.googleapis.com/auth/youtube.readonly");
Credential credential = Auth.authorize(scopes, "mycredentialdatastore");
youtube = new YouTube.Builder(
Auth.HTTP_TRANSPORT,
Auth.JSON_FACTORY,
credential).setApplicationName("mysample").build();
仍然,我发现错误消息具有误导性。