- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Youtube 支持一些二进制字幕文件格式,such as ebu-stl.
我有一个 *.STL 文件,当我通过 Web 界面上传它时,它可以正常上传和处理。但是当我尝试使用 POST 请求通过 API v2 上传它时,它似乎无法正确识别文件格式。 The POST request looks like this :
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>
这是通过 API 上传的 *.STL 文件在网站上的样子。应该有几行带有可读文本。
当我使用相同的代码上传一个 utf8 纯文本字幕文件(例如 *.vtt)时,一切正常。此外,如果我通过 Web 界面上传一次 STL 文件并通过 API 上传一次,and retrieve both files through the API afterwards , 它们是字节相同的。
在我看来这像是一个编码问题 - youtube 正确接收了文件,但可能将整个二进制文件解析为 UTF-8。但是,当我省略 charset= 或 Content-Language 时,youtube 会返回 4xx 错误。
是否可以上传二进制字幕文件?如果不可能,我也希望得到确认。
Minimalistic stl file if you want to try it yourself (hex dump).读作( ruby ):
stl = hex.chars.each_slice(2).map{|x|x.join.to_i(16)}.pack('C*')
最佳答案
API v2 现已正式弃用。截至 4 月 2 日,API v3 现在 officially support captions .也支持二进制字幕文件。
该文档缺少有关原始 HTTP 请求的一些详细信息。您可以尝试使用 one of their libraries .
我使用了他们的 python 脚本并查看了它发出的请求。作为引用,这里有一个用于上传二进制字幕文件的最小工作 HTTP 请求。
docs aren't mentioning此参数,但设置 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 等)。
将 {AUTH_TOKEN}
和 {YOUR_KEY}
替换为 the proper authorization credentials对于范围 https://www.googleapis.com/auth/youtube.force-ssl
;和 {BINARY_CAPTION_FILE_DATA}
您要上传的文件。
关于Youtube-API:上传二进制字幕文件 (ebu-STL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25219807/
Youtube 支持一些二进制字幕文件格式,such as ebu-stl. 我有一个 *.STL 文件,当我通过 Web 界面上传它时,它可以正常上传和处理。但是当我尝试使用 POST 请求通过 A
我想看看是否有人知道我可以分析视频音频并找出它的响度的最佳方法。 我想使用这些信息然后通过 FFmpeg 或其他方式更正音频。 音频必须满足https://tech.ebu.ch/docs/r/r12
这是我第一次在这里提出堆栈溢出问题。 我被困住了,真的很挣扎。我正在尝试使我的一些 MXF 视频文件成为其音频的 EBU r128 标准。 这意味着它必须为 -23 且不高于 0.5。 我现在的流程
我是一名优秀的程序员,十分优秀!