从 URL 获取 YouTube 频道的 Avatar/Thumbnail

Get YouTube Channel's Avatar/Thumbnail from URL

我搜索并尝试了一些方法,例如 DOM 和一些 API 方法。我在 API 上找不到任何与 PHP 相关的明确文档。而且我以前从未使用过DOM,所以我没有经验。

所以基本上,我需要一种方法来获取 YouTube 频道的头像并使用频道 URL 中的 PHP 显示它。

有什么想法吗?

使用 cURL 或替代方法获取用户 YouTube 页面的来源,然后使用此代码获取他们的头像。

echo GetBetween($YouTubePage,'<img class="appbar-nav-avatar" src="','" title="');


function GetBetween($content,$start,$end){
$r = explode($start, $content);
if (isset($r[1])){
$r = explode($end, $r[1]);
return $r[0];
}
return '';
}

您可以使用 file_get_contents 或 cUrl。

你的 url 看起来像 http://gdata.youtube.com/feeds/api/users/PUTCHANNELID?fields=yt:username,media:thumbnail,title&alt=json

如果您更喜欢使用 XML,您可以删除最后一个参数 alt=json 以下是响应示例:

    {
     version: "1.0",
     encoding: "UTF-8",
     entry: {
             xmlns: "http://www.w3.org/2005/Atom",
             xmlns$media: "http://search.yahoo.com/mrss/",
             xmlns$yt: "http://gdata.youtube.com/schemas/2007",
     title: {
             $t: "CSS Masters Israel",
             type: "text"
            },
     media$thumbnail: {
         url:"http://yt3.ggpht.com/qC5rLzDDlKA/AAAAAAAAAAI/AAAAAAAAAAA/ijaVa2hQjso/s88-c-k-no/photo.jpg"
     },
    yt$username: {
        $t: "TJv3MtKko-T3gDGn5XFyPA"
    }}}

所以你只需要得到media$thumbnail[url]并在

中使用它
echo '<img src="'.media$thumbnail[url].'"/>

此外,您应该从响应中获取标题并将其用作图片的 alt 和 title 属性。