如何以编程方式获取正在播放的YouTube视频的字幕?
最初,我尝试通过YouTube
API
离线进行此操作,但似乎
YouTube禁止获取您不是所有者的视频的字幕。
现在,我正在尝试在线进行。我没有找到用于字幕的YouTube Player
Api方法,我也试图通过videojs播放器将YouTube字幕作为TextTrack来获取,就像通常视频的处理方式一样,但是以下方法不起作用:
<html>
<head>
<link href="//vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="//vjs.zencdn.net/4.12/video.js"></script>
<script type="text/javascript" src="../lib/youtube.js"></script>
</head>
<body>
<video id="myvideo"
class="video-js vjs-default-skin vjs-big-play-centered"
controls
preload="auto"
width="640"
height="360">
</video>
<script type="text/javascript">
var myvideo = videojs(
"myvideo",
{
"techOrder": ["youtube"],
"src": "https://www.youtube.com/watch?v=jNhtbmXzIaM"
},
function() {
console.log('Tracks: ' + this.textTracks().length); //zero here :(
/*var aTextTrack = this.textTracks()[0];
aTextTrack.on('loaded', function() {
console.log('here it is');
cues = aTextTrack.cues();
console.log('Ready State', aTextTrack.readyState())
console.log('Cues', cues);
});
aTextTrack.show();*/
});
</script>
</body>
</html>
我还尝试了一种解析YouTube Player IFrame(内部带有当前字幕行的div)的丑陋解决方案,但是由于源不匹配的安全性问题,它无法正常工作。
用Java(对于离线解决方案)或javascript(对于在线解决方案)可以实现我的目标吗?
我如何从youtube视频中获取字幕是通过向此网址发出一个简单的请求https://video.google.com/timedtext?lang=&v = {videoId}
我尝试使用Youtube API v3,但目前无法正常工作。当您对某个视频使用YouTube API
v3发出请求时,您需要上传视频的人批准字幕的下载,否则请在控制台中显示403错误。出现错误是正常现象,服务器未收到批准,因此返回错误。
您可以使用Youtube API v3从自己的视频中下载字幕。
与此类似的工作即可完成。响应将采用XML格式:
$.ajax({
type: "POST",
url: "https://video.google.com/timedtext?lang=en&v=5MgBikgcWnY"
}).done(function (response) {
console.log(response);
}).fail(function (response) {
console.log();
});
问题内容: 我获得了这段代码,以便从www.youtube.com/watch?v=xxxxxxx之类的链接获取youtube ID 基本上这将使我轻松获得id v = xxxxxxxx 但我注意到有时youtube链接会像这样 我正在从提要中获取链接,所以我需要为此构建一个正则表达式,还是需要一个解析器来为我获取它? 问题答案: 尝试了其他方法,但在我的情况下失败了-调整了正则表达式以适合我的网
我正在学习使用youtube数据api v3显示播放列表列表,并从下面的链接进一步显示每个播放列表的视频列表https://developers.google.com/youtube/v3 我能够得到一个频道id的播放列表,并进一步获得每个播放列表,视频列表。 在此之前,我需要通道id来完成其余的操作。输入将是通道的名称,输出应该是细节,其中包括唯一的通道id。下面是我尝试的代码片断,但是我总是得
我已经遵循了一个关于如何使用youtube gdata的教程。使用来自youtube的视频和点击来填充列表视图。源代码可在以下位置找到: http://blog.blundell-apps.com/click-item-in-a-listview-to-show-youtube-video/ 一旦我更改了YouTube GData链接 来自: https://gdata.youtube.com/f
问题内容: 如果我有YouTube视频URL,是否可以使用PHP和cURL从YouTube API获取关联的缩略图? 问题答案: 每个YouTube视频都有四个生成的图像。可以预计,它们的格式如下: 列表中的第一个是全尺寸图像,其他是缩略图图像。默认的缩略图图像(即,一个,,)为: 对于缩略图的高质量版本,请使用类似于以下内容的URL: 缩略图还有一个中等质量的版本,使用类似于HQ的URL: 对于
有没有办法通过自定义网址(使用Youtube API)来获取Youtube频道的频道ID? 例: 自定义网址如下所示: https://www.youtube.com/onepiece 我想获取它的通道ID,以便我有这样的链接: www.youtube.com/user/OnePieceUK
问题内容: 此PHP函数在情况1中无法正确获取ID,但在情况2中将无法获取ID。情况1非常常见,其中YouTube ID后面可能包含任何内容。 我在想的是,必须有一种方法可以查找“ v =“,无论它位于URL中的什么位置,然后再取字符。这样,就不需要复杂的RegEx。这是基地吗?对起点有什么想法吗? 问题答案: 这就是我从YouTube网址中提取ID的方法。我认为它在所有情况下都有效。 请注意,最