1

API Webページを使用してビデオIDを使用して、YouTubeビデオのタイトルを取得しようとしています。FileNotFoundExceptionしかし、コードを介して同じものにアクセスしようとしているときに直面しています。

私のコードは次のとおりです。

 String title = "";
        try {
            URL u = new URL("http://gdata.youtube.com/feeds/api/videos/" + videoID + "?v=2");
            URLConnection uc = u.openConnection();
            System.setProperty("java.net.useSystemProxies", "true");
            uc.setRequestProperty("Host", "www.youtube.com");
            uc.setRequestProperty("Connection", "keep-alive");
            uc.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1");
            uc.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
            uc.setRequestProperty("Accept-Encoding", "html");
            uc.setRequestProperty("Accept-Language", "en-US,en;q=0.8");

            System.out.println("Retrieving video title for \"" + videoID + "\"");
            BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream()));
            String tmp = "";

            String pageResponse = "";
            while ((tmp = br.readLine()) != null) {
                pageResponse += tmp;
            }

            title = parseResponse(pageResponse, "<media:title type='plain'>", "</media:title>");//pageResponse is a method to extract the text between 2 stings
            System.out.println("Title : " + title);


        } catch (Exception e) {
            System.out.println(e);

        }

コンソール出力:

http://www.youtube.com/watch?v=m7dapUWHykw
Video ID : m7dapUWHykw
http://gdata.youtube.com/feeds/api/videos/m7dapUWHykw?v=2
Retrieving video title for "m7dapUWHykw"
java.io.FileNotFoundException: http://gdata.youtube.com/feeds/api/videos/m7dapUWHykw?v=2

しかし、Web ブラウザーを使用して同じものを開くと、問題なくアクセスできます。

コードの何が問題なのか誰にも教えてもらえますか?

上記メソッドのPrintStackTraceは以下の通り、

java.io.FileNotFoundException: http://gdata.youtube.com/feeds/api/videos/m7dapUWHykw?v=2
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1311)
        at getytv.YouTubeDownloader.getYouTubeVideoTitle(YouTubeDownloader.java:170)
        at getytv.YouTubeDownloader.getYouTubeVideoDownloadLinks(YouTubeDownloader.java:276)
        at getytv.GetYouTubeVideo.updateDownloadTable(GetYouTubeVideo.java:215)
        at getytv.ClipBoardMonitor$1.run(ClipBoardMonitor.java:88)

前もって感謝します。

4

0 に答える 0