Youtube api YouTube数据API按ID列出视频

Youtube api YouTube数据API按ID列出视频,youtube-api,youtube-data-api,Youtube Api,Youtube Data Api,我使用java代码按ID列出视频。我使用了Topics.java文件,但它给出了不止一个结果,其中包括正确的结果。此外,它不应用视频ID(当我打印时,它将视频ID设置为0),因此我也将视频ID设置为搜索词。下面是输入和输出的屏幕截图 我试图实现的是为给定的视频ID获得一个精确的结果,比如它在网络上的工作方式 我是在运行错误的代码还是输入错误?请告知 更新:文件VideoLocalizations.java为“语言”抛出空指针异常 Topics.java文件正在演示,我想这比您想做的要多 要获取

我使用java代码按ID列出视频。我使用了Topics.java文件,但它给出了不止一个结果,其中包括正确的结果。此外,它不应用视频ID(当我打印时,它将视频ID设置为0),因此我也将视频ID设置为搜索词。下面是输入和输出的屏幕截图

我试图实现的是为给定的视频ID获得一个精确的结果,比如它在网络上的工作方式

我是在运行错误的代码还是输入错误?请告知

更新:文件VideoLocalizations.java为“语言”抛出空指针异常
Topics.java文件正在演示,我想这比您想做的要多

要获取视频ID的详细信息,请查看。您可以使用页面底部的API资源管理器创建基本请求,例如

GET https://www.googleapis.com/youtube/v3/videos?
    part=id%2Csnippet&id=5vY8EWokf40&key={YOUR_API_KEY}
…返回:

{
 "kind": "youtube#videoListResponse",
 "etag": "\"5g01s4-wS2b4VpScndqCYc5Y-8k/v-nx5E3jmblZ7cA3yNCjAAKmywQ\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {

   "kind": "youtube#video",
   "etag": "\"5g01s4-wS2b4VpScndqCYc5Y-8k/rsLwePwmFcmdkMVDPrQB20sLp1Q\"",
   "id": "5vY8EWokf40",
   "snippet": {
    "publishedAt": "2015-06-27T03:02:46.000Z",
    "channelId": "UCz0Am9KlCDydaIifIL16hfw",
    "title": "Hajar Film - Sirin Hamsho | فيلم هاجر - سيرين حمشو",
...
要在Java中实现这一点,请查看同一页上的示例部分。基本上,您需要创建一个
com.google.api.services.youtube.youtube
对象,调用
videos().list()
,并处理
VideoListResponse

查看JAVA#2示例,您可以看到如下所示:

// This object is used to make YouTube Data API requests.
youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, credential)
    .setApplicationName("youtube-cmdline-localizations-sample").build();

...

// Call the YouTube Data API's videos.list method to retrieve videos.
VideoListResponse videoListResponse = youtube.videos().
    list("snippet,localizations").setId(videoId).execute();

// Since the API request specified a unique video ID, the API
// response should return exactly one video. If the response does
// not contain a video, then the specified video ID was not found.
List<Video> videoList = videoListResponse.getItems();
if (videoList.isEmpty()) {
    System.out.println("Can't find a video with ID: " + videoId);
    return;
}
Video video = videoList.get(0);
//此对象用于发出YouTube数据API请求。
youtube=new youtube.Builder(Auth.HTTP_传输、Auth.JSON_工厂、凭证)
.setApplicationName(“youtube cmdline本地化示例”).build();
...
//调用YouTube数据API的videos.list方法检索视频。
VideoListResponse VideoListResponse=youtube.videos()。
list(“snippet,localizations”).setId(videoId).execute();
//由于API请求指定了唯一的视频ID,因此API
//响应应该只返回一个视频。如果答案是肯定的
//不包含视频,则找不到指定的视频ID。
List videoList=videoListResponse.getItems();
if(videoList.isEmpty()){
System.out.println(“找不到ID为“+videoId”的视频);
返回;
}
视频=视频列表。获取(0);

有关使用Java库的更多详细信息,请参阅。

主题。Java文件正在演示,我想这比您想做的要多

要获取视频ID的详细信息,请查看。您可以使用页面底部的API资源管理器创建基本请求,例如

GET https://www.googleapis.com/youtube/v3/videos?
    part=id%2Csnippet&id=5vY8EWokf40&key={YOUR_API_KEY}
…返回:

{
 "kind": "youtube#videoListResponse",
 "etag": "\"5g01s4-wS2b4VpScndqCYc5Y-8k/v-nx5E3jmblZ7cA3yNCjAAKmywQ\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {

   "kind": "youtube#video",
   "etag": "\"5g01s4-wS2b4VpScndqCYc5Y-8k/rsLwePwmFcmdkMVDPrQB20sLp1Q\"",
   "id": "5vY8EWokf40",
   "snippet": {
    "publishedAt": "2015-06-27T03:02:46.000Z",
    "channelId": "UCz0Am9KlCDydaIifIL16hfw",
    "title": "Hajar Film - Sirin Hamsho | فيلم هاجر - سيرين حمشو",
...
要在Java中实现这一点,请查看同一页上的示例部分。基本上,您需要创建一个
com.google.api.services.youtube.youtube
对象,调用
videos().list()
,并处理
VideoListResponse

查看JAVA#2示例,您可以看到如下所示:

// This object is used to make YouTube Data API requests.
youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, credential)
    .setApplicationName("youtube-cmdline-localizations-sample").build();

...

// Call the YouTube Data API's videos.list method to retrieve videos.
VideoListResponse videoListResponse = youtube.videos().
    list("snippet,localizations").setId(videoId).execute();

// Since the API request specified a unique video ID, the API
// response should return exactly one video. If the response does
// not contain a video, then the specified video ID was not found.
List<Video> videoList = videoListResponse.getItems();
if (videoList.isEmpty()) {
    System.out.println("Can't find a video with ID: " + videoId);
    return;
}
Video video = videoList.get(0);
//此对象用于发出YouTube数据API请求。
youtube=new youtube.Builder(Auth.HTTP_传输、Auth.JSON_工厂、凭证)
.setApplicationName(“youtube cmdline本地化示例”).build();
...
//调用YouTube数据API的videos.list方法检索视频。
VideoListResponse VideoListResponse=youtube.videos()。
list(“snippet,localizations”).setId(videoId).execute();
//由于API请求指定了唯一的视频ID,因此API
//响应应该只返回一个视频。如果答案是肯定的
//不包含视频,则找不到指定的视频ID。
List videoList=videoListResponse.getItems();
if(videoList.isEmpty()){
System.out.println(“找不到ID为“+videoId”的视频);
返回;
}
视频=视频列表。获取(0);

有关使用Java库的更多详细信息,请参阅。

导入com.google.api.services.youtube.model.VideoLocalization时出错。请参考命令行屏幕截图中的更新问题。通过添加176版本修复了上述问题,该版本之前指的是107。但它仍然在第193行抛出空指针异常。问题已更新为屏幕截图。导入com.google.api.services.youtube.model.VideoLocalization时出错。请参考命令行屏幕截图中的更新问题。通过添加176版本修复了上述问题,该版本之前指的是107。但它仍然在第193行抛出空指针异常。该问题将更新为一个屏幕截图。