- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将字幕发送到 YouTube 直播流(实时)。我找到的所有文档似乎都不准确。
这个页面似乎最近:https://support.google.com/youtube/answer/6077032?&ref_topic=2853697
但还是错了。我将介绍我所做的一切。
它们永远不会出现。
我的调试语句是这样的:
Sending to http://upload.youtube.com/closedcaption?cid=abcd-abcd-abcd-abcd-f77s&lang=en-US&seq=364. Body: -->2021-02-10T18:08:46.609Do not pass go.<--
也就是说,我正在对有问题的 URL 执行 POST,Content-Type 设置为 text/plain。正文是祖鲁语中的日期/时间、一个换行符、我的文本和一个换行符。
我正在记录这个输出:
2021/02/10 18:09:09,411 pid<1633> INFO:Post Caption status code: 200
2021/02/10 18:09:09,411 pid<1633> INFO:Post Caption Returned: "2021-02-10T18:09:09.392\n"
也就是说,YouTube 返回带有时间戳的 HTTP_OK (200),仅此而已。换句话说,它似乎在接受字幕。
我已确保在查看器窗口中打开了“显示字幕”。
字幕永远不会出现。
我只是添加了 lang 参数以防出现问题——这没有什么区别。我不知道我做错了什么。
而且我找不到任何准确的文档。我之前链接的页面是错误的。该网站在我设置时提供的 URL 与该页面上记录的内容完全不同。
您可能会认为,鉴于 YouTube 归 Google 所有,Google 搜索文档实际上会返回一些文档。我实际上在 StackOverflow 答案中找到了链接页面。
所以,问题...
有谁知道我可能做错了什么,或者有一些我可以尝试的提示?
有谁知道我可以在哪里找到最新的文档?
重申一下:
一个。直播(非上传视频)
B.字幕不会出现在 YouTube 播放器中
感谢帮助甚至提示。
发表标题:这发送至 http://upload.youtube.com/closedcaption?cid=5gb9-x5z8-szbb-ghrr-f77s&seq=50 .正文:-->2021-02-20T16:38:16.610这个<--发表说明:是发送至 http://upload.youtube.com/closedcaption?cid=5gb9-x5z8-szbb-ghrr-f77s&seq=51 .正文:-->2021-02-20T16:38:18.827是<--发送至 http://upload.youtube.com/closedcaption?cid=5gb9-x5z8-szbb-ghrr-f77s&seq=52 .正文:-->2021-02-20T16:38:20.800
<--发表一个标题:一个发送至 http://upload.youtube.com/closedcaption?cid=5gb9-x5z8-szbb-ghrr-f77s&seq=53 .正文:-->2021-02-20T16:38:21.047一种<--发表标题:测试。发送至 http://upload.youtube.com/closedcaption?cid=5gb9-x5z8-szbb-ghrr-f77s&seq=54 .正文:-->2021-02-20T16:38:23.264测试。<--
每条消息回复如下:
2021/02/20 16:37:50,555 pid<538> 信息:发布字幕状态代码:2002021/02/20 16:37:50,555 pid<538> 信息:返回的帖子说明:“2021-02-20T16:37:50.537\n”
我正在根据 YouTube 发回的日期/时间应用增量,我相当确定这部分有效。
我的结果:
- 字幕显示不一致。我发送时有 2 秒的延迟,我可能会或可能不会看到标题。
-当它们出现时,它们会在屏幕上停留很短的时间(大约 1/2 到 1 秒)。
-而且它们看起来是双重的:
This is
This is
我很惊讶。 YouTube 生成的是 http: 而不是 https:。切换我的 URL 会稍微改变行为,但影响不大。
最佳答案
Sending Captions to a YouTube Live Stream
是的,这完全有可能!让我详细说明。
要将隐藏式字幕发送到直播流,您需要使用 contentDetails.closedCaptionsType
(contentDetails.enableClosedCaptions
已弃用!)属性。您希望通过 HTTP POST 将字幕发送到直播流的摄取 URL - 请参阅文档:
closedCaptionsHttpPost: You will send captions, via HTTP POST, to an ingestion URL associated with your live stream.
稍微偏离主题一点,您可以通过 contentDetails.closedCaptionsIngestionUrl
获取您的摄取 URL .它应该看起来像 http://upload.youtube.com/closedcaption?cid=xxx-xxx-xxx-xxx
,而 xxx-xxx-xxx-xxx
会有所不同在你的终端。如需进一步阅读,请查看 documentation .
那么..您如何发送隐藏式字幕?首先,请记住有一些 limitations and requirements .其次,决定是否需要通过普通 HTTP POST 请求或嵌入式 - 参见 HLS ingestion documentation :
HLS ingestion supports two options for sending closed captions:
- Send closed captions via separate HTTP POST requests. This works forall HLS ingestions.
- Embedded 608/708 closed captions work with HLSingestions that use the H264 video codec but not with ingestions thatuse the HEVC video codec. See the Live Caption Requirements in theYouTube Help Center for more details.
以下是通过 Python 向 YouTube API 发出 HTTP POST 请求的示例(考虑 the data that needs to be parsed into,例如日期时间):
import requests
from datetime import datetime
cc = 'This is a test'
headers = {'content-type': 'text/plain'}
ingestion_url = 'http://upload.youtube.com/closedcaption?id=xxx-xxx-xxx-xxx=' + str(seq)
#Specify your details
server = ' region:reg1#cue1'
#Formatting the time properly
time = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3]
post = time + server + '\n' + cc + '\n'
requests.post(url=ingestion_url, data=post.encode('utf-8'), headers=headers)
请注意:
{'content-type': 'text/plain'}
和 .encode('utf-8')
str(seq)
指的是计数字符串 - 它必须包含在每个 POST 请求中。检查here .由于您没有指定编程语言,我继续选择了 Python。尽管您也可以通过普通的摄取 url 发送 POST 请求。正如之前多次提到的,"golden page for your project"展示了如何使用预先给定的摄取 url(YouTube 将提供给您)以及如何根据所述文档对其进行修改。
另请注意,我上面的解释是针对他们的暂存服务器(出于简单原因)。如果您想在野外对其进行测试,请不要忘记您需要包含 id
、ns
、sparamas
、 等参数expire
, signature
, key
and seq
.
关于youtube-api - 将字幕发送到 YouTube 直播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66143575/
是否有任何解决方案来禁用右键单击选项并从 Youtube 视频中删除右下角水印 Logo ?我在搜索 GOOGLE 后尝试过。谁能告诉我? 谢谢你。 最佳答案 试试 modestbranding范围:
我想使用 YouTube API (v3) 来启用仅音乐轨道的搜索(没有猫或藤蔓或任何其他非音乐视频)。我查看了 API Explorer 和文档以获取有关该问题的任何指示,但找不到任何有用的信息。
我需要为网站使用YouTube视频缩略图的maxresdefault版本,但是在开发实现此目的的代码后,我发现并非所有视频都具有这些缩略图,尽管这些视频均为1080p。 有没有一种方法可以自动为我的所
我想通过“iframe”嵌入youtube视频,但YouTube在我国禁止使用,建议我如何在我的网站上嵌入视频! [1]:以下图片显示了在我的国家/地区无法访问youtube 最佳答案 该视频将被嵌入
我正在为myBB使用一个名为Profile Music Plugin的插件,可以在此处找到http://community.mybb.com/mods.php?action=view&pid=75 我
Youtube IFRAME API中是否有可以执行命令的功能,例如在播放的视频结尾处打开网站? (我相信有一个功能可以在旧的Java API下执行此操作,但该功能已于去年弃用。) 最佳答案 您可以引
我试图在Videos.insert和Videos.update查询中设置3d尺寸标志。但是标志不会改变。 更新查询示例: 请求: PUT https://www.googleapis.com/yout
使用此获取评论 评论主题:列表 GET https://www.googleapis.com/youtube/v3/commentThreads?part=snippet { "error": {
最近,我尝试使用OEmbed服务通过播放列表查询参数获取视频网址的iframe代码,但是OEmbed为我们提供了与我要求的视频不同的iframe代码。 这是带有播放列表查询参数的视频网址: https
我正在使用此代码: https://www.googleapis.com/youtube/v3/search?q=global+warming&part=id&maxResults=50&key=MY
我有一个LiveBroadcast,并且将来会添加一个scheduledStartTime。据我所知,这次测试不会对LiveBroadcast的整体状态产生影响,即广播是否具有准备就绪/测试的life
YouTube API是否支持在特定时间后关闭浏览器的参数? 这需要使用链接在不同位置共享来推广促销视频。视频播放结束后关闭浏览器。 最佳答案 您可以使用Youtube API监控视频是否播放完毕,然
如果没有表单上的透明面板,YouTube Player将可以正常播放视频,或者可以全屏播放视频,透明面板中有一些图像没有什么特别的。如果我取出透明面板,则YouTube播放器会按需工作,并嵌入到应用程
我正在通过Google进行身份验证,以尝试获取YouTube分析数据,但我的问题是我不知道在查询YouTube时如何向您填充参数 在这里,我正在提供一项新服务:然后尝试查询它 我不确定要在“ids”参
我想添加youtube视频列表,但不添加视频播放器。所以我需要的是 视频标题 视频缩略图 视频时长 我以某种方式设法通过使用此http://img.youtube.com/vi/4wew2uWoARw
我正在使用youtube api和python库gdata 我遵循了文档,但似乎没有出路。 问题是 - How do i get the size of the youtube video fil
使用Youtube API,我如何获得评论或顶过youtube视频的用户ID /处理列表? 提前致谢 最佳答案 在这里,您可以了解如何使用YouTube API v2(v3尚不支持此注释)获取评论:h
我正在为所有相关数据构建一个仪表板(以php为单位),我还想在YouTube“稍后观看”播放列表中显示我的商品数量。 我知道无法使用YouTube API来解决这个问题,但是也许有人想出一种解决方法?
我尝试使用YouTube API,但存在引号问题。 SearchResource.ListRequest searchListRequest = yt.Search.List("sni
我想为我的Android应用程序的用户构建视频推荐器。我有Google OAuth可以登录我的应用程序。我可以获取有关我的应用程序用户在YouTube上观看的视频的数据吗? 最佳答案 v3 API分为
我是一名优秀的程序员,十分优秀!