如果我有YouTube视频网址,有没有办法使用PHP和cURL从YouTube API获取相关缩略图?
我正在学习如何创建Chrome扩展程序.我刚开始开发一个来捕捉YouTube活动.我想将它与YouTube Flash播放器一起使用(稍后我将尝试使其与HTML5兼容).
manifest.json的:
{
"name": "MyExtension",
"version": "1.0",
"description": "Gotta catch Youtube events!",
"permissions": ["tabs", "http://*/*"],
"content_scripts" : [{
"matches" : [ "www.youtube.com/*"],
"js" : ["myScript.js"]
}]
}
Run Code Online (Sandbox Code Playgroud)
myScript.js:
function state() { console.log("State Changed!"); }
var player = document.getElementById("movie_player");
player.addEventListener("onStateChange", "state");
console.log("Started!");
Run Code Online (Sandbox Code Playgroud)
问题是控制台给了我"开始!" ,但没有"状态改变!" 当我播放/暂停YouTube视频时.
将此代码放入控制台时,它可以正常工作.我究竟做错了什么?
javascript google-chrome youtube-api google-chrome-extension content-script
我正在尝试嵌入YouTube视频的新iframe版本并将其设置为自动播放.
据我所知,没有办法通过修改URL的标志来做到这一点.有没有办法通过使用JavaScript和API来做到这一点?
我们需要按YouTube频道名称的视频列表(使用API).
我们可以使用以下API获取频道列表(仅限频道名称):
https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar
Run Code Online (Sandbox Code Playgroud)
以下是频道的直接链接
https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g
Run Code Online (Sandbox Code Playgroud)
要么
WWW.YouTube.com/channel/HC-8jgBP-4rlI
Run Code Online (Sandbox Code Playgroud)
现在,我们需要频道>> UCqAEtEr0A0Eo2IVcuWBfB9g或HC-8jgBP-4rlI的视频.
我们尝试了
https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&User=UC7Xayrf2k0NZiz3S04WuDNQ https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&q=UC7Xayrf2k0NZiz3S04WuDNQ
但是,它没有帮助.
我们需要在频道上发布的所有视频.上传到频道的视频可能来自多个用户,因此我认为提供用户参数不会有帮助......
我无法弄清楚如何使用Youtube的新嵌入代码样式自动播放视频.我尝试将&autoplay = 1添加到url,它使用旧样式,但它不起作用.例如,http://www.youtube.com/embed/JW5meKfy3fY是嵌入式链接,但http://www.youtube.com/embed/JW5meKfy3fY&autoplay=1不起作用.谁能告诉我怎么做?谢谢
我看到以下错误:
Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin
Run Code Online (Sandbox Code Playgroud)
使用此代码:
var http = new getXMLHttpRequestObject();
var url = "http://gdata.youtube.com/action/GetUploadToken";
var sendXML = '<?xml version="1.0"?><entry xmlns="http://www.w3.org/2005/Atom"'+
'xmlns:media="http://search.yahoo.com/mrss/'+
'xmlns:yt="http://gdata.youtube.com/schemas/2007">'+
'<media:group><media:title type="plain">My First API</media:title>'+
'<media:description type="plain">First API</media:description>'+
'<media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">People</media:category>'+
'<media:keywords>first, api</media:keywords></media:group></entry>';
http.open("POST", url, true);
http.setRequestHeader("Authorization", "AuthSub token=" + AccessToken);
http.setRequestHeader("X-GData-Key", "key="+ dev_key);
http.setRequestHeader("Content-Type", "application/atom+xml; charset=UTF-8");
http.onreadystatechange = function() {
if(http.readyState == 4) {
alert(http.responseXML);
}
}
http.send(sendXML);
Run Code Online (Sandbox Code Playgroud)
是什么导致这种情况,我该如何解决?
我希望能够控制基于iframe的YouTube播放器.这些播放器已经在HTML中,但我想通过JavaScript API控制它们.
我一直在阅读iframe API的文档,该文档解释了如何使用API向页面添加新视频,然后使用YouTube播放器功能控制它:
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('container', {
height: '390',
width: '640',
videoId: 'u1zgFlCw8Aw',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
}
Run Code Online (Sandbox Code Playgroud)
该代码创建一个新的播放器对象并将其分配给"播放器",然后将其插入#container div中.然后,我可以在"播放器"和呼叫操作playVideo(),pauseVideo()就可以了,等等.
但我希望能够对已经在页面上的iframe播放器进行操作.
我可以使用旧的嵌入方法很容易地做到这一点,例如:
player = getElementById('whateverID');
player.playVideo();
Run Code Online (Sandbox Code Playgroud)
但这不适用于新的iframe.如何在页面上分配iframe对象,然后在其上使用API函数?
这是我得到的错误消息:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided
('https://www.youtube.com') does not match the recipient window's origin
('http://localhost:9000').
Run Code Online (Sandbox Code Playgroud)
我已经看到了目标来源http://www.youtube.com和收件人来源的其他类似问题https://www.youtube.com,但没有一个像我的目标所在的地方https://www.youtube.com和原点http://localhost:9000.
我正在尝试为我的django页面提供一些我从其他地方获得的资源.
在feed中,我有你的YouTube视频,如: https://www.youtube.com/watch?v=A6XUVjK9W4o
一旦我将其添加到我的页面中,视频就不会显示出来:
拒绝在一个框架中显示" https://www.youtube.com/watch?v=A6XUVjK9W4o ",因为它将"X-Frame-Options"设置为"SAMEORIGIN".
然后我说,好吧,如果我改变watch了embed.然后youtube播放器显示,但没有视频,说:

有没有人知道我是如何让这个工作的?
我在这样的html中显示:
<iframe width="420" height="315"
src="{{vid.yt_url}}">
</iframe>
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了近一个小时,没有成功的迹象.我试图追加&output=embed.. nada ..
我正在使用YouTube API v3来搜索YouTube.
https://developers.google.com/youtube/v3/docs/search
如您所见,响应JSON不包含视频持续时间.有没有办法获得视频时长?
最好不再为结果中的每个元素调用API(除非这是获取持续时间的唯一方法).
youtube-api ×10
youtube ×6
javascript ×5
html ×2
php ×2
video ×2
ajax ×1
angularjs ×1
cors ×1
curl ×1
django ×1
iframe ×1
objective-c ×1
rest ×1