ruby - Facebook通过Graph API上传视频字幕不起作用
问题描述
我正在尝试通过图形 api 将字幕(.srt 文件)添加到我的视频中,但我收到了来自 Facebook 的以下回复
{"error"=>{"message"=>"(#385) The captions file you selected is in a format that we don't support.", "type"=>"OAuthException", "code"=>385, "error_user_msg"=>"The captions file you selected is in a format that we don't support.", "fbtrace_id"=>"HIxy-mhlpHo"}}
下面是我用来上传 ruby 字幕的代码
subtitle_stream = open(subtitle_url)
subtitle_file = File.open('subtitle.en_US.srt', 'w+b') do |file|
subtitle_stream.respond_to?(:read) ? IO.copy_stream(subtitle_stream, file) : file.write(subtitle_stream)
open(file)
end
subtitle_file_obj = UploadIO.new(
subtitle_file,
'application/octet-stream',
'subtitle.en_US.srt'
)
url = "https://graph.facebook.com/v3.2/3344xxxxx/captions"
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
upload_request = Net::HTTP::Post::Multipart.new uri.request_uri, {
'access_token' => access_token,
'captions_file' => subtitle_file_obj,
}
upload_response = http.request(upload_request)
我使用了来自以下链接的示例 srt 文件进行测试
https://fastapi.metacpan.org/source/MIYAGAWA/Video-Subtitle-SRT-0.01/t/sample.srt
解决方案
推荐阅读
- javascript - 如何在 Angular 中将 html 标签添加到 Quill 文本编辑器的内容 div?
- ajax - React/Redux 表单提交
- java - 如何在 MicroProfile OpenAPI 中定义日期示例
- typescript - 从类型获取泛型类型
- python - 对这两个列表进行检查以查找缺失项目的最佳方法是什么
- stored-procedures - 无法在雪花数据库中运行存储过程
- symfony - Symfony,Doctrine:如何禁用实体监听器?
- r - 如何获取值差异超过阈值的索引/位置?
- sql - 连接一列中的值并创建另一列
- sql - 在 Oracle SQL 中使用 Case 表达式进行条件日期比较和赋值