YouTube APIの仕組みとブラウザだけでデータ取得する方法

動画まとめサイト

APIを実行するだけなら特別な環境は必要なく、お使いのブラウザだけで簡単にデータを取得する事が可能です。このページの解説を読みながら実際に手を動かしてみて下さい。

PHPによるプログラムは「自動で動画データを取得」や「取得した動画データを加工」する際に必要となります。頭の中で工程を切り分けて考えると、より理解がしやすくなると思います。

ちなみにニコニコ動画とFC2動画でもAPIが提供されていますので、このページを理解すれば複数の動画配信サイトから好きな動画を集め続ける事も可能です。工夫して便利なサイトを作ってみましょう。

今回はYouTubeの動画を使用していますが、APIが提供されているサービスであれば同じ手続きでデータ利用が可能です。APIによるデータの利用は様々なサイトで提供されており、yahoo・楽天・amazonなどの商品情報も取得できますし、docomo Developer supportのように画像認識・音声認識・文字認識などの機能も利用する事ができます。異なるAPI同士を組み合わせる事で新しいサービスを構築する事も可能なのですので、どんどん使っていきましょう。

YouTube APIの使い方

YouTube APIを利用するには「APIキー」が必須です。 APIキーを持っていない方は、取得手順と利用開始の設定について下の記事でまとめていますので、まずはそちらを読みながら準備して下さい。

APIキーの準備ができたら、あとはブラウザのURL欄にリクエストURLをコピペするだけでAPIが実行できます。このようにAPIは簡単に利用できるって事を実感した上で、目的のデータ操作をできるようにYouTube APIの理解を深めていきましょう。

YouTube APIで取得できる情報の種類

APIを利用する事でYouTube内のほとんどのデータにアクセスする事ができます、さらに動画に関連する膨大なデータ群の中から目的のものを探しやすくするため、YouTube APIでは「リソース > メソッド > パラメータ」の三階構造でデータの操作を行う事が可能です。

分かりやすくするためにメソッドとパラメータに関しては細かい部分を省略し、リクエストURLをまとめたのが次の表になります。

リソース名内容サンプルリクエストURL([]ごと置き換え)
activityYouTube内で操作した情報を取得https://www.googleapis.com/youtube/v3/activities?part=snippet&channelId=[任意のチャンネルID]&key=[取得したAPIキー]
channel指定したチャンネルの情報を取得https://www.googleapis.com/youtube/v3/channels?part=snippet&id=[任意のチャンネルID]&key=[取得したAPIキー]
guideCategory日本のチャンネルカテゴリを取得https://www.googleapis.com/youtube/v3/guideCategories?part=snippet&regionCode=jp&key=[取得したAPIキー]
常に最新のチャンネルカテゴリを調べられるツールを作りました
playlist再生リストの情報を取得https://www.googleapis.com/youtube/v3/playlists?part=snippet&channelId=[任意のチャンネルID]&key=[取得したAPIキー]
playlistItem再生リスト内の動画情報を取得https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=[任意の再生リストID]&key=[取得したAPIキー]
search関連する動画を取得https://www.googleapis.com/youtube/v3/search?part=snippet&relatedToVideoId=[任意の動画ID]&type=video&key=[取得したAPIキー]
subscription登録しているチャンネルの一覧を取得https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&channelId=[任意のチャンネルID]&key=[取得したAPIキー]
video日本で人気の動画を取得https://www.googleapis.com/youtube/v3/videos?part=snippet&chart=mostPopular&regionCode=jp&key=[取得したAPIキー]
videoCategory日本の動画カテゴリを取得https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&regionCode=jp&key=[取得したAPIキー]
常に最新の動画カテゴリを調べられるツールを作りました

上記のサンプルリクエストURLは理解を深めるために簡略化しましたが、本来は必須パラメータのpartやフィルタとして設定しているchannelIdなどに様々なパラメータを設定する事ができます。さらに任意で設定できるパラメータもあり、求めているデータだけにアクセスできるようになっています。

YouTube APIはデータを取得するだけでなく、メソッドを指定する事で「データの追加」「データの更新」「データの削除」の操作も行う事ができます。例えば、API経由で動画にコメントする、チャンネルのバナー画像を別の画像に変える、再生リスト内の特定の動画を削除するなど、アイデア次第で色んなツールが作れると思います。

すべてを説明しようとすると膨大かつ煩雑になってしまうので、動画まとめサイトに必要な部分に絞って表にまとめました。リソース名に公式リファレンスへのリンクを貼っていますので、詳しく知りたい方はそちらから確認して下さい。

ではこの表を見ながら実際にYouTube APIを使って行きましょう。

APIデータの呼び出し方

APIを実行するためのリクエストURLの構造を知る事で、目的の動画データを自在に取得する事ができるようになります。リソース・メソッド・パラメータを組み合わせて、様々なリクエストURLを作ってみましょう。

リクエストURLのパラメータ構成

まずは指定した動画の詳細情報を取得するリクエストURLが、どういう構造になっているか眺めてみましょう。僕の大好きなPookiesのカイ君がとうもろこしを食べる動画をサンプルとして使用してみます。

はい、何度見ても美味しそうです。それではこの動画の詳細情報を取得しようとした場合、僕は以下のようにリクエストURLを作ってみました。

https://www.googleapis.com/youtube/v3/videos?part=id,snippet,contentDetails,statistics,player,topicDetails,recordingDetails&id=okCyHiyj-Gw&key=[取得したAPIキー]

このYouTube APIのリクエストURLはリソース・必須パラメータ・フィルタ・省略可パラメータ・APIキーの5つで成り立っています。どのデータにアクセスするのにも共通したルールですので、これは覚えておいて下さい。

上記のサンプルURLを分かりやすく分解すると次のようになります。

項目分解したURL
共通URLhttps://www.googleapis.com/youtube/v3/
リソースvideos
必須パラメータ?part=id,snippet,contentDetails,statistics,player,topicDetails,recordingDetails
フィルタ&id=okCyHiyj-Gw
省略可パラメータ
APIキー&key=[取得したAPIキー]

リソースに指定できる値は主に、前述の「YouTube APIで取得できる動画情報の種類」のまとめ表で掲載しているリソース名を複数形にした値が入りますが、たまに違うのもあるので、正しくはサンプルリクエストURLのリソース部分を確認して下さい。

こうやってみれば分かりやすいですが、要はリソースから省略可パラメータに特定の値を組み合わせる事で出力されるデータが変わるという仕様です。んで、必須パラメータ・フィルタ・省略可パラメータに設定できる値はリソース毎に異なるので、公式のリファレンスでできる事を確認する必要があります。

公式リファレンスの読み方の例として「リソース:videos」を開いて下さい。少し下にスクロールすると必須パラメータ・フィルタ・省略可パラメータについて次のように書いてあります。

必須パラメータに指定できる値はこのように記載されています。ただし、指定できると記載されていても、動画の所有者しか指定できない値もあるので注意が必要です。

必須パラメータは[ ?part=値1,値2,値3,値4 ] の形で構成され、設定できる値はリソースによって異なりますが、idとsnippetの二つはどのリソースでも指定できるっぽいです。つまり、[ ?part=id,snippet ]の形は全リソース共通で使い回せるという事ですね。

僕の作ったリクエストURLの必須パラメータ部分は「?part=id,snippet,contentDetails,statistics,player,topicDetails,recordingDetails」ですので、誰でも取得できるデータを詰め込んでいるのが分かりますね。

次はフィルタの設定について記載された部分です。このようにvideosリソースではフィルタに「chart・id・myRating」の3種類のうち一つを設定できます。サンプルリクエストURLではフィルタにidを設定し、指定した動画の詳細データを取得していますが、フィルタにchartやmyRatingという別のパラメータを設定すると、同じvideosリソースでもまったく違うデータが取得されます。設定するパラメータによっては、省略可パラメータとセットで設定しなければならないパターンもありますので注意しましょう。

サンプルのリクエストURLでは「&id=okCyHiyj-Gw」と記述しました。idパラメータをフィルタとして設定し、情報を取得したい動画IDの「okCyHiyj-Gw」を値として指定しています。動画IDの調べ方は、次の項の「パラメータに使用する各IDの調べ方」で解説しています。

こちらが省略可パラメータです。サンプルのリクエストURLでは何も設定していませんが、使いこなせばより検索が便利になります。繰り返しになりますが、特定のフィルタを組み合わせて使わなければならないパラメータもありますので注意して下さい。

これで、リソース・必須パラメータ・フィルタ・省略可パラメータは設定できるようになったと思います。後は共通URLとAPIキーで挟んであげればリクエストURLの完成です。これであなたはYouTube APIを使えるようになりました、色々なパラメータを組み合わせてどんどん使い倒しましょう。

ここまでの解説は動画まとめサイトの作成に必要な「データ取得」メソッドに集中してお話しました。「データの追加」「データの更新」「データの削除」 のメソッドについては使用しないので説明を省いています。自作するツールにこれらの機能が必要な方は、公式リファレンスに必要な情報が詰まってますので、読んでみて下さい。

パラメータに使用する各IDの調べ方

これまで見てきたようにYouTube APIのリクエストURLには、特定の情報を取得しようとした場合、各IDが必要になります。チャンネルの情報を取得したい場合はチャンネルIDが、動画の情報を取得したい場合は動画IDが必要といった具合です。

ではこれらの各IDはどうやって調べればいいのか、僕が使いやすいと思う2つの方法を教えます。それはYouTubeサイトのURLから直接コピペする方法と、各IDもAPIで取得する方法です。

YouTubeサイトのURLから直接コピペ

YouTubeサイト上の各ページのURLには対応したIDが含まれていて、APIで情報を抽出したいページを開き手動でIDを拾ってくるという技です。必要なIDが少ない場合はこの方法が簡単だと思います。いくつか具体例をお見せしましょう。

こちらはyoutuberのチャンネルをIDを拾ってくる場合です。チャンネルページURLは、「https://www.youtube.com/channel/【チャンネルID 】」という構成になっていますので、URLのchannel/から後ろをコピペして使用して下さい。プーキーズの場合は「https://www.youtube.com/channel/UCz2ByBI15WnNt2RU_l4bKqA」となっていますので、チャンネルIDは「UCz2ByBI15WnNt2RU_l4bKqA」となります。

次は動画IDの取得です。動画ページのURL構成は「https://www.youtube.com/watch?v=【動画ID】」となっています。上記のカイ君がポップコーンを貪っている動画のURLは「https://www.youtube.com/watch?v=mS_iyKgOkH0」ですので、動画IDは「mS_iyKgOkH0」となります。

こんな感じで普段見ているYouTubeから簡単に必要なIDを取得する事ができます。他のIDも似たような探し方で見つけられると思いますんで、試してみて下さい。

各IDもAPIで取得

YouTube APIで特定の条件に合致したデータのIDを出力させる事もできます。例えば特定のカテゴリIDから一致する動画IDを検索したり、登録者数の多い上から10位のyoutuberの再生リストIDを取得したり、アイデア次第で色んなパターンが見つけられると思います。

先ほどのYouTubeのURLからIDをコピペする方法と比べて、条件に一致する複数のIDをまとめて取得したい場合に向いている技だと思います。今回は簡単なサンプルとして、検索キーワードを含む各種IDを取得するリクエストURLを書いてみました。

https://www.googleapis.com/youtube/v3/search?part=snippet&q=プーキーズ&type=video&key=[APIキー]
項目分解したURL
共通URLhttps://www.googleapis.com/youtube/v3/
リソースsearch
必須パラメータ?part=snippet
フィルタ
省略可パラメータ1&q=プーキーズ
省略可パラメータ2&type=video
APIキー&key=[APIキー]

このリクエストURLを実行すると、タイトルにプーキーズを含んだ動画の詳細情報を取得する事ができます。取得したデータの中には動画IDも含まれるので、キーワード検索で複数の動画IDをまとめて取得する事ができました。

searchリソースにはキーワード検索を行う事が出来る「?q=【検索キーワード】」という省略可パラメータがあります。これに検索結果を特定の種類のみに絞り込める「?type=【channel or playlist or video】」という省略可パラメータを組み合わせてみました。今回はtypeにvideoを指定していますが、channelを指定すれば名前にプーキーズを含むチャンネルが、playlistを指定すればタイトルにプーキーズを含む再生リストが出力されます。

用途別のリクエストURLのサンプル

ここでは実際にwebサイトやツールを作成する場合に、特に使用頻度が多い(かもしれない)リクエストURLのサンプルを用途別に紹介したいと思います。コピペで便利に使って下さい。

用途リクエストURL
日本で使用されるチャンネルカテゴリの一覧https://www.googleapis.com/youtube/v3/guideCategories?part=snippet&regionCode=jp&key=[APIキー]
日本で使用できる動画カテゴリの一覧https://www.googleapis.com/youtube/v3/videoCategories?part=snippet&regionCode=jp&key=[APIキー]
チャンネル・再生リスト・動画のキーワード検索https://www.googleapis.com/youtube/v3/search?part=snippet&q=[検索キーワード]&type=[channel or playlist or video]&key=[APIキー]
急上昇動画を取得(国の選択可)https://www.googleapis.com/youtube/v3/videos?part=snippet&chart=mostPopular&regionCode=[国コード alpha-2で指定]&key=[APIキー]
全世界で再生回数の多い動画ランキングhttps://www.googleapis.com/youtube/v3/search?part=snippet&order=viewCount&type=video&key=[APIキー]

やりたい事によってはリクエスト結果だけで達成できない事もあります。例えば再生数が100万回越えの炎上動画ランキングを作ろうと思った場合、searchメソッドで再生数が100万回を超えている動画をすべてデータベースに突っ込んで、likeとdislikeの割合か再生数とdislikeの割合で並び替えして、評価の悪い順に表示すれば炎上動画のランキングになるんじゃないでしょうか。

このようにリクエストURLの結果をプログラムで操作する事によって、想像している機能を実現する事ができるようになります。

リクエストURLを簡単に生成するツール

これまでの解説でご理解頂けたかもしれませんが、YouTube APIのリクエストURLはリソース・メソッド・パラメータをいくつも設定しなければならず、欲しいデータに辿り着くまでに意外と時間が掛かってしまいます。

そこでリクエストURLを簡単に作れるツール「YouTube Data APIリクエストジェネレーター」を作りました。このツールは、必要な情報を入力しボタンを押すだけでコピペで使用できる状態のリクエストURLが出力されます

他にも必須・任意の項目を分かりやすく表示したり、複数選択可能な項目、他の項目とセットで使用する必要があるパターンなども分かるように作りましたので、手作業でリクエストURLを作るよりも早く簡単になります。必要な方は使ってみて下さい。

取得したデータの読み方

YouTube APIを利用したデータの取得に関しては一通り解説したと思いますので、取得したデータの読み方についてお話したいと思います。取得できるデータの種類はたくさんあるので、サイト作りで使用頻度の高い項目を抜き出して説明したいと思います。

解読する動画データのサンプルには「リクエストURLのパラメータ構成」で取得したとうもろこしを食べているカイ君の動画情報を使います。リクエストURLを実行しブラウザに表示される情報がこちらです。

{
 "kind": "youtube#videoListResponse",
 "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/6FbzxDyi2EMpC9EDFrcxJMKxUcc\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#video",
   "etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/wcnxiPumlD4ADcPfwBNmDbLq8pY\"",
   "id": "okCyHiyj-Gw",
   "snippet": {
    "publishedAt": "2018-06-30T08:00:03.000Z",
    "channelId": "UCz2ByBI15WnNt2RU_l4bKqA",
    "title": "とうもろこしを丸々1本もらったお猿さんの食べ方が、感動するほどキレイ!!",
    "description": "ちゃんと深追いしていくもったいない精神!見習わないといけません!\n\n【サブチャンネルできました!】\nhttps://www.youtube.com/channel/UCGMHpCrw3xW5qJsvDy3o3Gw\nおサルさんとこんなことしてほしいっていうリクエストもお待ちしております!\n【PookiesのFacebook】\nhttps://www.facebook.com/pookieskaimie\n【Pookies担当 黒田のTwitter】\nhttps://twitter.com/pookieskuroda",
    "thumbnails": {
     "default": {
      "url": "https://i.ytimg.com/vi/okCyHiyj-Gw/default.jpg",
      "width": 120,
      "height": 90
     },
     "medium": {
      "url": "https://i.ytimg.com/vi/okCyHiyj-Gw/mqdefault.jpg",
      "width": 320,
      "height": 180
     },
     "high": {
      "url": "https://i.ytimg.com/vi/okCyHiyj-Gw/hqdefault.jpg",
      "width": 480,
      "height": 360
     },
     "standard": {
      "url": "https://i.ytimg.com/vi/okCyHiyj-Gw/sddefault.jpg",
      "width": 640,
      "height": 480
     },
     "maxres": {
      "url": "https://i.ytimg.com/vi/okCyHiyj-Gw/maxresdefault.jpg",
      "width": 1280,
      "height": 720
     }
    },
    "channelTitle": "Pookies【カイくん・みぃちゃん・もやちゃん】",
    "tags": [
     "プーキーズ",
     "カイくん",
     "猿",
     "動物",
     "おもしろ",
     "可愛い",
     "爆笑",
     "天才",
     "志村",
     "とうもろこし",
     "オヤツ",
     "ASMR"
    ],
    "categoryId": "1",
    "liveBroadcastContent": "none",
    "localized": {
     "title": "とうもろこしを丸々1本もらったお猿さんの食べ方が、感動するほどキレイ!!",
     "description": "ちゃんと深追いしていくもったいない精神!見習わないといけません!\n\n【サブチャンネルできました!】\nhttps://www.youtube.com/channel/UCGMHpCrw3xW5qJsvDy3o3Gw\nおサルさんとこんなことしてほしいっていうリクエストもお待ちしております!\n【PookiesのFacebook】\nhttps://www.facebook.com/pookieskaimie\n【Pookies担当 黒田のTwitter】\nhttps://twitter.com/pookieskuroda"
    }
   },
   "contentDetails": {
    "duration": "PT3M22S",
    "dimension": "2d",
    "definition": "hd",
    "caption": "false",
    "licensedContent": true,
    "projection": "rectangular"
   },
   "statistics": {
    "viewCount": "67985",
    "likeCount": "1106",
    "dislikeCount": "23",
    "favoriteCount": "0",
    "commentCount": "99"
   },
   "player": {
    "embedHtml": "\u003ciframe width=\"480\" height=\"270\" src=\"//www.youtube.com/embed/okCyHiyj-Gw\" frameborder=\"0\" allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen\u003e\u003c/iframe\u003e"
   },
   "topicDetails": {
    "relevantTopicIds": [
     "/m/05qjc",
     "/m/02jjt",
     "/m/02jjt",
     "/m/05qjc"
    ],
    "topicCategories": [
     "https://en.wikipedia.org/wiki/Performing_arts",
     "https://en.wikipedia.org/wiki/Entertainment"
    ]
   }
  }
 ]
}

1件の動画に対してこれだけの情報を取得する事ができました。この中からよく使用する項目を次のようにまとめてみました。

行数プロパティ内容
5totalResults結果の件数
6resultsPerPage結果が何ページあるか(デフォルトで1ページ5件まで)
12id動画ID
14publishedAt動画公開日
15channelIdチャンネルID
16title動画タイトル
17description動画説明
35urlサムネイルURL
46tags動画に付けられたタグ
60categoryId動画のカテゴリ
68duration再生時間
76viewCount再生回数
77likeCount高評価
78dislikeCount低評価
80commentCountコメント数
83embedHtml埋め込みコード

英語が得意な人なら説明いらなかったかもしれませんが、僕はプログラムを弄りながら「再生時間どこだっけ?」とか「動画のカテゴリが見つかんない…」とかよく忘れます。これらの情報はPHPで取得データを加工する際に役に立ちますので、ブラウザのお気に入りにでも入れて、いつでも見られるようにしておくと便利です。

リクエスト回数の制限に注意

YouTube APIの使用回数には制限が掛けられており、無制限にいくらでも使えるというワケではありません。とはいえ1日で数十万回はデータ取得操作が可能なのでそれほど気にする必要はないと思います。
むしろ動画まとめサイトの構築でこの制限に引っ掛かるようであれば、プログラムの設計がおかしいので、早急に修正が必要だと思います。

ただし大規模なサイトを構築するなどで膨大なリクエスト数を処理しなければならない場合は、別途googleにリクエスト制限の増加を申請する事もできるそうなので、必要な方は公式へ確認してみて下さい。

自分のアカウントの使用量と使用制限については「Google Cloud Platform > APIとサービス > ダッシュボード > YouTube Data API v3 > 割り当て」から確認する事ができます。

まとめ

今回はYouTube APIの利用方法について一通り解説しました。APIの理解自体は他のサービスでも応用可能なので、覚えておいて損はない内容だと思います。情報が古いとか設定が違うとかありましたら、コメントにて教えて頂けると助かります。

次回はAPIで取得したデータをPHPでいじくり回す方法を解説したいと思います。

投げ銭はこちら(*‘∀‘)
僕はいつも晩酌しながら記事を書いてるんですが、もしこの記事が面白かったら一杯おごって貰えませんか(*ノωノ) お酒パワーがあれば次の記事も頑張って書けます!
炭酸系はちょっと苦手で日本酒とウィスキーが好きです!オススメがあればメッセージで教えて下さい('ω')ノ
nagesen@diy-programming.site → amazonギフト券

youtubeの動画を自動で投稿するwpプラグイン完成!

当サイトで解説しているyoutube動画まとめサイト作成のノウハウを元に、誰でも簡単に動画まとめサイトが作れるwpプラグインを作りました。

主な機能なこんな感じです。

  • 手動更新(cron不要)
  • 完全自動更新(cron必要)
  • 動画重複チェック
  • 1度の処理で50件以上の動画を収集&投稿可能
  • 使用するwpテーマは何でもOK
  • 動画の取得順指定
  • 収集対象動画の期間指定
  • キーワード検索
  • チャンネル指定
  • カテゴリ指定
  • 取得件数指定
  • 予約投稿
  • 本文テンプレ挿入
  • 動画説明挿入

プログラムの自作が難しい方はこのプラグインを使用してする事で、簡単に動画まとめサイトのオーナーになれますよ。良かったら試してみて下さい。

コメント

  1. よしたか より:

    youtubeのapiの使い方を調べていて、こちらのサイトを見つけました。私のような初心者には非常にわかりやすい内容でありがたいです。

    APIの使用回数には制限があるということで、私も、動画再生数のランキングみたいなものを作っていたら、上限を超えてしまいました。そこで、質問させてください。

    APIの使用回数制限を超えないようにする工夫としてどのようなものがあるんでしょうか?例えば、Youtubeのランキングサイトなどでは、どうしているのでしょうか?

    もし、よろしければ、教えていただければと思います。

    • DIYプログラミング管理人 より:

      コメントありがとうございます。

      制限と言っても1日に数千-数万回は余裕で使えるので、コードの構造が何か変かもしれませんね。

      実際にコードを見てみないと何とも言えませんが、膨大な制限を超越するほどリクエストを送っているという事は、①どっかの処理が無限ループになっている、か②pageTokenを繰り返し使用してyoutubeに存在するすべての動画に対して処理を行おうとしている、という事かもしれません。

      再生回数のランキングを取得するには、searchメソッドでorder=viewCountを指定し再生回数の多い順に並び変えて、maxResultsに取得件数を指定する事で、上位〇位という形でデータを取得する事ができます。

      ただし、searchメソッドだけだと取得できる動画情報に限りがあるので、得た動画idを使ってさらにvideoメソッドを呼び出す事ですべての動画情報にアクセスできます。

      コツコツ試してみて下さい(/・ω・)/

  2. よしたか より:

    ご丁寧なお返事ありがとうございます。参考になります。

    コツコツ試してみます。

  3. あき より:

    「Video Blogster Pro」海外の有ソフトを使って、動画を自動更新(動画・タイトル・本文・コメント20-50コメントくらい)しているのですが、何故かAPIの使用上限に達してしまいます。
    しかも、毎日です。。。

    基本的には20前後のchannel、カテゴリー、タグなどですが、もしかしてカテゴリーやタグなどもそれぞれが1カウントされるのでしょうか?

    毎日そこまで使用していないと思いますけど、お手上げ状態です( ノД`)シクシク…

    • DIYプログラミング管理人 より:

      コメントありがとうございます(‘ω’)ノ

      >「Video Blogster Pro」海外の有ソフトを使って、動画を自動更新(動画・タイトル・本文・コメント20-50コメントくらい)しているのですが、何故かAPIの使用上限に達してしまいます。

      僕よりも制作者に問い合わせてみてはどうでしょうか??APIのリソースをやたら消費するけど、どう設定すればいいのかって聞いてみるのがいいですよ。僕ならゴリゴリのgoogle翻訳文を平気で送信しますね。

      >基本的には20前後のchannel、カテゴリー、タグなどですが、もしかしてカテゴリーやタグなどもそれぞれが1カウントされるのでしょうか?

      youtubeAPIってリソース消費の仕組みが微妙に複雑で、動画検索は1回100ユニット・それ以外は1ユニット消費だったと思います(あやふや)。今のユニット数の上限は8万なので、searchメソッドを800回くらい叩くと上限になります。感覚的に合ってそうですか??昔は100万ユニットとか使えたんですけどねぇ。

      ですが結局「Video Blogster Pro」を使った事がないので、どういう仕組みなのかまったく想像がつかないですすいません。。。

      youtubeの動画まとめサイトを作りたいのであれば、当サイトで販売している「youtuner」はいかがでしょうか。日本語しかできない僕が作ったツールなので、質問にも日本語で答えられますよ(‘ω’)ノ

      よろしくお願いしますm(_ _)m

      • あき より:

        コメントありがとうございます。
        購入させていただきますので、よろしくお願い致します。

  4. ますだ より:

    はじめまして。
    YoutubeAPIを勉強していてこのサイトにたどり着きました。

    APIを使用して、再生回数の世界ランキングを出力したいと考えています。

    私も、上で記載されているように
     >全世界で再生回数の多い動画ランキング
     >https://www.googleapis.com/youtube/v3/search?part=snippet&order=viewCount&type=video&key=[APIキー]
    を実行したのですが、出力されたものは全世界の再生回数ランキングでは無さそうです。
    出力された動画は約6億回再生されているようですが、その10倍以上再生されている動画も存在します。
     参考:https://en.wikipedia.org/wiki/List_of_most-viewed_YouTube_videos

    regionCodeをUS等に変更しても変わりませんでした。

    この問題について、何か知見をお持ちでしたら共有いただければと存じます。

    • DIYプログラミング管理人 より:

      コメントありがとうございます(‘ω’)ノ

      ご指摘の通り今試してみましたが、確かにウィキペディアに掲載されているランキング1位の動画出てきませんね。。。

      この記事を書いた時はマークロンソンのアップタウンファンク(https://www.youtube.com/watch?v=OPf0YbXqDm0)が1位で取得できたので、合ってるなと思ってたんですが、なんか違いますね。

      一応、動画公開日を2019-01-13から2019-09-09までと指定すればデスパシストが1位で取得できましたが、2019-09-10まで広げると出てこなくなるようです。

      youtube側でデータを意図的に調整しているか、APIのsearchメソッドの仕様が変わったのかもしれませんね。これ以上はちょっと忙しくて調査できなく申し訳ないです。

      よろしくお願いしますm(_ _)m

  5. ますだ より:

    コメントありがとうございました。

    やはり取得できませんよね。
    APIの仕様が変わったのかもしれませんが、Googleのドキュメントを見てもわからないのが辛いですね。
    私も試行錯誤してみます。

    もし何か解決策が見つかった際には共有させていただきます!

    • DIYプログラミング管理人 より:

      了解です!

      僕の方でも何か分かったら、記事を修正しますんで良かったらまた見に来て下さい(´∀`)