如何仅从URL获得youtube视频的标题?

时间:2019-11-16 02:30:35

标签: java api youtube

我正在用Java编写程序,其中仅给我的程序提供youtube视频的url,但我想输出该URL引用的视频的标题。我可以使用任何API或其他方法来解决此问题吗?谢谢。

3 个答案:

答案 0 :(得分:0)

根据官方youtube api docs。首先,您需要获取您的API_KEY。然后点击以下端点(使用YOUR_API_KEY和YOUR_VIDEO_ID)

https://www.googleapis.com/youtube/v3/videos?id=YOUR_VIDEO_ID&key=YOUR_API_KEY
 &part=snippet,contentDetails,statistics,status

您将收到一个JSON对象作为这样的响应

{ 
  "kind": "youtube#videoListResponse",
  "etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/sDAlsG9NGKfr6v5AlPZKSEZdtqA\"",
  "videos": [
      {
        "id": "7lCDEYXw3mM",
        "kind": "youtube#video",
        "etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/iYynQR8AtacsFUwWmrVaw4Smb_Q\"",
        "snippet": { 
        "publishedAt": "2012-06-20T22:45:24.000Z",
        "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
        "title": "Google I/O 101: Q&A On Using Google APIs",
        "description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
        "thumbnails": {
        "default": {
        "url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
     },
  "medium": {
      "url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
  },
  "high": {
      "url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
  }
},
   "categoryId": "28"
},
   "contentDetails": {
      "duration": "PT15M51S",
      "aspectRatio": "RATIO_16_9"
},
  "statistics": {
      "viewCount": "3057",
      "likeCount": "25",
      "dislikeCount": "0",
      "favoriteCount": "17",
      "commentCount": "12"
  },
 "status": {
    "uploadStatus": "STATUS_PROCESSED",
    "privacyStatus": "PRIVACY_PUBLIC"
   }
  }
  ]
}

您可以获得所有信息,包括标题。

答案 1 :(得分:0)

如果您必须在没有YouTube API的情况下执行此操作,建议您从网页上抓下<title>标签-这可能比找到包含标题的div更容易,尽管您可能会错过一些表情符号或类似的东西。对于纯Java解决方案,我只将内置方法用于http请求java.net.HttpURLConnection,然后流式传输响应数据,直到到达<title>,然后将下一部分用作字符串,直到{{1} }。

这是一个简短的示例(您可能想要进行异常处理等)。

- YouTube</title>

答案 2 :(得分:0)

如果您正在使用maven并想使用Jsoup,请添加这些添加依赖项

        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.7.2</version>
        </dependency>

或,否则,只需将找到的here的jar添加到类路径中,以便它可用于您的代码。

然后它很简单,如下所示:

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

public class Test {

  public static void main(String[] args) throws IOException {
    Document document = Jsoup.connect("https://www.youtube.com/watch?v=eIrMbAQSU34").get();
    String title = document.title().replaceAll(" - YouTube$", "");
    System.out.println(title);
  }
}

在这种情况下,它会打印:

  

Java初学者教程[2019]