実行結果
設置サンプル:[YouTube API(v3) - 複数のチャンネル情報取得(認証なし)
設置サンプルのソース
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="/module/include/strm/youtubedataapi_v3_list/style.css">
<title>YouTubeAPIv3サンプル | 複数チャンネル情報を取得(認証なし)</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
/* 開発キー
https://code.google.com/apis/console
var APIKEY="AIzaSyBWqa3wGl7b8DKxpepR6acqdvgn54_H-DA";
*/
var APIKEY="AIzaSyC3VBRnfUU9_qO1Gr1ARBO8BZLT-Sp6vFc";
/* APIロード */
function onJSClientLoad() {
dbg("★onJSClientLoad");
gapi.client.setApiKey(APIKEY);
gapi.client.load('youtube', 'v3', getUserChannel);
}
/* チャンネル情報取得 */
function getUserChannel(){
dbg("★getUserChannel");
var request=gapi.client.request({
path:"/youtube/v3/channels",
params :{
id:"UCWuGWqlTp0_To1eJuSBvLMg,UC5q0PIKGr2lGOsiT14AlEYg,UCclHSnngVTZK7LEOQAzcg1w,UC6xD-jKli-_qIYXDTsNv4dw",
part:"id, snippet, brandingSettings, contentDetails, invideoPromotion, statistics, topicDetails"
}
});
request.execute(function(resp) {
dbg(resp)
if(resp.error){
displayMessage("ERROR: "+resp.message);
}else{
output(resp);
}
});
}
/* HTML出力 */
function output(data){
dbg("★output");
var s="";
var pageInfo=data.pageInfo;
s+="<li><b>pageInfo</b>:<ul>";
s+="<li>resultsPerPage:"+pageInfo.resultsPerPage+"</li>";
s+="<li>totalResults:"+pageInfo.totalResults+"</li>";
s+="</ul></li>";
var totalResults=data.pageInfo.totalResults; /* 結果セット内の結果の合計数 */
var resultsPerPage=data.pageInfo.resultsPerPage; /* APIレスポンスに含まれる結果の数 */
var total=Math.floor(totalResults/resultsPerPage);
dbg("total:"+total+"/resultsPerPage:"+resultsPerPage+"/totalResults:"+totalResults);
$.each(data.items, function(i, item){
/* id */
s+="<li>★<b>"+((item.id)?"チャンネルID(id):"+item.id:"")+"</b><ul>";
/* snippet */
if(item.snippet){
var snippet=item.snippet;
s+="<li><b>snippet</b>:<ul>";
s+=(snippet.title)?"<li>チャンネル名称(title):"+snippet.title+"</li>":"";
s+=(snippet.description)?"<li>チャンネル説明文(description):"+snippet.description+"</li>":"";
s+=(snippet.publishedAt)?"<li>登録日(publishedAt):"+snippet.publishedAt+"</li>":"";
if(snippet.thumbnails && snippet.thumbnails.default){
/* サムネイル(default, medium, height) */
s+="<li>thumbnails:<ul>";
$.each(snippet.thumbnails, function(y, ytem){
s+="<li>"+y+":"+ytem.url+"<br><img src='"+ytem.url+"' /></li>";
});
s+="</ul></li>";
}
s+="</ul></li>";
}
/* brandingSettings */
if(item.brandingSettings){
s+="<li><b>brandingSettings</b><ul>";
var brandingSettings=item.brandingSettings;
for(var o in brandingSettings){
s+="<li>"+o+"<ul>";
for(var oo in brandingSettings[o]){
if(o=="hints"){
s+="<li>"+oo+"<ul>";
for(var ooo in brandingSettings[o][oo]){
s+="<li>"+ooo+": "+brandingSettings[o][oo][ooo]+"</li>";
}
s+="</ul>";
}else{
s+="<li>"+oo+": "+brandingSettings[o][oo]+"</li>";
}
}
s+="</ul></li>";
}
s+="</ul></li>";
}
/* contentDetails */
if(item.contentDetails){
s+="<li><b>contentDetails</b>:<ul>";
var contentDetails=item.contentDetails;
var googlePlusUserId=contentDetails.googlePlusUserId;
var relatedPlaylists=contentDetails.relatedPlaylists;
s+=(googlePlusUserId)?"<li>Google+のID(googlePlusUserId):<a href='https://plus.google.com/'>"+googlePlusUserId+"</a></li>":"";
if(relatedPlaylists){
s+="<li>関連プレイリスト(relatedPlaylists):<ul>";
s+=(relatedPlaylists.favorites)?"<li>お気に入りの動画(favorites):<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.favorites+"'>"+relatedPlaylists.favorites+"</a></li>":"";
s+=(relatedPlaylists.likes)?"<li>評価の高い動画(likes):<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.likes+"'>"+relatedPlaylists.likes+"</a></li>":"";
s+=(relatedPlaylists.uploads)?"<li>アップロード動画 (uploads):<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.uploads+"'>"+relatedPlaylists.uploads+"</a></li>":"";
s+=(relatedPlaylists.watchHistory)?"<li>閲覧履歴(watchHistory):<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.watchHistory+"'>"+relatedPlaylists.watchHistory+"</a></li>":"";
s+=(relatedPlaylists.watchLater)?"<li>後で見る(watchLater):<a href='http://www.youtube.com/playlist?list="+relatedPlaylists.watchLater+"'>"+relatedPlaylists.watchLater+"</a></li>":"";
s+="</ul></li>";
}
s+="</ul></li>";
}
/* invideoPromotion 入ってない */
if(item.invideoPromotion){
dbg(item.invideoPromotion);
}
/* statistics */
if(item.statistics){
var statistics=item.statistics;
s+="<li><b>statistics</b>:<ul>";
s+=(statistics.commentCount)?"<li>コメント数(commentCount):"+statistics.commentCount+"</li>":"";
s+=(statistics.subscriberCount)?"<li>登録者数(subscriberCount):"+statistics.subscriberCount+"</li>":"";
s+=(statistics.videoCount)?"<li>動画数(videoCount):"+statistics.videoCount+"</li>":"";
s+=(statistics.viewCount)?"<li>再生回数(viewCount):"+statistics.viewCount+"</li>":"";
s+="</ul></li>";
}
/* topicDetails 入ってない */
if(item.topicDetails){
dbg(item.topicDetails);
}
s+="</ul></li>";
});
$("#results").append("<h2>channels</h2><ul>"+s+"</ul>");
}
var dbg=function(str){
try{
if(window.console && console.log){
console.log(str);
}
}catch(err){
//alert("error:"+err);
}
}
</script>
<script src="https://apis.google.com/js/client.js?onload=onJSClientLoad"></script>
<link rel="stylesheet" type="text/css" href="/common/css/example.css"></head>
<body id='example3' class='example'><div class="ads" style="margin:32px auto;text-align:center;"></div><h1 class='h'><a href='/'>PHP & JavaScript Room</a> :: 設置サンプル</h1>
<h3 class='h'>実行結果</h3>
<h1>設置サンプル:[YouTube API(v3) - 複数のチャンネル情報取得(認証なし)</h1>
<div id="results"></div>
</body>
</html>