如何用php在网站上嵌入youtube频道视频

如何用php在网站上嵌入youtube频道视频,php,iframe,youtube,embed,channel,Php,Iframe,Youtube,Embed,Channel,在youtube api v3更新之后,我不知道如何修复我网站的视频部分。 本节显示上传到我的youtube频道UCBL3ecWukz_EX7FrDmtdgJQ的视频 我已经为web应用程序创建了OAuth:Client-ID,为服务器应用程序创建了Public-API-access:Key,为浏览器应用程序创建了Key 现在我正试图了解如何使用它们来检索上传到我频道的视频列表 我试过这个密码 https://www.googleapis.com/youtube/v3/search?part=s

在youtube api v3更新之后,我不知道如何修复我网站的视频部分。 本节显示上传到我的youtube频道UCBL3ecWukz_EX7FrDmtdgJQ的视频

我已经为web应用程序创建了OAuth:Client-ID,为服务器应用程序创建了Public-API-access:Key,为浏览器应用程序创建了Key

现在我正试图了解如何使用它们来检索上传到我频道的视频列表

我试过这个密码

https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCBL3ecWukz_EX7FrDmtdgJQ&maxResults=20&key=***************************************
现在我不知道如何处理输出。。 诸如此类

{
“种类”:“youtube#searchListResponse”,
“etag”:“iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/6M9Lo8BzT3ingng1jJF2bBh1CNs”,
“页面信息”:{
“总体结果”:5,
“每页结果”:20
},
“项目”:[
{
“种类”:“youtube#searchResult”,
“etag”:“iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/LHUK9eLdq9H2-Szizgc5BvV-gxM”,
“id”:{
“种类”:“youtube频道”,
“信道ID”:“UCBL3ecWukz_EX7FrDmtdgJQ”
},
“片段”:{
“发布日期”:“2014-12-26T11:20:46.000Z”,
“信道ID”:“UCBL3ecWukz_EX7FrDmtdgJQ”,
“标题”:“Parrocchia Sant'Agata Alì”,
“说明”:“,
“缩略图”:{
“默认值”:{
“url”:”https://lh5.googleusercontent.com/-O78yDecTsmk/AAAAAAAAAAI/AAAAAAAAAAA/U-NQ4NkzZQE/photo.jpg"
},
“中等”:{
“url”:”https://lh5.googleusercontent.com/-O78yDecTsmk/AAAAAAAAAAI/AAAAAAAAAAA/U-NQ4NkzZQE/photo.jpg"
},
“高”:{
“url”:”https://lh5.googleusercontent.com/-O78yDecTsmk/AAAAAAAAAAI/AAAAAAAAAAA/U-NQ4NkzZQE/photo.jpg"
}
},
“名称”:“名称”,
“liveBroadcastContent”:“无”
}
},
{
“种类”:“youtube#searchResult”,
“etag”:“iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/YPX-4TZwL2BMwOoIP3pO2\U KBzvs”,
“id”:{
“种类”:“youtube视频”,
“videoId”:“FjGA6cjh5zI”
},
“片段”:{
“发布日期”:“2015-02-12T23:45:39.000Z”,
“信道ID”:“UCBL3ecWukz_EX7FrDmtdgJQ”,
“标题”:“阿尔ìS Agata Bacio del braccio”,
“说明”:“,
“缩略图”:{
“默认值”:{
“url”:”https://i.ytimg.com/vi/FjGA6cjh5zI/default.jpg"
},
“中等”:{
“url”:”https://i.ytimg.com/vi/FjGA6cjh5zI/mqdefault.jpg"
},
“高”:{
“url”:”https://i.ytimg.com/vi/FjGA6cjh5zI/hqdefault.jpg"
}
},
“名称”:“名称”,
“liveBroadcastContent”:“无”
}
},
{
“种类”:“youtube#searchResult”,
“etag”:“iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/-m38lEymXlK8ZVMm2dNRzX8e8ro”,
“id”:{
“种类”:“youtube视频”,
“videoId”:“7PQBjOedbtk”
},
“片段”:{
“发布日期”:“2015-02-07T20:43:40.000Z”,
“信道ID”:“UCBL3ecWukz_EX7FrDmtdgJQ”,
“标题”:“大安农西奥节日”,
“说明”:“,
“缩略图”:{
“默认值”:{
“url”:”https://i.ytimg.com/vi/7PQBjOedbtk/default.jpg"
},
“中等”:{
“url”:”https://i.ytimg.com/vi/7PQBjOedbtk/mqdefault.jpg"
},
“高”:{
“url”:”https://i.ytimg.com/vi/7PQBjOedbtk/hqdefault.jpg"
}
},
“名称”:“名称”,
“liveBroadcastContent”:“无”
}
},
{
“种类”:“youtube#searchResult”,
“etag”:“iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/Bv1fyl1c4aVHIrWuOV5gNf7xpMI”,
“id”:{
“种类”:“youtube视频”,
“videoId”:“Gmelq3hGEPI”
},
“片段”:{
“发布日期”:“2015-02-15T23:17:22.000Z”,
“信道ID”:“UCBL3ecWukz_EX7FrDmtdgJQ”,
“标题”:“阿尔ìS Agata riposta sull'altare”,
“说明”:“,
“缩略图”:{
“默认值”:{
“url”:”https://i.ytimg.com/vi/Gmelq3hGEPI/default.jpg"
},
“中等”:{
“url”:”https://i.ytimg.com/vi/Gmelq3hGEPI/mqdefault.jpg"
},
“高”:{
“url”:”https://i.ytimg.com/vi/Gmelq3hGEPI/hqdefault.jpg"
}
},
“名称”:“名称”,
“liveBroadcastContent”:“无”
}
},
{
“种类”:“youtube#searchResult”,
“etag”:“iDqJ1j7zKs4x3o3ZsFlBOwgWAHU/LZFjbm4TuWdxvls0Jzan6H6Ow5A”,
“id”:{
“种类”:“youtube视频”,
“videoId”:“GMizgWpyt2k”
},
“片段”:{
“发布日期”:“2015-03-27T22:13:32.000Z”,
“信道ID”:“UCBL3ecWukz_EX7FrDmtdgJQ”,
“头衔”:“阿尔ì基耶萨·阿加塔·普雷吉埃拉·佩尔·德维齐安·帕德雷·塞拉菲诺”,
“说明”:“,
“缩略图”:{
“默认值”:{
“url”:”https://i.ytimg.com/vi/GMizgWpyt2k/default.jpg"
},
“中等”:{
“url”:”https://i.ytimg.com/vi/GMizgWpyt2k/mqdefault.jpg"
},
“高”:{
“url”:”https://i.ytimg.com/vi/GMizgWpyt2k/hqdefault.jpg"
}
},
“名称”:“名称”,
“liveBroadcastContent”:“无”
}
}
]

}
真是巧合。。。我几天前才需要:)以下是我使用的代码:

<?php
    $playlistID = ''; // The Playlist ID for your 'uploads'-playlist.
    $videofile = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=10&playlistId=' . $playlistID;
    $json = file_get_contents($videofile);
    $json = preg_replace('/^\xEF\xBB\xBF/', '', $json);
    $array = json_decode($json, TRUE);

    foreach ($array as $key => $value) {
        if ($key == "items") {
            echo "<table class='vtable'>";
            for ($i = 0; $i < count($array["items"]); $i = $i + 1) {
                $id = $array["items"][$i]['snippet']['resourceId']['videoId'];
                $thumbnail = $array["items"][$i]['snippet']['thumbnails']['high']['url'];
                $title = $array["items"][$i]['snippet']['title'];
                $description = $array["items"][$i]['snippet']['description'];
                // do some stuff with the variables
            }
        }
    }
?>

1)从PHP发出HTTP请求,以获取字符串形式的JSON数据。使用cURL、Guzzle之类的库或file_get_contents()之类的内置函数来完成此操作。参考:

2) 使用以下命令将该字符串转换为标准对象

$api_result = json_decode($youtube_api_string); 
参考:

3) 编写一个循环,将搜索结果组合成可用的YouTube URL

$youtube_urls = []; 

for ($i = 0; $i < count($api_result->items); $i++) {
    $video = $api_result->items[$i];
    array_push($youtube_urls, ["url" => "http://youtube.com/watch?v=" . $video->id->videoId, "title" => $video->snippet->title ]);
}
$youtube_url=[];
对于($i=0;$iitems);$i++){
$video=$api_result->items[$i];
数组推送($youtube\uURL,[“url”=>)http://youtube.com/watch?v=“$video->id->videoId,”title“=>$video->snippet->title]);
}

从这里开始,您应该能够循环使用
$youtube\u url
变量来生成站点频道上的视频列表

谢谢你的回复!!for行给出错误:PHP致命错误:无法将stdClass类型的对象用作数组,因为它的奇怪。。。看起来你得到的是一个对象而不是数组。。尝试将所有
$array[“x”]
部件替换为
$array->x
$youtube_urls = []; 

for ($i = 0; $i < count($api_result->items); $i++) {
    $video = $api_result->items[$i];
    array_push($youtube_urls, ["url" => "http://youtube.com/watch?v=" . $video->id->videoId, "title" => $video->snippet->title ]);
}