Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中不使用任何API获取youtube视频标签_Java_Youtube_Tags - Fatal编程技术网

在Java中不使用任何API获取youtube视频标签

在Java中不使用任何API获取youtube视频标签,java,youtube,tags,Java,Youtube,Tags,我一直在尝试从youtube视频ID获取youtube视频标签,到处搜索,但得到了PHP的答案,因为我是一名java开发新手,所以我没有尝试任何东西。这是一个漫长而复杂的过程,但我将试着解释如何做到这一点 为视频创建一个url对象url url=newURL(视频url在这里!) 打开一个urlconnectionurlconnection urlCon=url.openConnection() 从连接中读取 这是最难的部分。。。我们需要解析来自读者的信息。。。 我不能为你做这部分,因为它需要大

我一直在尝试从youtube视频ID获取youtube视频标签,到处搜索,但得到了PHP的答案,因为我是一名java开发新手,所以我没有尝试任何东西。

这是一个漫长而复杂的过程,但我将试着解释如何做到这一点

  • 为视频创建一个url对象
    url url=newURL(视频url在这里!)
  • 打开一个urlconnection
    urlconnection urlCon=url.openConnection()
  • 从连接中读取
  • 这是最难的部分。。。我们需要解析来自读者的信息。。。 我不能为你做这部分,因为它需要大量的时间和代码,但这是最致命的方法:转到该url并打开页面的源代码(ctr+u),查看源代码,直到找到带有标记的区域。现在必须反复解析字符串,直到得到所需的输出

  • 在浏览了youtube页面的源代码之后,我注意到youtube标签存储为
    关键字

    下面是它的“关键词”:[“詹姆斯”、“小鹅”、“太阳”、“微系统”、“学生”]

    我们只需要提取一个字符串,该字符串以
    关键字开始,以
    ]
    结束,然后是清理数据

    导入java.io.BufferedReader;
    导入java.io.InputStreamReader;
    导入java.net.URL;
    导入java.util.array;
    导入java.util.regex.Matcher;
    导入java.util.regex.Pattern;
    公共类YoutubeTags
    {
    公共静态void main(字符串[]args){
    最终字符串baseUrl=”https://www.youtube.com/watch?v=";
    字符串videoId=“r19P3y1VBiw”;
    字符串标记[]=null;
    试一试{
    URL=新URL(baseUrl+videoId);
    BufferedReader br=新的BufferedReader(新的InputStreamReader(url.openStream());
    Pattern=Pattern.compile(“\”关键字([^\\]])*”;
    弦线;
    而((line=br.readLine())!=null){
    匹配器匹配器=模式匹配器(线);
    if(matcher.find()){
    tags=matcher.group().split(“,”);
    打破
    }
    }
    }捕获(例外e){
    //做点什么
    }
    //清理数据
    for(int i=0;i
    输出

    [詹姆斯、高斯林、太阳、微系统、学生]


    注意:我用这个作为回答的基础。为了便于理解,我删除了一些代码。

    谢谢你的回复,我是一个非常新手,所以我不知道如何用java解析信息。是的,我花了大约32分钟试图解析这些数据,但我做不到。这是唯一的方法,尽管没有API,但最终它可能会更优化,更容易使用API,即使它很难理解
    InputStream inputStream = urlCon.getInputStream();
    InputStreamReader reader = new InputStreamReader(inputStream);
    BufferedReader br = new BufferedReader(reader);
    String line = "";
    while((line = br.readLine())!=null){
            //now we parse the information here!
    }