2

私はYouTubeにビデオをアップロードしようとしています:同じための私のコードは次のとおりです:

private static void uploadVideo(YouTubeService service) throws IOException {
    System.out.println("First, type in the path to the movie file:");


    File videoFile = new File(readLine());

    if (!videoFile.exists()) {
      System.out.println("Sorry, that video doesn't exist.");
      return;
    }

    System.out.println(
        "What is the MIME type of this file? (ex. 'video/quicktime' for .mov)");

    String mimeType = readLine();

    System.out.println("What should I call this video?");
    String videoTitle = readLine();

    VideoEntry newEntry = new VideoEntry();

    YouTubeMediaGroup mg = newEntry.getOrCreateMediaGroup();

    mg.addCategory(new MediaCategory(YouTubeNamespace.CATEGORY_SCHEME, "Entertainment"));
    mg.setTitle(new MediaTitle());
    mg.getTitle().setPlainTextContent(videoTitle);
    mg.setKeywords(new MediaKeywords());
    mg.getKeywords().addKeyword("gdata-test");
    mg.setDescription(new MediaDescription());
    mg.getDescription().setPlainTextContent(videoTitle);
    mg.setPrivate(false);
    mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "mydevtag"));
    mg.addCategory(new MediaCategory(YouTubeNamespace.DEVELOPER_TAG_SCHEME, "anotherdevtag"));
    newEntry.setGeoCoordinates(new GeoRssWhere(37.0,-122.0));
    MediaFileSource ms = new MediaFileSource(videoFile, mimeType);

    newEntry.setMediaSource(ms);


    try {


      service.insert(new URL(VIDEO_UPLOAD_FEED), newEntry);

    } catch (ServiceException se) {
      System.out.println("Sorry, your upload was invalid:");
      System.out.println(se.getResponseBody());
      return;
    }

    System.out.println("Video uploaded successfully!");
  }

        switch(uploader.getUploadState()) {
          case COMPLETE:
            output.println("Uploaded successfully");
            break;
          case CLIENT_ERROR:
            output.println("Upload Failed");
            break;
          default:
            output.println("Unexpected upload status");
            break;
        }

     }

これを実行すると、例外が表示されます。

java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:189)
    at java.net.SocketInputStream.read(SocketInputStream.java:121)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:334)
    at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:641)
    at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:589)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1319)
    at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)
    at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:490)
    at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:470)
    at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:534)
    at com.google.gdata.client.media.MediaService.insert(MediaService.java:353)
    at ytupload.YouTubeWriteClient.uploadVideo(YouTubeWriteClient.java:514)
    at ytupload.YouTubeWriteClient.main(YouTubeWriteClient.java:837)

mainから呼び出している関数。アップロード(サービス); ここで、service = new YouTubeService(clientId、developerKey); このバグを修正するにはどうすればよいですか?私は1日遅れて無駄にした..しかし、理解することはできません。提案してください。

編集:VIDEO_UPLOAD_FEED = "http://gdata.youtube.com/feeds/api/users/abc123/uploads"

そして、ビデオファイルのパスをhttp urlとして指定したい場合はどうなりますか?提案してください。よろしくお願いします

4

1 に答える 1

0

サービスでユーザー資格情報を正常に設定しましたか? おそらく、サーバーへの接続を作成するために使用されます。

service.setUserCredentials(User, Password);

これを見てください

于 2012-11-15T07:05:42.843 に答える