2515616 ランダム
 ホーム | 日記 | プロフィール 【フォローする】 【ログイン】

素直研究所

素直研究所

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

PR

キーワードサーチ

▼キーワード検索

プロフィール

すなおらぼ

すなおらぼ

カレンダー

ニューストピックス

フリーページ

2018年02月13日
XML
カテゴリ:WEB API
この間、JSONデータじゃなくて、チャンネルIDから動画URLリストを出してくれるようなプログラムを披露しようと思ってコーディングしてたんだが、諸事情で間に合わなくて放って置いたんだが、それも無責任なんでとりあえず動画のURLリストを50件並べて表示するアプリを作ろうと思う。
 API_Keyが見られないようにAPIのURLをキャストするにはPHPでコードを書けばいいんだが、それだけだと面白くないし、PHPで取得したJSONデータをJavascriptで受けるのにけっこう面倒だったんで、PHPでビデオIDを取得してそれを配列にして、JSONにエンコードしてJavascriptに渡し、https://www.youtube.com/watch?v=[ビデオID]の形でリスト化しました。

 上のJSONデータ(クリックで拡大)では、赤で囲んだところがビデオIDっすね。他にもサムネイル画像とかタイトルとか動画に関わる属性が取得できるんだが、それは折々。
 下のコードは、YoutubeのAPIにチャンネルIDとAPI Keyをつけて、URLをキャストしてチャンネルIDに関わるビデオIDを取得して、配列に入れて返す関数っすね。
function getPlayList($channel_id) {
  $url = "https://www.googleapis.com/youtube/v3/search?"
      ."part=snippet"
      ."&channelId=".$channel_id
      ."&maxResults=50"
      ."&regionCode=JP"
      ."&safeSearch=strict"
      ."&order=date&key=".API_KEY;
  $json = file_get_contents($url);
  $data = json_decode($json, true);
  $result = array();
  if (count($data) > 0) {
    $items = $data['items'];
    foreach($items as $item) {
      $id = $item['id'];
      array_push($result, $id["videoId"]);
    }
  }
  return $result;
}
 Javascriptでは、PHPの配列変数は読めないのでJSON構造体にして書き出したのをパースして、HTMLを動的に書き換えてURLのリストを表示してる訳っすよ。

http://sunao-labo.main.jp/api/youtube/get_url_list.php

※上の画像をクリックで上記のURLへジャンプ

ソフトウェア開発の素直研究所です。お仕事のご依頼はこちらからどうぞ!





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2018年02月13日 16時28分49秒
コメント(1) | コメントを書く


お気に入りブログ

★ナイトテーブルにコ… New! cozy-inn-antiqueさん

iOS 18.1 Public Bet… New! shigechan2008さん

bibigoはスープ鍋?… New! し〜子さんさん

#富山地鉄 軌道線 70… New! 鉄人騎士。さん

fukusimaの事務所へ… New! かずまる@さん

コメント新着

すなおらぼ@ Re[1]:貧乏飯(06/29) かずまる@さんへ いつも有難うございます…
かずまる@@ Re:貧乏飯(06/29) すなおさんこんにちは! ビンボー感が全く…
すなおらぼ@ Re[1]:貧乏飯(06/29) し〜子さんさんへ お久し振りです。いつも…
し〜子さん@ Re:貧乏飯(06/29) お久しぶりです 暑いですね こんなときに…
筑波大学附属病院は医局長がガスライティングと呼ばれる患者虐待やってる@ Re:筑波大学病院へ(01/16) 筑波大学附属病院は医局長がガスライティ…

© Rakuten Group, Inc.
X