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

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

hushilan325 回答:如何仅从URL获得youtube视频的标题?

根据官方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"
   }
  }
  ]
}

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

,

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

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

- YouTube</title>
,

如果您正在使用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]

本文链接:https://www.f2er.com/3091682.html

大家都在问