YouTube APIでもっと便利に!動画検索・データ取得・サイト連携を自動化しよう

未分類

こんにちは。株式会社ネクフルです。

YouTubeにある動画やチャンネルの情報は、YouTube APIを使うことで自社サイトやWebサービスから取得できます。動画を探したり、新着情報を反映したり、再生リストと連携したりと、手作業だった更新を自動化できるのが大きなメリットです。ただし、利用できる量には制限があり、作り方によっては開発や運用の負担が増えることもあります。まずはYouTube APIで何が便利になるのか、身近な使い方から見ていきましょう。

バナー上
プロに聞いてみたほうが早いかも?ネクフルへの相談はこちら
  1. YouTube APIを使うとこんなことを自動化できる
    1. YouTubeの情報を自分のサービスから取得できる
    2. 手作業だった部分をシステムに任せられる
  2. 動画を探す・情報を集める・更新する手間が減らせる
    1. 毎回YouTubeを確認して転記する必要がなくなる
    2. 動画が増えるほど自動化の効果が大きくなる
  3. YouTube APIはYouTubeと外部サービスをつなぐ仕組み
    1. APIはサービス同士が情報をやり取りするための窓口
    2. YouTube Data APIで扱える情報にはルールがある
  4. 動画検索から再生リストまで、実際に使える機能を見てみよう
    1. 動画検索と動画情報の取得
    2. チャンネル情報を取得する
    3. 再生リストを取得・管理する
    4. 組み合わせると独自の動画サービスも作れる
  5. 便利だけど好きなだけ使えるわけではない
    1. YouTube Data APIにはクォータがある
    2. 使い切るとAPIを利用できなくなる
  6. クォータの使い方でサービスの作り方も変わる
    1. APIによって消費量は大きく違う
    2. 検索を何度も実行する設計は特に確認が必要
    3. 開発前に簡単な利用量を計算しておく
  7. API制限を考えながらムダな処理と開発コストを減らす
    1. 同じ情報を何度も取得しない
    2. 必要な情報と更新頻度を先に決める
    3. APIを使えば必ず開発費が安くなるわけではない
  8. まずは「何を自動化したいか」から考えよう
    1. APIありきで考えなくてもいい
    2. できることと制限をセットで考える

YouTube APIを使うとこんなことを自動化できる

YouTube APIを使うと、YouTubeにある動画やチャンネルの情報を外部のサイトやシステムから利用できます。動画を公開するたびに自社サイトを更新したり、必要な情報をYouTubeで探して転記したりする作業を、システムに任せられるようになります。

YouTubeの情報を自分のサービスから取得できる

YouTube APIという名前だけを見ると、エンジニア向けの難しい仕組みに感じるかもしれません。まずは「YouTubeにある情報を、別のサイトやサービスから利用するための仕組み」と考えると分かりやすいです。

たとえば、YouTubeには動画のタイトル、公開日時、サムネイル、チャンネル情報、再生リストなど、さまざまなデータがあります。

通常ならYouTubeを開いて確認する情報ですが、YouTube APIを使えばシステムから取得できます。

自社のYouTubeチャンネルに公開した動画をWebサイトにも一覧表示したり、特定の条件に合う動画を探したりと、YouTubeのデータを使った機能を作れるようになります。

手作業だった部分をシステムに任せられる

分かりやすいのが、自社サイトとYouTubeを両方運営しているケースです。

YouTubeに新しい動画を公開したあと、担当者がタイトルやURL、サムネイルなどを確認して自社サイトにも登録する。この方法でも運営できますが、動画が増えるほど同じ作業を繰り返すことになります。

YouTube APIを使えば、こうした情報をシステム側から取得できます。

ほかにも、

  • 特定チャンネルの動画を取得する
  • キーワードに合った動画を検索する
  • 動画のタイトルや公開日時などを取得する
  • チャンネル情報を取得する
  • 再生リストの情報を取得する

といった処理が可能です。

YouTube APIは、YouTubeを見るための機能というより、YouTubeのデータを利用して別のサイトやサービスを動かすための仕組みと考えるとイメージしやすくなります。

動画を探す・情報を集める・更新する手間が減らせる

YouTube APIの便利さが分かりやすく表れるのが、繰り返し発生する作業の自動化です。一つひとつは簡単な作業でも、動画やチャンネルが増えると管理量は一気に増えます。APIを利用することで、人が毎回確認しなくても情報を取得できるようになります。

毎回YouTubeを確認して転記する必要がなくなる

たとえば、企業がYouTubeと自社のオウンドメディアを運営しているとします。

YouTubeへ新しい動画を公開するたびに、

「動画が公開されたか確認する」
「タイトルやURLをコピーする」
「サムネイルを確認する」
「自社サイトへ登録する」

といった作業をしているなら、その一部を自動化できます。

YouTube側から必要な情報を取得して、自社サイトの動画一覧へ反映する仕組みにすれば、担当者が毎回同じ情報を入力する必要はありません。

YouTubeを利用した動画ポータルや検索サービスなどでも同じです。必要な動画を人が探して登録するのではなく、条件に合った情報をAPIから取得して表示できます。

単純な時間短縮だけでなく、転記ミスや更新漏れを減らせるのもメリットです。

動画が増えるほど自動化の効果が大きくなる

動画が5本程度なら、手作業で更新してもそれほど負担にはならないでしょう。

ところが50本、100本と増えてくると状況が変わります。複数のYouTubeチャンネルを扱うサービスなら、さらに確認する情報が増えていきます。

特に負担になりやすいのが、継続的な更新です。

新しい動画が追加されるたびに確認する、公開情報が変われば修正する、複数の場所へ同じ情報を登録する。このような小さな作業が積み重なると、運用に必要な時間も増えていきます。

API連携によって必要な情報を自動取得できれば、担当者は動画データを集める作業ではなく、どの動画を見せるか、どう整理するかといった部分に時間を使えます。

ただし、何でもリアルタイムに取得すればよいわけではありません。情報を取得する頻度や方法によってAPIの利用量が変わるため、自動化する範囲を決めることも大切です。

YouTube APIはYouTubeと外部サービスをつなぐ仕組み

YouTube APIでできることが分かってくると、「そもそもAPIは何をしているのか」も理解しやすくなります。難しい仕組みから覚える必要はありません。人がYouTubeを操作する代わりに、システム同士が決められた方法で情報をやり取りする仕組みです。

APIはサービス同士が情報をやり取りするための窓口

普段YouTubeを使うときは、画面から動画を検索したり、チャンネルを開いたりします。

YouTube APIを利用する場合は、人が画面を操作する代わりに、外部のシステムからYouTubeへ「この条件の動画情報が欲しい」「このチャンネルの情報が欲しい」とリクエストします。

YouTube側は、その要求に応じて決められた形式でデータを返します。受け取ったデータを自社サイトに表示したり、別の処理に利用したりできます。

イメージとしては、

自社サイト・サービス → YouTube API → YouTubeのデータ

という流れです。

APIを利用する側はYouTubeそのものを作る必要はありません。すでにYouTube側に用意されている機能やデータを利用しながら、自分たちのサービスに必要な機能を組み立てられます。

YouTube Data APIで扱える情報にはルールがある

YouTube APIを使えば、YouTube上の情報を何でも自由に取得・変更できるわけではありません。

YouTube Data APIには、利用できる機能や取得できるデータがあらかじめ決められています。

公開されている動画やチャンネルの情報を取得する処理もあれば、ユーザーの認証や権限が必要になる操作もあります。たとえば、自分が管理する再生リストを変更するといった操作では、単に公開情報を見る場合とは扱いが異なります。

さらに、APIの利用には「クォータ」と呼ばれる利用量の仕組みがあります。

そのため、サービス開発では「YouTube APIで実現できるか」だけではなく、必要な情報をどの機能で取得し、それをどのくらいの頻度で利用するのかまで考える必要があります。

ここが、YouTube APIを使ったサービスの開発コストや運用方法にも関係してきます。

動画検索から再生リストまで、実際に使える機能を見てみよう

YouTube APIで扱えるのは、動画そのものだけではありません。検索、動画情報、チャンネル情報、再生リストなどを組み合わせることで、YouTubeのデータを使ったさまざまな機能を作れます。代表的な使い方を具体的に見てみましょう。

動画検索と動画情報の取得

分かりやすい機能の一つが動画検索です。

キーワードなどの条件を指定してYouTube上の動画を検索し、その結果を自社サイトやサービスで利用できます。たとえば、特定のテーマに関連する動画を探して一覧表示するような使い方です。

動画の情報を取得する機能では、タイトルや説明、公開日時、サムネイルなどを取得できます。公開されている統計情報など、用途に応じてさらに詳しいデータを扱うこともできます。

これらを組み合わせれば、YouTubeで動画を探して情報をコピーし、自社サイトへ登録する作業の一部を自動化できます。

チャンネル情報を取得する

YouTube APIでは、チャンネルに関する情報も取得できます。

たとえばチャンネル名や説明、公開されている統計情報などを取得し、自社サービス側で表示できます。

一つのチャンネルだけでなく、複数のチャンネルを扱うサービスでも利用できます。登録しているチャンネルの情報をまとめて取得する仕組みにすれば、それぞれのYouTubeページを担当者が確認して回る必要はありません。

企業が複数ブランドのYouTubeチャンネルを運営している場合や、多数のクリエイターを扱うサービスなどでも活用を考えられます。

再生リストを取得・管理する

再生リストに関する情報もAPIから扱えます。

公開されている再生リストや、そこに含まれる動画の情報を取得すれば、YouTube側で整理した動画のまとまりを外部サービスでも利用できます。

さらに、必要な認証と権限を持ったユーザーであれば、APIを通じて再生リストを作成したり、内容を変更したりすることも可能です。

たとえば研修、商品紹介、イベントなどのテーマごとにYouTubeで動画を整理し、その構成を別のWebサービスと連携するといった使い方が考えられます。

組み合わせると独自の動画サービスも作れる

APIの機能は、単独で使うだけではありません。

動画検索、動画情報、チャンネル情報、再生リストなどを組み合わせることで、用途に合わせた機能を作れます。

たとえば、

  • 自社チャンネルの新しい動画をWebサイトへ反映する
  • 複数チャンネルの動画を一つのページに集める
  • 特定テーマに関連するYouTube動画を検索できるようにする
  • YouTube上で整理した再生リストを別のサービスでも利用する

といった形です。

YouTube APIそのものが完成した動画サービスを提供してくれるわけではありません。YouTubeが持っているデータや機能を材料として使い、必要なサービスを作りやすくするものと考えると分かりやすいでしょう。

便利だけど好きなだけ使えるわけではない

YouTube APIを使えばさまざまな処理を自動化できますが、無制限に利用できるわけではありません。そこで知っておきたいのが「クォータ」です。難しそうな言葉ですが、簡単にいえばAPIを利用できる量を管理するための仕組みです。

YouTube Data APIにはクォータがある

YouTube Data APIでは、APIを使った処理ごとに一定の「クォータコスト」が設定されています。

Googleの公式ドキュメントでは、APIを有効にしたプロジェクトには通常、1日10,000ユニットのクォータが割り当てられます。

ここで注意したいのは、「APIを1日10,000回使える」という意味ではないことです。

処理によって必要なユニット数が違います。

たとえば、動画情報を取得する videos.list は1回1ユニットですが、検索に使う search.list は1回100ユニットです。

つまり同じ「APIを1回使う」という処理でも、クォータの減り方には大きな差があります。

処理の例クォータコストの例
動画情報を取得する videos.list1ユニット
チャンネル情報を取得する channels.list1ユニット
再生リストを取得する playlists.list1ユニット
動画などを検索する search.list100ユニット

この違いがあるため、APIを使ったサービスを作る場合は「何回アクセスするか」だけでは利用量を判断できません。

使い切るとAPIを利用できなくなる

その日のクォータを使い切ると、基本的にはクォータがリセットされるまで追加のAPIリクエストが利用できなくなります。

小規模なサイトでは問題にならなくても、利用者が増えるサービスでは影響が大きくなる可能性があります。

たとえば利用者が検索するたびに search.list を実行するサービスなら、利用者の増加に合わせてクォータ消費も増えていきます。

利用者が操作していない時間にも、システムが数分おきに複数チャンネルを確認するような設計なら、その処理でもクォータを使います。

必要に応じて追加クォータを申請する仕組みも用意されていますが、Googleでは申請時にAPIサービスのコンプライアンス監査などを求めています。

そのため、最初から「足りなくなったら増やせばいい」と考えるより、現在のクォータでどの程度運用できるのかを開発前に確認しておく方が現実的です。

クォータの使い方でサービスの作り方も変わる

API制限は、サービスを公開したあとだけの問題ではありません。どのAPIを、誰が、どのくらいの頻度で使うのかによって、必要な設計そのものが変わります。特に利用者の操作と連動してAPIを呼び出す場合は、利用規模を想定しておく必要があります。

APIによって消費量は大きく違う

先ほどの例では、videos.list が1ユニットなのに対して、search.list は100ユニットでした。

仮に1日10,000ユニットという標準クォータだけで単純計算すると、1ユニットの処理と100ユニットの処理では実行できる回数に大きな差が出ます。

そのため、

「YouTube APIを何回使う予定か」

ではなく、

「どのAPIを何回使う予定か」

まで確認することが重要です。

作りたい機能を先に決め、その機能がどのAPIを利用し、どれくらいクォータを消費するのかを確認していくと、公開後の想定外を減らせます。

検索を何度も実行する設計は特に確認が必要

たとえば、利用者がキーワードを入力するとYouTube動画を検索できるサービスを考えてみます。

検索ボタンを押すたびに search.list を実行するなら、検索回数に応じてクォータを消費します。

1日数十回程度の利用を想定していたサービスでも、利用者が増えて数百回、数千回と検索されるようになれば条件は変わります。

定期処理も同様です。

「最新情報を保つために頻繁に取得する」という設計は分かりやすいものの、本当にその頻度が必要なのかは検討する余地があります。

1分ごとの更新が必要なサービスと、1日数回の更新で十分なサイトでは、必要なAPI利用量がまったく違います。

開発前に簡単な利用量を計算しておく

細かな計算をする前に、まず次の項目を整理してみるだけでも違います。

確認する項目考えること
利用者数1日に何人程度が利用するか
利用回数1人が何回機能を使うか
使用するAPI検索、動画情報取得など何を使うか
クォータコスト1回の処理で何ユニット使うか
定期処理利用者とは別に自動取得する処理があるか
更新頻度どのくらい新しい情報が必要か

最初は小規模でも、サービスが成長すればAPIの利用量も変わります。

現在の利用量だけでなく、利用者が10倍になったらどうなるかまで簡単に計算しておくと、クォータを考慮した設計がしやすくなります。

API制限を考えながらムダな処理と開発コストを減らす

YouTube APIを使えば、YouTube側に用意されている機能やデータを活用できるため、すべてをゼロから作る必要はありません。一方で、APIを呼び出すたびにクォータを消費します。必要な情報と更新頻度を整理しておくことが、ムダな処理と開発・運用コストを抑えるポイントになります。

同じ情報を何度も取得しない

クォータを効率よく使う方法の一つが、一度取得した情報を自社側で一定期間保存しておくことです。

たとえば動画一覧を表示するたびに、毎回YouTube APIから同じ動画情報を取得する必要があるとは限りません。

一度取得した動画タイトルやサムネイル、公開日時などを自社側に保存し、必要なタイミングだけYouTubeから新しい情報を取得する方法もあります。

こうした一時的なデータ保存は「キャッシュ」と呼ばれます。

たとえば1日に何千回も閲覧されるページがあっても、動画情報そのものは1時間に1回更新すれば十分なのであれば、閲覧のたびにYouTube APIへ問い合わせる必要はありません。

ただし、YouTube APIで取得したデータの保存や更新については、YouTube API Servicesのポリシーに従う必要があります。単純に「一度取得したらずっと保存しておけばいい」というものではないため、扱うデータごとのルールを確認したうえで設計します。

必要な情報と更新頻度を先に決める

APIの利用量を減らすために更新頻度を落とせばよい、という単純な話でもありません。

大切なのは、そのサービスでどのくらい新しい情報が必要なのかを先に決めることです。

たとえば、新着動画を紹介するサイトでも、公開から数秒以内に反映する必要があるケースはそれほど多くありません。数十分や数時間ごとの更新でも、サービスとして十分成立する場合があります。

一方、YouTube上の変化をすぐに反映すること自体がサービスの価値になっているなら、更新頻度を高くする必要があります。

ここを決めないまま「とりあえず頻繁に取得する」設計にすると、必要以上にクォータを消費する可能性があります。

開発前に、

  • どの情報が必要なのか
  • どのくらい新しければよいのか
  • 利用者が操作したときだけ取得するのか
  • システム側で定期的に取得するのか
  • 取得した情報をどのように利用するのか

を整理しておくと、APIの使い方もシンプルになります。

APIを使えば必ず開発費が安くなるわけではない

YouTube APIを利用する大きなメリットは、YouTube側にすでに存在するデータや機能を利用できることです。

動画検索やチャンネル情報の取得といった仕組みを、すべて独自に用意する必要はありません。その意味では、開発範囲を小さくできる可能性があります。

ただし、実際のサービスではAPIを呼び出す処理だけを作れば完成、とはいきません。

取得したデータをどこに保存するか、いつ更新するか、APIから正常に情報を取得できなかったときにどうするか、ユーザー認証が必要な機能をどう扱うか、クォータをどのように管理するかといった設計も必要です。

利用者が増えれば、クォータ消費を抑えるための仕組みが必要になることもあります。

そのため開発コストを考えるときは、

「APIを使うから安くなる」ではなく、「APIにどこまで任せれば自前で作る部分を減らせるか」

という見方のほうが実態に近くなります。

必要な機能を絞り、YouTube APIが得意な部分を利用する。独自に管理する必要がある部分だけを自社サービス側で作る。この切り分けができると、必要以上に複雑なシステムを作らずに済みます。

まずは「何を自動化したいか」から考えよう

YouTube APIには多くの機能がありますが、すべてを使う必要はありません。先にAPIの機能を眺めるより、「今、人がやっている作業のどこを自動化したいのか」を整理したほうが、必要な機能や開発範囲を決めやすくなります。

APIありきで考えなくてもいい

たとえば、自社サイトとYouTubeを連携したい場合でも、目的はいくつか考えられます。

YouTubeへ公開した新着動画を自社サイトにも反映したい。

大量の動画から条件に合うものを探せるようにしたい。

複数チャンネルの動画を一つの場所にまとめたい。

再生リストを使って動画を整理したい。

目的が違えば、必要なAPIも、情報を取得する頻度も変わります。

反対に、動画が数本しかなく、更新も年に数回しかないサイトなら、API連携を開発するより手作業で更新したほうがシンプルな場合もあります。

自動化できるから自動化するのではなく、繰り返し発生している作業や、手作業では管理しづらくなっている部分からAPIに置き換えると、導入する意味が分かりやすくなります。

できることと制限をセットで考える

YouTube APIを使えば、動画検索、動画やチャンネル情報の取得、再生リストとの連携など、YouTubeを使ったさまざまな処理を自動化できます。

特に動画数や更新回数が増えてくると、人がYouTubeを確認して情報を転記するより、システム同士を連携させたほうが運営しやすくなる場面が増えてきます。

一方で、YouTube Data APIにはクォータがあり、使う機能によって消費量も異なります。利用者が増えれば、最初は問題なかった設計でも見直しが必要になる可能性があります。

だからこそ最初に考えたいのは、複雑なAPIの仕様ではありません。

何を自動化したいのか、どのくらい利用されるのか、情報はどのくらいの頻度で更新すればよいのか。

この3つが見えてくれば、YouTube APIを使う場所も決めやすくなります。

まずは小さな自動化から始め、利用規模に合わせて仕組みを広げていく。YouTube APIを「難しい開発技術」ではなく、YouTubeを使ったサービス運営をラクにするための選択肢として考えると、活用方法も見つけやすくなります。


よくある質問:
Q. YouTube APIは無料で使えますか?
A. YouTube Data APIは基本的に無料で利用できます。ただし、APIごとにクォータコストが設定されており、通常は1日10,000ユニットの上限があります。必要な利用量が大きい場合は、追加クォータの申請も含めて検討します。

Q. YouTube APIを使えば、新しい動画を自社サイトへ自動で表示できますか?
A. 可能です。チャンネルや動画の情報をAPIから取得し、自社サイト側へ反映する仕組みを作れます。更新頻度によってAPIの利用量が変わるため、どの程度の速さで反映する必要があるかも合わせて決めておくと設計しやすくなります。

Q. 動画が少なくてもYouTube APIを使ったほうがいいですか?
A. 必ずしも必要ではありません。動画が少なく更新頻度も低いなら、手作業のほうがシンプルな場合があります。動画数や更新回数が増え、検索・転記・更新などの繰り返し作業が負担になってきたときは、APIによる自動化のメリットが大きくなります。

タイトルとURLをコピーしました