質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

解決済

youtubeAPIでチャンネル内で特定のワードの検索結果数を知りたい。

thaqulla
thaqulla

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。

1回答

0評価

0クリップ

227閲覧

投稿2022/01/14 02:19

前提・実現したいこと

例としてホロライブ所属の鷹嶺ルイ氏のチャンネルを例に挙げる。

彼女のチャンネルでは「ほぼ毎日ショート」の名を冠する投稿が今日までに40本ほどある。これをAPIで数値として出力したいと思ったが、浅学故詰まってしまったためご助力願いたい。

python3.8.5

試行1

from apiclient.discovery import build API_KEY = "自分のAPIキー" cid = "UCs9_O1tRPMQTHQ-N_L6FU2g"#鷹嶺ルイ vid = "Re3IIEU_vdE"#鷹嶺ルイ ほぼ毎日ショート#38 def YoutubeDetails(vid, API_KEY): API_SERVICE_NAME = "youtube" API_VERSION = "v3" youtube = build(API_SERVICE_NAME, API_VERSION, developerKey=API_KEY) response = youtube.videos().list( part = "id", id = vid, # channelId = cid, # q = "ほぼ毎日ショート",, ).execute() return response["pageInfo"] test = YoutubeDetails(vid, API_KEY) test

当然問題なく出力されたが、idにvideoId(ここではvid)を一件しか代入していないので

{'totalResults': 1, 'resultsPerPage': 1}

と一件しか出ない。私が行いたいのはチャンネル内での該当件数なのでダメもとで以下を追加。当然エラーになった。

該当のソースコード&エラー

from apiclient.discovery import build API_KEY = "自分のAPIキー" cid = "UCs9_O1tRPMQTHQ-N_L6FU2g"#鷹嶺ルイ vid = "Re3IIEU_vdE"#鷹嶺ルイ ほぼ毎日ショート#38 def YoutubeDetails(cid, vid, API_KEY): #cid追加 API_SERVICE_NAME = "youtube" API_VERSION = "v3" youtube = build(API_SERVICE_NAME, API_VERSION, developerKey=API_KEY) response = youtube.videos().list( part = "id", id = vid, channelId = cid,           #追加 q = "ほぼ毎日ショート",        #追加 ).execute() return response["pageInfo"] test = YoutubeDetails(cid, vid, API_KEY)  #cid追加 test
TypeError Traceback (most recent call last) <ipython-input-17-3b2c91a39a9d> in <module> 22 return response["pageInfo"] 23 ---> 24 test = YoutubeDetails(cid, vid, API_KEY) 25 26 test <ipython-input-17-3b2c91a39a9d> in YoutubeDetails(cid, vid, API_KEY) 13 youtube = build(API_SERVICE_NAME, API_VERSION, developerKey=API_KEY) 14 ---> 15 response = youtube.videos().list( 16 part = "id", 17 id = vid, ~\anaconda3\lib\site-packages\googleapiclient\discovery.py in method(self, **kwargs) 1017 for name in kwargs: 1018 if name not in parameters.argmap: -> 1019 raise TypeError('Got an unexpected keyword argument {}'.format(name)) 1020 1021 # Remove args that have a value of None. TypeError: Got an unexpected keyword argument channelId

channelIdとqはyoutube.videos()ではなくyoutube.search()のパラメータなのでエラーになるのは当然。しかしyoutube.search()では'totalResults'がないため私が欲しい情報が出ず困ってしまっている。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

YAmaGNZ

2022/01/14 04:28 編集

searchのAPIでもtotalResultsは帰ってきますよ YoutubeAPIのリファレンスのページで試せるので確認してはどうですか? 私が試したら { "kind": "youtube#searchListResponse", "etag": "U4qDFM32mY0XgJYC06dTPfz6rgE", "nextPageToken": "CAUQAA", "regionCode": "JP", "pageInfo": { "totalResults": 122, "resultsPerPage": 5 }, "items": [ こんな感じで帰ってきましたよ ただ、私はPythonに関してはわかりません

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

YouTube API

YouTube APIはYouTubeのビデオコンテンツと機能性をウェブサイト、アプリケーション、デバイスに統合することを可能にします。