Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@mypsychology0

全力回避フラグちゃん!で少しわかるYouTube Data API Channels リソースから取得できる主な情報

はじめに

最近データ取得のためにYouTube Data API を利用できるようにしましたが,実際に使用している情報自体はAPI から取得できる情報の一部です.私自身は,Search,Channels,Videos リソースあたりを利用して情報を取得しているのですが,今回は取得している情報の中で主に使いそうな情報やそれらの情報からわかることを例を取って書いていきます.
正直私レベルでは,YouTube のAPI のドキュメントはわかりづらいので,実際に値を取得してみて,このプロパティはこういった情報が取得できるのか.というのが,少しでもわかればなぁと思っています.

今まで書いた記事はこちら↓↓
- 「全力回避フラグちゃん!」チャンネルの動画をグラフ化するとどうなるのか?【Python】【グラフ化】
- 全力回避フラグちゃん! の動画再生数の分布を調べてみた【Python】【グラフ化】
- 全力回避フラグちゃん!の動画の再生数と評価/コメント数をグラフにしたらどうなるのか?【Python】【グラフ化】

注意事項

2021/1/10 18:30時点で取得した情報を利用しています.

用いたデータセット/手法

YouTube Data API のChannels リソースを利用しています.
ベースとなるURLは,下記の通りです.

ChannelsリソースのURL
https://www.googleapis.com/youtube/v3/channels

このURL に対して,引数として以下の3つのパラメーターを指定します.

パラメーター名 説明
id UCo_nZN5yB0rmfoPBVjYRMmw 全力回避フラグちゃん!のチャンネルIDです
part snippet,contentDetails,status,statistics,brandingSettings どういった情報が取得したいかを指定します.今回は,動画の非所有者が取得できる情報すべてを取得するように指定しています
key api key API にアクセスするためのキーの値です

API のアクセスには,cURL,もしくは関連リンクにある公式ドキュメントのサンプルプログラムを利用してください.
手っ取り早く実行するなら,cURL はお勧めです.

2021/1/10 18:30 時点で実際に取得した情報は以下の通りです.

Channelsリソースから取得した情報
{
  "kind": "youtube#channelListResponse",
  "etag": "7kw_pX3jqc3wL_AwlyqZPaI5yLo",
  "pageInfo": {
    "totalResults": 1,
    "resultsPerPage": 5
  },
  "items": [
    {
      "kind": "youtube#channel",
      "etag": "wYyXQVS8xyC4-FZ1xl6WPr7fTik",
      "id": "UCo_nZN5yB0rmfoPBVjYRMmw",
      "snippet": {
        "title": "全力回避フラグちゃん!",
        "description": "立ちました!死亡フラグです!\nダメダメなモブ男さんの様子をYouTubeに配信してます!\n応援よろしくお願いします!\n\n◆お問い合わせやお仕事の依頼はこちら\nflagchan@plott.tokyo\n\n◆最新情報はTwitterから\nhttps://twitter.com/flag__chan\n\n◆フラグちゃんLINEスタンプ発売中\nhttps://store.line.me/stickershop/product/12763172",
        "publishedAt": "2019-10-28T11:31:02.364085Z",
        "thumbnails": {
          "default": {
            "url": "https://yt3.ggpht.com/ytc/AAUvwngNrK2DUuhk9l2hY1OUESiQhG8spJwApJ8mmod02w=s88-c-k-c0x00ffffff-no-rj",
            "width": 88,
            "height": 88
          },
          "medium": {
            "url": "https://yt3.ggpht.com/ytc/AAUvwngNrK2DUuhk9l2hY1OUESiQhG8spJwApJ8mmod02w=s240-c-k-c0x00ffffff-no-rj",
            "width": 240,
            "height": 240
          },
          "high": {
            "url": "https://yt3.ggpht.com/ytc/AAUvwngNrK2DUuhk9l2hY1OUESiQhG8spJwApJ8mmod02w=s800-c-k-c0x00ffffff-no-rj",
            "width": 800,
            "height": 800
          }
        },
        "localized": {
          "title": "全力回避フラグちゃん!",
          "description": "立ちました!死亡フラグです!\nダメダメなモブ男さんの様子をYouTubeに配信してます!\n応援よろしくお願いします!\n\n◆お問い合わせやお仕事の依頼はこちら\nflagchan@plott.tokyo\n\n◆最新情報はTwitterから\nhttps://twitter.com/flag__chan\n\n◆フラグちゃんLINEスタンプ発売中\nhttps://store.line.me/stickershop/product/12763172"
        },
        "country": "JP"
      },
      "contentDetails": {
        "relatedPlaylists": {
          "likes": "",
          "favorites": "",
          "uploads": "UUo_nZN5yB0rmfoPBVjYRMmw"
        }
      },
      "statistics": {
        "viewCount": "175339815",
        "subscriberCount": "433000",
        "hiddenSubscriberCount": false,
        "videoCount": "225"
      },
      "status": {
        "privacyStatus": "public",
        "isLinked": true,
        "longUploadsStatus": "longUploadsUnspecified"
      },
      "brandingSettings": {
        "channel": {
          "title": "全力回避フラグちゃん!",
          "description": "立ちました!死亡フラグです!\nダメダメなモブ男さんの様子をYouTubeに配信してます!\n応援よろしくお願いします!\n\n◆お問い合わせやお仕事の依頼はこちら\nflagchan@plott.tokyo\n\n◆最新情報はTwitterから\nhttps://twitter.com/flag__chan\n\n◆フラグちゃんLINEスタンプ発売中\nhttps://store.line.me/stickershop/product/12763172",
          "keywords": "全力回避フラグちゃん フラグちゃん アニメ 漫画 マンガ まんが マンガ動画 漫画動画 生存フラグ 恋愛フラグ",
          "defaultTab": "Featured",
          "showRelatedChannels": true,
          "showBrowseView": true,
          "unsubscribedTrailer": "blnM5yFOIK4",
          "profileColor": "#000000",
          "country": "JP"
        },
        "image": {
          "bannerExternalUrl": "https://yt3.ggpht.com/xgVBEy0GuCcESk2dYgihI4qsyq4iYB8BU709fQJpo4-ocY9cdQnOQ92GwaiFjnhrdw6nMzVFYA"
        }
      }
    }
  ]
}

とりあえず必要か不要かは取得後に判断して処理するため,取れる情報をすべて取ってきています.
そのため,使わない情報もいくつか混じっているので,中身を見ていき取捨選択します.

主な情報抜粋一覧

今回は,私が使っている情報と,面白そうなものだけ抜粋しています.
名前の部分をjq コマンドで指定してやると,その値が抽出できます.
例えば,チャンネル名だけを抽出したい場合は,下記のようにします.

チャンネル名の抽出
curl [URL] | jq -r '.items[].snippet.title'

他も同様です.以下の表が,使いそうな情報の一覧です.

名前 実際の値 説明など
.items[].id UCo_nZN5yB0rmfoPBVjYRMmw ※1
.items[].snippet.title 全力回避フラグちゃん! ※2
.items[].snippet.description 立ちました!死亡フラグです!\nダメダメなモブ男さんの様子をYouTubeに配信してます!\n応援よろしくお願いします!\n\n◆お問い合わせやお仕事の依頼はこちら\nflagchan@plott.tokyo\n\n◆最新情報はTwitterから\nhttps://twitter.com/flag__chan\n\n◆フラグちゃんLINEスタンプ発売中\nhttps://store.line.me/stickershop/product/12763172 ※3
.items[].snippet.publishedAt 2019-10-28T11:31:02.364085Z ※4
.items[].snippet.thumbnails.[default/medium/high].url https://yt3.ggpht.com/ytc/AAUvwngNrK2DUuhk9l2hY1OUESiQhG8spJwApJ8mmod02w=s88-c-k-c0x00ffffff-no-rj ※5
.items[].contentDetails.relatedPlaylists.uploads UUo_nZN5yB0rmfoPBVjYRMmw ※6
.items[].statistics.viewCount 175339815 ※7
.items[].statistics.subscriberCount 433000 ※8
.items[].statistics.videoCount 225 ※9
.items[].brandingSettings.channel.keywords 全力回避フラグちゃん フラグちゃん アニメ 漫画 マンガ まんが マンガ動画 漫画動画 生存フラグ 恋愛フラグ ※10
.items[].brandingSettings.channel.unsubscribedTrailer blnM5yFOIK4 ※11
.items[].brandingSettings.image.bannerExternalUrl https://yt3.ggpht.com/xgVBEy0GuCcESk2dYgihI4qsyq4iYB8BU709fQJpo4-ocY9cdQnOQ92GwaiFjnhrdw6nMzVFYA ※12

表形式だと長文が収まりにくいので,説明はすべて下に書きました.

  • ※1: チャンネルIDです
  • ※2: チャンネル名です
  • ※3: チャンネルの説明です.
    どうやらこのチャンネルはフラグちゃんではなくモブ男の様子を配信するチャンネルみたいです.
    確かに,一人だけ皆勤賞ですからね.
  • ※4: チャンネルの作成日時です.ISO 8601で指定されており,UTC 時刻であるため,+9:00 で計算するので,どうやらこのチャンネルは2019-10-28 20:31に作成されたようです.
  • ※5: チャンネルのサムネイル画像のURL です.
    (値はdefault のみ抜粋).
    サイズがdefault, medium, high の3つ存在します.
    ここでいうサムネイルは,チャンネルのアイコンのことです.(Twitterのアイコンと同じ)
  • ※6: チャンネルのアップロード済み動画を含む再生リストのIDです.アップロードされた動画は自動的にこの再生リストに登録される見たい.全力回避フラグちゃん!ちゃんさんのアップロード動画で,チャンネルが作成している再生リストとはまた別の様子.
  • ※7: チャンネルの現在の再生回数の合計です.
    現時点で,動画が1億7533万9815回再生されていることが分かります
  • ※8: チャンネルの登録者数です.
    現在43万3000人です
  • ※9: チャンネルにアップロードされた動画の数です.
    現在225本の動画がアップロードされています
  • ※10: チャンネルに関連付けられたキーワードです.
    生存フラグと恋愛フラグはそのまんまですけど,フラグちゃんはちゃん付けされていて,しかもキーワードの中に大事な「死亡フラグ」がありません.それでいいのか...
    あと,マンガはひらがな,カタカナ,漢字で分けて入れているあたり,キーワード検索対策でしょうか.
  • ※11: チャンネル登録をしていない視聴者に対して,おすすめ動画モジュールで再生する動画.
    私はチャンネル登録済みだったので,見えなかったのですが,値はおすすめ動画のID を示しており,この動画IDは【ストーリー編】第1話「修行のはじまり」【アニメ】【漫画動画】を指しています.
    とどのつまり,チャンネル登録していない人はストーリー編第1話を見てください!とのことです
  • ※12: チャンネルのバナー画像のURL です.
    チャンネルのページにアクセスすると一番上に表示される画像のことです

おまけ

正直ここからが,一番書きたかったことです.
再生リストを見て思ったのですが,全然整理されていないですね.
全話が収録されていそうな再生リストフラグちゃん!全話は,アップロードされている動画が現時点で255本しかないのに,なぜか245本もの動画が登録されている.(つまり重複している動画がいくつかある)
重複しているのならよいですが,生存フラグさんの再生リストは12本しか動画が登録されていません.私の調べでは,現時点で225本の動画のうち,42本は生存フラグさんが登場しているはずです.総集編と声しか出ていないチャンネル登録者数奪い合いの回を除いても40回は出ているはずです.それなのに,12本しかない※...恋愛フラグさんでも21回は登場しているのに...完全に途中から作るのあきらめた感が出ています...少し悲しいのでできればちゃんと作成してほしいです.
私の方で登場回記録しているので,もしよろしければデータをお渡しします.コメントか何かください.運営の方でも持っているとは思いますけどね

※しかも,その12本の中にも重複している動画があるので,全然足りていない

簡単なまとめ

  • APIを利用することで基本的な情報は取得できる (チャンネル名,チャンネルの説明,動画数,動画再生数,チャンネル登録者数,おすすめ動画 など)
  • キーワードに「死亡フラグ」が含まれていない
  • 再生リストは全然整理されていない

今後の予定

他のAPI のリソースも今回のようにまとめていく予定です.

今回紹介した動画

おわりに

ここまで読んでいる人はいないと思いますが,もしいたらまずは,以下のリンクから全力回避フラグちゃん! チャンネルとフラグちゃんのTwitter をフォローしてください.この記事を読むより大切なことです.
大事なことなのでもう一度,チャンネル登録Twitter のフォローをよろしくお願いいたします.

関連リンク

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What is going on with this article?