NodeでYouTube Search API使ってみた


とあるきっかけでYouTube Search APIを使ってみたのでメモ。


APIの事前設定から、実際にNodeでSearch APIを叩くまでの流れです。

Google API利用する際の事前準備

YouTube APIの使用を有効化する

Google(YouTube)のAPIを利用するためには事前にAPIのサイトAPI Console
「APIと認証」という左側のメニューからAPIを選択します。リストからYouTube APIを探してONにすると以下のように有効なAPIに表示されます。

スクリーンショット 2015-03-22 21.07.32

アプリケーションの認証のためのキーを生成する

API Consoleの左側のメニューで認証情報を選択して、「公開APIへのアクセス」というセクションから「新しいキーを作成」をクリックします。
そこで「ブラウザキー」を選択して、リファラは各サイトの環境に応じて入れます。(自分は*.tejitak.com/*としてますが、localhostでも良さそう)

スクリーンショット 2015-03-22 21.11.38

以下のような感じで、キーが表示されていればOKです。(画像は加工してあります。)

スクリーンショット 2015-03-22 21.16.08

では準備は整いました。次はnodeのモジュールです。

NodeJSモジュール youtube-node

youtubeのAPIをnodejs上で簡単に使えそうなモジュールがあったのでそれを使ってみました。

youtube-nodeのinstall

youtube-node
https://www.npmjs.com/package/youtube-node

以下のコマンドでインストール。
npm install youtube-node --save

Search APIを呼ぶ

nodeで適当なファイルを作成して、先ほど作成したキーをセットして、searchを呼び出さば結果が返ってきました!

var YouTube = require('youtube-node');

// initialize youtube client instance
var youTube = new YouTube();
youTube.setKey('xxxxxxxxxxx'/*先ほど取得したブラウザキー*/);

var videoSearch = function(keyword, count){
  youTube.search(keyword, count, function(error, result) {
    if(error){
      console.log(error);
    }else{
      // success!
      console.log(result);
    }
  });
}

// searchの実行
videoSearch('akb', 40);

簡単ですね。上記のコードで’akb’と指定した結果は以下のような感じで返ってきます。

{
  "kind": "youtube#searchListResponse",
  "etag": "\"9iWEWaGPvvCMMVNTPHF9GiusHJA/VAgapO753_d64W2VbJnOtMe3mWw\"",
  "nextPageToken": "CAoQAA",
  "pageInfo": {
    "totalResults": 301326,
    "resultsPerPage": 10
  },
  "items": [
    {
      "kind": "youtube#searchResult",
      "etag": "\"9iWEWaGPvvCMMVNTPHF9GiusHJA/nUs_XamLSod55sBORlCGP64A3IQ\"",
      "id": {
        "kind": "youtube#video",
        "videoId": "hLfmQ9lcFZs"
      },
      "snippet": {
        "publishedAt": "2015-03-11T21:43:24.000Z",
        "channelId": "UChPdH1SfR_neDs-Zn5pRKzA",
        "title": "AKB48 何をされても絶対怒らない!AKB仏セブン ※AKB調べ 2015-03-11 1/2 SKE48 NMB48 HKT48 乃木坂46",
        "description": "3位~1位⇒ https://youtu.be/ewu__aFHI84 大家志津香 高橋朱里 中西智代梨 大和田南那 指原莉乃 土田晃之 千秋.",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/hLfmQ9lcFZs/default.jpg"
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/hLfmQ9lcFZs/mqdefault.jpg"
          },
          "high": {
            "url": "https://i.ytimg.com/vi/hLfmQ9lcFZs/hqdefault.jpg"
          }
        },
        "channelTitle": "AKSholdings",
        "liveBroadcastContent": "none"
      }
    }]
}

以上、今回はたまたま触ってみたYoutube Search APIをnodeで使う方法についてでした。