我正在尝试为特定的YouTube频道提供订阅者数量.我在Stackoverflow和外部网站上提到了一些链接,遇到过像这样的链接.几乎所有链接都建议我使用youtube gdata api并从subscriberCount中提取计数,但以下代码
$data = file_get_contents("http://gdata.youtube.com/feeds/api/users/Tollywood/playlists");
$xml = simplexml_load_string($data);
Run Code Online (Sandbox Code Playgroud)
的print_r($ XML);
不返回这样的subscriberCount.有没有其他方法可以让订阅者计数或我做错了什么?
不推荐使用YouTube API v2.0.以下是使用3.0的方法.不需要OAuth.
1)登录Google帐户,然后转到https://console.developers.google.com/.您可能必须开始一个新项目.
2)导航到APIs & auth并转到公共API访问 - >创建新密钥
3)选择您需要的选项(我使用'浏览器应用程序')这将为您提供API密钥.
4)导航到YouTube中的频道并查看网址.频道ID位于:https://www.youtube.com/channel/YOUR_CHANNEL_ID
5)使用API密钥和渠道ID获取此查询的结果:https://www.googleapis.com/youtube/v3/channels?part = statistic& id = YOUR_CHANNEL_ID& key = YOUR_API_KEY
巨大的成功!
文档实际上非常好,但有很多.这里有几个关键链接:
渠道信息文档:https://developers.google.com/youtube/v3/sample_requests
"试试看"页面:https://developers.google.com/youtube/v3/docs/subscriptions/list#try-it
小智 8
试试这个 ;)
<?php
$data = file_get_contents('http://gdata.youtube.com/feeds/api/users/Tollywood');
$xml = new SimpleXMLElement($data);
$stats_data = (array)$xml->children('yt', true)->statistics->attributes();
$stats_data = $stats_data['@attributes'];
/********* OR **********/
$data = file_get_contents('http://gdata.youtube.com/feeds/api/users/Tollywood?alt=json');
$data = json_decode($data, true);
$stats_data = $data['entry']['yt$statistics'];
/**********************************************************/
echo 'lastWebAccess = '.$stats_data['lastWebAccess'].'<br />';
echo 'subscriberCount = '.$stats_data['subscriberCount'].'<br />';
echo 'videoWatchCount = '.$stats_data['videoWatchCount'].'<br />';
echo 'viewCount = '.$stats_data['viewCount'].'<br />';
echo 'totalUploadViews = '.$stats_data['totalUploadViews'].'<br />';
?>
Run Code Online (Sandbox Code Playgroud)
我可以用正则表达式为我的页面做,不确定它是否适合你.检查以下代码:
<?php
$channel = 'http://youtube.com/user/YOURUSERNAME/';
$t = file_get_contents($channel);
$pattern = '/yt-uix-tooltip" title="(.*)" tabindex/';
preg_match($pattern, $t, $matches, PREG_OFFSET_CAPTURE);
echo $matches[1][0];
Run Code Online (Sandbox Code Playgroud)