【问题标题】:IOException when Uploading Videos to YouTube via Java API通过 Java API 将视频上传到 YouTube 时出现 IOException
【发布时间】:2011-05-28 06:02:16
【问题描述】:

我一直在尝试使用 Direct Uploading 通过 JavaAPI 将视频上传到 YouTube。我在调用 insert() 方法时遇到问题,我收到带有错误消息的 IOException

“将请求正文写入服务器时出错”

我已验证我正在创建的 File 对象以及我的 VideoEntry 对象中的所有详细信息都是正确的。我一直在使用 Fiddler 来监控我机器上的活动,并且没有向上传 API 发出请求,所以问题不存在。这是我正在使用的代码的摘要:

VideoEntry newVideo = new VideoEntry();
//Defined video properties such as title and description here.
MediaFileSource ms = new MediaFileSource(videoFile, "video/flv");
newVideo.setMediaSource(ms);
VideoEntry createdEntry = settings.insert(new URL(apiUrl), newVideo);

在插入调用时抛出 IOException(设置是我的 YouTubeService 实例),并且 API URL 似乎是正确的。

在此之前,我已经使用 C# API 成功上传了这个视频,所以我知道视频文件是有效的。

--更新 这是 apiURL 值:

http://uploads.gdata.youtube.com/feeds/api/users/default/uploads

【问题讨论】:

  • 是的,每次我尝试运行这段代码都会失败
  • 我可以看看 'apiUrl' 是如何创建的吗?
  • 我有同样的问题..你有没有得到同样的解决方案......如果是的话,你可以分享一下..

标签: java youtube


【解决方案1】:

确保 videoFile 实际上指向正确的本地文件。 File(String) 构造函数不会验证它是否确实存在。 MediaFileSource 构造函数和 VideoEntry.setMediaSource() 方法也从不检查文件是否有效。错误消息“Error writing request body to the server”听起来像是插入方法找不到它尝试发送的消息的正文。

File videoFile = new File("...");
if (videoFile.exists() == false) {
    System.err.println("FAIL");
}

测试文件是否存在。

【讨论】:

    【解决方案2】:

    如果您在防火墙环境下并且在 jvm 系统属性中配置了代理设置。尝试将您的 youtube 服务配置为:

    service.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST);
    

    或者在你的情况下

    settings.setChunkedMediaUpload(MediaService.NO_CHUNKED_MEDIA_REQUEST);
    

    因为你说的是​​你的 YouTubeService 实例。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-09-04
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 2015-07-12
      • 2015-08-31
      • 2012-08-19
      相关资源
      最近更新 更多