gpt4 book ai didi

ruby - 使用 youtube 数据 API 将视频上传到 youtube:Broken pipe (Errno::EPIPE)

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:45 25 4
gpt4 key购买 nike

我正在尝试使用 youtube 数据 api 将本地视频文件上传到我的 youtube 帐户。

示例:https://github.com/youtube/api-samples/blob/master/ruby/upload_video.rb

调用:

$ ruby upload_video.rb --file video.mp4 

我收到一条错误消息:

/Users/user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/openssl/buffering.rb:326:in `syswrite': Broken pipe (Errno::EPIPE)
from /Users/user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/openssl/buffering.rb:326:in `do_write'
from /Users/user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/openssl/buffering.rb:344:in `write'
from /Users/user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http/generic_request.rb:202:in `copy_stream'
from /Users/user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http/generic_request.rb:202:in `send_request_with_body_stream'
from /Users/user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/net/http/generic_request.rb:132:in `exec'
...
from upload_video.rb:73:in `main'
from upload_video.rb:91:in `<main>'

upload_video.rb(第 73 行):

videos_insert_response = client.execute!(
:api_method => youtube.videos.insert,
:body_object => body,
:media => Google::APIClient::UploadIO.new(opts[:file], 'video/*'),
:parameters => {
:uploadType => 'resumable',
:part => body.keys.join(',')
}
)

最佳答案

google-api-client 使用 faraday gem,默认的 http 适配器是 Net::HTTP。而且它似乎无法正常工作。所以我们需要把它换成别的东西。我将其更改为 httpclient,现在可以正常工作了。只需在 whatever.rb 文件开头的某处添加此行(在需要谷歌的库之后):

Faraday.default_adapter = :httpclient

可在此处找到支持的 http 适配器的完整列表:https://github.com/lostisland/faraday#faraday

关于ruby - 使用 youtube 数据 API 将视频上传到 youtube:Broken pipe (Errno::EPIPE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24201842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com