Youtube api YouTube API-通过URL嵌入

Youtube api YouTube API-通过URL嵌入,youtube-api,Youtube Api,我想通过url嵌入youtube视频,示例=https://gdata.youtube.com/feeds/api/users/estXcrew/uploads?max-结果=1 这是我使用的代码块 <div id="player"></div> <script> var tag = document.createElement('script'); tag.src = "https://www.youtube.com/

我想通过url嵌入youtube视频,示例=
https://gdata.youtube.com/feeds/api/users/estXcrew/uploads?max-结果=1

这是我使用的代码块

  <div id="player"></div>

    <script>
      var tag = document.createElement('script');

      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '200',
          width: '200',
          videoId: '//video ID Usually goes here',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }
      function onPlayerReady(event) {
        event.target.playVideo();
      }

      var done = false;
      function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING && !done) {
          setTimeout(stopVideo, 6000);
          done = true;
        }
      }
      function stopVideo() {
        player.stopVideo();
      }
    </script>

var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var播放器;
函数onyoutubeiframeapiredy(){
player=新的YT.player('player'{
高度:'200',
宽度:“200”,
videoId:“//视频ID通常在这里”,
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
函数onPlayerReady(事件){
event.target.playVideo();
}
var done=false;
函数onPlayerStateChange(事件){
如果(event.data==YT.PlayerState.PLAYING&&!done){
设置超时(停止视频,6000);
完成=正确;
}
}
函数stopVideo(){
player.stopVideo();
}

我从Youtube API的网站上复制了这段代码,因为我还没有太多的经验。如何用上面的链接替换“videoId”行?

加载YouTube视频替换

//视频ID通常在这里

使用要加载的视频的ID

YouTube视频示例:

现在在我将使用的视频ID中

videoId:'xmP7kQdAPhM'

或者,如果您使用了一些PHP,您可以尝试以下内容

<?php
$feedURL = 'http://gdata.youtube.com/feeds/api/users/estXcrew/uploads?max-results=1';
$sxml = simplexml_load_file($feedURL);
$i=0;
foreach ($sxml->entry as $entry) {
$media = $entry->children('media', true);
$watch = (string)$media->group->player->attributes()->url;

$pat = '/\=([^\"]*?)\&/'; 
$value=$watch ;
preg_match($pat, $value, $matches); 

echo "<iframe title='YouTube video player' class='youtube-player' type='text/html' 
width='640' height='390' src='http://www.youtube.com/embed/$matches[1]'
frameborder='0' allowFullScreen></iframe>";   
?>

<div class="videoitem">
<div class="videotitle">
<h3><a href="<?php echo $watch; ?>" class="watchvideo"><?php echo $media->group->title; ?></a></h3>
<p><?php echo $media->group->description; ?></p>        
</div>
</div>      
<?php $i++; if($i==3) { echo '<div class="clear small_v_margin"></div>'; $i=0; } } ?>
entry作为$entry){
$media=$entry->children('media',true);
$watch=(字符串)$media->group->player->attributes()->url;
$pat='/\=([^\“]*?)\&/';
$value=$watch;
预匹配($pat,$value,$MATCHS);
回声“;
?>


首先,关于url。请注意,此url表示使用版本2,并且此版本已被弃用。请参阅“受弃用政策约束的YouTube API”: 另外请注意,默认情况下使用的是版本1,对于版本2,您可能希望添加:v=2。如果您更喜欢JSON而不是XML格式的响应,请添加:alt=JSON。为了更好地阅读,请添加:prettyprint=true。 例如: 此外,由于在api版本3中使用JSON,您可能更喜欢使用JSON。要使用api版本3,必须首先通过注册获得api密钥。 要捕获响应,需要使用XMLHttpRequest()或ActiveXObject()将url发送到服务器。 寻找可以帮助您的(JS或其他类型)代码库,例如解析和编写XML或JSON字符串;或发送url请求。 有关jSON解析,请参阅:

关于提供的代码:使用参数。例如,在获得videoId后:

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
// Adding a library to send requests to a server ?
</script>
-->

<script>
      var myVideoId = "ZY7aRxb-Z1c";  // Set the videoId here.

      // insert an iframe
      var tag = document.createElement('script');
      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      var player; // reference to the player object
      var param = {      // video-player parameters
          height: '200',
          width: '200',
          videoId: 'xxxxxxxxxxx',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
       };
       param.videoId = myVideoId   // Replace the videoId parameter

      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', param);   // create the player object
      }

      function onPlayerReady(event) {
        event.target.playVideo();   // start to play
      }

      var done = false;   // flag
      function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING && !done) {
          //setTimeout(stopVideo, 6000);  // This will stop playing after 6 seconds
          done = true;
        }
      }
      function stopVideo() {
        player.stopVideo();
      }
    </script>
</head>

<body>
<div id="player">please wait...</div>
</body>
</html>

var myVideoId=“ZY7aRxb-Z1c”;//在此处设置视频ID。
//插入iframe
var tag=document.createElement('script');
tag.src=”https://www.youtube.com/iframe_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
var player;//对player对象的引用
var param={//视频播放器参数
高度:'200',
宽度:“200”,
videoId:'XXXXXXXXXX',
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
};
param.videoId=myVideoId//替换videoId参数
函数onyoutubeiframeapiredy(){
player=new YT.player('player',param);//创建player对象
}
函数onPlayerReady(事件){
event.target.playVideo();//开始播放
}
var done=false;//标志
函数onPlayerStateChange(事件){
如果(event.data==YT.PlayerState.PLAYING&&!done){
//setTimeout(stopVideo,6000);//这将在6秒后停止播放
完成=正确;
}
}
函数stopVideo(){
player.stopVideo();
}
请稍候。。。

是的,我知道。我的意思是如何嵌入此链接:该链接将我带到订阅此提要页面,但没有视频,我无法100%确定它是否会像那样工作。抱歉,嗯。感谢您的时间。我将进一步研究以找到不同的解决方案上述链接很好。响应为xml(文本)字符串。这取决于所使用的浏览器程序设置,以及如何处理响应。一个可以仅显示为文本,另一个可以使用它(仅显示部分内容和/或询问是否要订阅提要)。@Als我添加了另一个示例,但它是用PHP编写的。