Youtube-API:上传二进制字幕文件 (ebu-stl)

2023-12-09

YouTube 支持一些二进制字幕文件格式,例如 ebu-stl。

我有一个 *.stl 文件,当我通过 Web 界面上传它时,它可以正常上传和处理。但是,当我尝试使用 POST 请求通过 API v2 上传它时,它似乎无法正确识别文件格式。POST 请求看起来像这样:

POST /feeds/api/videos/VIDEO_ID/captions HTTP/1.1
Host: gdata.youtube.com
Content-Type: application/vnd.youtube.timedtext; charset=UTF-8
Content-Language: en
Slug: Title of caption track
Authorization: Bearer ACCESS_TOKEN
GData-Version: 2
X-GData-Key: key=DEVELOPER_KEY

<Caption File Data>

This is how the *.stl file uploaded via the API looks on the website. There should be several lines with readable text. Ebu-Stl uploaded via Api

当我使用相同的代码上传 utf8 纯文本字幕文件(例如 *.vtt)时,一切正常。此外,如果我通过 Web 界面上传一次 stl 文件,并通过 API 上传一次,然后通过 API 检索这两个文件,它们是字节相同的。

对我来说,这看起来像是一个编码问题 - youtube 正确接收文件,但可能将整个二进制文件解析为 UTF-8。但是,当我省略其中之一时,youtube 会响应 4xx 错误charset= or 内容语言.

是否可以上传二进制字幕文件?如果不可能的话,我也希望得到确认。

如果您想自己尝试的话,请使用简约的 stl 文件(十六进制转储)。读作(红宝石):

stl = hex.chars.each_slice(2).map{|x|x.join.to_i(16)}.pack('C*')

API v2 现已正式弃用。自 4 月 2 日起,API v3 现已推出官方支持字幕。也支持二进制字幕文件。

该文档缺少有关原始 HTTP 请求的一些详细信息。你可以尝试使用他们的图书馆之一.

我使用了他们的 python 脚本并查看了它提出的请求。作为参考,这里有一个用于上传二进制字幕/字幕文件的最小工作 HTTP 请求。

The 文档没有提到这个参数,但是设置uploadType=multipart很重要,否则 API 将返回错误。

POST /upload/youtube/v3/captions?uploadType=multipart&part=id,snippet&sync=false HTTP/1.1
Host: www.googleapis.com
Accept: */*
Authorization: Bearer {AUTH_TOKEN}
X-GData-Key: key={YOUR_KEY}
Content-Type: multipart/related; boundary================83250640405719953005==
Content-Length: 7147
Expect: 100-continue

--===============83250640405719953005==
Content-Type: application/json
MIME-Version: 1.0

{"snippet":{"videoId":"Agn_uesF248","language":"en","name":"Subtitle Test 2","isDraft":false}}
--===============83250640405719953005==
MIME-Version: 1.0
Content-Type: application/sla
Content-Transfer-Encoding: binary

{BINARY_CAPTION_FILE_DATA}
--===============83250640405719953005==--

application/sla是 ebu-stl 字幕文件。使用text/plain对于纯文本字幕(.srt、.vtt、.ass 等)。

Replace {AUTH_TOKEN} and {YOUR_KEY} with 正确的授权凭证对于范围https://www.googleapis.com/auth/youtube.force-ssl; and {BINARY_CAPTION_FILE_DATA}与您要上传的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Youtube-API:上传二进制字幕文件 (ebu-stl) 的相关文章

随机推荐

  • Cassandra 更改列类型:哪些类型兼容?

    互联网上有一些关于无法更改列类型的示例的一些零碎信息 例如 在数据斯塔克斯网站有一个提到 更改聚类列的类型 更改其上的列 定义了一个索引 或者 例如 here提到你无法转换uuid to timeuuid 从我个人的经历来看 我无法改变te
  • 使用 MinGW 编译为带有一些未定义引用的 .dll

    我听说所有 Windows DLLmust包含它引用的每个符号的定义 因此像这样的 DLL 文件永远不会编译 因为它没有实现bar void bar declspec dllexport void foo bar 我认为类比是 DLL 本质
  • 更改字符向量的选定元素

    以下原则是否有更短的版本来重命名数据框的某些列 data1 lt data frame a 1 3 b 1 3 c 1 3 data1Names lt names data1 data1Names data1Names a lt hello
  • 关于 torch.nn.DataParallel 的问题

    我是深度学习领域的新手 现在我正在复制一篇论文的代码 因为他们使用多个 GPU 所以有一个命令torch nn DataParallel model device ids args gpus cuda 在代码中 但我只有一个GPU 什么 我
  • 解决 IE7 bug“input type=file”onchange 触发两次?

    你有没有遇到过这个IE7的bug
  • 将 Silverlight 连接到本地计算机的 COM 端口

    我一直在寻找一种方法让我的 silverlight 应用程序与本地计算机上的 COM 端口进行通信 有没有人能够让 Silverlight 成功连接到本地计算机的 COM 端口 如果是这样 你能指出我的文档吗 Silverlight 无法做
  • java中12小时制到24小时制的转换

    在我的应用程序中 我需要格式化12 hours时间到24 hours时间 我必须使用什么方法 例如 像这样的时间10 30 AM java中如何转换为24小时时间 尝试这个 import java text SimpleDateFormat
  • 导入 RealmSwift 不再使用 CocoaPods 工作

    RealmSwift 的 CocoaPods 安装克鲁赫森受到推崇的here 或者也可以从realm io页面推荐here 基本上可以工作 但是我使用 Swift 0 92 3 的应用程序中仍然存在一个问题 以下导入不再被识别 import
  • Android 黑屏前的启动画面

    我想在 onCreate 方法中初始化所有内容时显示启动屏幕 但我需要将内容绘制到屏幕上的组件也在初始化 因此当我启动应用程序时和 onCreate 之后会出现黑屏方法已完成 然后仅绘制第一个屏幕 我想要一个闪屏 而不是黑屏 这是我在 on
  • 线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/http/ConnectionReuseStrategy:

    我正在尝试使用 Eclipse 在 Maven 项目中作为 Java 应用程序运行 但出现以下运行时错误 错误如下所示 线程 main java lang NoClassDefFoundError 中出现异常 org apache http
  • 使用PHP邮件通过smtp发送

    有谁知道是否可以配置 php 的 mail 命令 使其仅使用 SMTP 服务器而不是本地 sendmail 我们在电子邮件被标记为垃圾邮件时遇到了麻烦 我们的服务器运行的是 RedHat 5 Enterprise 我知道有多种 PHP 库充
  • 在模板外部重载模板类的输出流运算符

    我想重载输出流运算符 lt lt 在模板类定义之外 在模板类中实现它就可以了 template
  • CS5001 程序不包含适合入口点的静态“Main”方法

    我是 C 新手 如果有人可以告诉我为什么代码显示以下错误 我将不胜感激 CS5001 程序不包含适合入口点的静态 Main 方法 using System class test void Foo int x Console WriteLin
  • VBA:循环遍历行,如果满足条件则对某些行求和

    我在学习 VBA 的同时已经使用论坛几个星期了 但现在我陷入困境 需要帮助 所以这是我的问题 我有一本工作簿 里面有几个工作表 为简单起见 我们假设我有两个工作表 一份包含大量原始数据材料 另一份格式精美 将作为接收表 原始数据表如下所示
  • 我可以将 javascript 模块与“常规”javascript 混合使用吗?

    我有一个页面设置 它引用了几个 javascript 文件 并在页面中内联了一些 javascript 这是在加载页面时生成的 其中一个 JavaScript 文件包含来自第三方库的类 另一个 javascript 文件包含与页面相关的各种
  • Go 中的接口是如何表示的?

    我现在正在阅读两篇文章 有点困惑 本文 http blog golang org laws of reflection says gt var r io Reader tty err os OpenFile dev tty os O RDW
  • C# 4.0 可选 out/ref 参数

    C 4 0 是否允许可选out or ref论据 No 解决方法是使用另一种方法重载doesn t有 out ref 参数 并且它只调用您当前的方法 public bool SomeMethod out string input new o
  • 在视图中滚动时,recyclerView 不会调用 onBindViewHolder

    这是注意到的 启动时 数据项索引 0 1 5 将显示在视图中 并看到 onCreateViewHolder 和 onBindViewHolder 被调用 然后滚动出顶部项目 看到 onCreateViewHolder 和 onBindVie
  • 通过VBA解析Json数组

    我从 api 获取 json 响应并解析它以在 Excel 中更新 下面是代码 我无法进一步解析以获取价格信息 Dim strResult As String Dim objHTTP As Object Dim URL As String
  • Youtube-API:上传二进制字幕文件 (ebu-stl)

    YouTube 支持一些二进制字幕文件格式 例如 ebu stl 我有一个 stl 文件 当我通过 Web 界面上传它时 它可以正常上传和处理 但是 当我尝试使用 POST 请求通过 API v2 上传它时 它似乎无法正确识别文件格式 PO