この記事は GMOアドマーケティング Advent Calendar 2020 7日目の記事です。
はじめに
こんにちは。
GMOアドマーケティングのKONCEです。
今や「好きなテレビ番組なに?」 って質問するより 「好きなYouTubeチャンネルなに?」 と聞く方が僕の中でスタンダードになりつつあります。
今回は「YouTube Data API」を普段使用しているPHPで試してみようと思います。
① YouTube Data API ライブラリの有効化
GCPコンソール上から任意のプロジェクトでYouTube Data API ライブラリを有効化します。
APIとサービス → ライブラリ → YouTube Data API を検索 → 有効にする
② APIキーの取得
①でライブラリの有効後、認証情報からAPIキーを取得します。
認証情報 → 認証情報を作成 → APIキー
③ google/apiclient パッケージの追加
今回は google/apiclient を使用してみます。任意のディレクトリでrequireしてください。
composer require google/apiclient
④ コード
今回はYouTubeの急上昇ランクトップ10を試しに取ってみます。
パラメータなどはドキュメントから確認できます。
regionCodeで日本を選択でき、chartでmostPopularを使用すれば急上昇が取れそうです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
<?php require_once (dirname(__FILE__) . '/vendor/autoload.php'); class TestYouTube { const API_KEY = "XXXXXXXXXX"; public $youtube; public function __construct() { $this->youtube = new Google_Service_YouTube($this->getClient()); } public function getClient() { $client = new Google_Client(); $client->setApplicationName("youtubeTestApp"); $client->setDeveloperKey(self::API_KEY); return $client; } public function getTop10() { $part = [ 'snippet', 'statistics' ]; $params = [ 'chart' => 'mostPopular', 'maxResults' => 10, 'regionCode' => 'JP', ]; $search_results = $this->youtube->videos->listVideos($part, $params); $videos = []; foreach ($search_results['items'] as $search_result) { $videos[] = $search_result; } return $videos; } } $test_youtube = new TestYouTube(); $videos = $test_youtube->getTop10(); $i = 1; foreach ($videos as $video) { $view_count = number_format($video['statistics']['viewCount']); $text = <<<TEXT {$i} 位 タイトル : {$video['snippet']['title']} 再生回数 : {$view_count} 回 リンク : https://www.youtube.com/watch?v={$video['id']} TEXT; echo $text . PHP_EOL . PHP_EOL; $i++; } |
実行結果
(実行日: 2020年11月26日)
1 位
タイトル : NiziU(니쥬) Debut Single『Step and a step』MV
再生回数 : 15,921,639 回
リンク : https://www.youtube.com/watch?v=a6QT0acJFQE
2 位
タイトル : トミーが本当に坊主になるドッキリwwww【6mm】
再生回数 : 746,801 回
リンク : https://www.youtube.com/watch?v=eFWyibe_Pwo
3 位
タイトル : BTS: Dynamite
再生回数 : 4,031,225 回
リンク : https://www.youtube.com/watch?v=J8fQMq4T8Yg
4 位
タイトル : 菅田将暉 『虹』
再生回数 : 1,727,800 回
リンク : https://www.youtube.com/watch?v=hkBbUf4oGfA
5 位
タイトル : Snow Man「オープンバスで思い出の地巡り」9ヶ月ぶりに外に出ます!
再生回数 : 746,954 回
リンク : https://www.youtube.com/watch?v=5n0xZ_WQVZE
6 位
タイトル : ホークス公式 SMBC日本シリーズ2020優勝祝勝会
再生回数 : 166,649 回
リンク : https://www.youtube.com/watch?v=cstKEhL2wuc
7 位
タイトル : #ACL2020 : GUANGZHOU EVERGRANDE FC (CHN) 1 - 3 VISSEL KOBE (JPN) : Highlights
再生回数 : 281,850 回
リンク : https://www.youtube.com/watch?v=sy4Cq-bcSQk
8 位
タイトル : ガチすっぴんで整形前の卒業写真公開する😓
再生回数 : 300,316 回
リンク : https://www.youtube.com/watch?v=e3ls-ZI7ekE
9 位
タイトル : 【大変すぎ】家族でユニバに行く準備!メイクしながら旅行先でもできる簡単ヘアアレンジ教えたる〜!【雑談】
再生回数 : 975,634 回
リンク : https://www.youtube.com/watch?v=2yc66pyyOvk
10 位
タイトル : #ACL2020 : SHANGHAI SIPG FC (CHN) 0-1 YOKOHAMA F.MARINOS (JPN) : Highlights
再生回数 : 193,866 回
リンク : https://www.youtube.com/watch?v=JMmucw3wl9A
PHPでも簡単に取れました。
最後に
GCPのライブラリの中でスプレッドシートやドライブなどは業務でも多く使用しますが、今回は業務では全く使用しない YouTube のAPIを使用してみました。
サムネイルやビューアーも取れるようなのでまたいろいろ触ってみようと思います。
明日は、石丸さんによる「Rails 6.1の新機能「annotate_rendered_view_with_filenames」を試す」です。
引き続き、GMOアドマーケティング Advent Calendar 2020 をお楽しみください!
■エンジニア採用ページ ~福利厚生や各種制度のご案内はこちら~
https://www.gmo-ap.jp/engineer/
■noteページ ~ブログや採用、イベント情報を公開中!~