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

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

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

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

YouTube API

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

解決済

youtube api で 「channels」の'statistics''subscriberCount' と「search」の'snippet'、'channelTitle' を取得したい

Teviz
Teviz

総合スコア3

Python 3.x

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

YouTube API

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

1回答

0評価

0クリップ

260閲覧

投稿2022/04/07 01:23

編集2022/04/08 19:46

やりたいこと youtube api で

channels の  'statistics''subscriberCount'

search の 'snippet'、'channelTitle'

を pageToken を使って全部取得したいです

channelsには id='UC0FFHRFAAAAAAA' のようなチャンネルidが含まれておらず、

searchを使って idを取得して、channels の  'statistics''subscriberCount'
を取得したいと考えていました

for文で何個か取得できましたが、うまくforが回ってくれません
コードの2回目のfor文に > 引用テキストpageToken=pageToken が無いからうまくいかないのでしょうか?

#この部分↓
search_response = youtube.channels().list(part='statistics',id=item_1['snippet']['channelId'],maxResults=50).execute()

最後の部分も色々変えてみましたが、うまくいきませんでした

pageToken = response.get("nextPageToken")

詳しい方よろしくお願いします

from googleapiclient.discovery import build API_KEY = キーを入力しています YOUTUBE_API_SERVICE_NAME = 'youtube' YOUTUBE_API_VERSION = 'v3' youtube = build(YOUTUBE_API_SERVICE_NAME,YOUTUBE_API_VERSION,developerKey=API_KEY) pageToken = None while True: response = youtube.search().list(q='キーワードを入力しています',part='snippet',type='channel',maxResults=50, pageToken=pageToken).execute() for item_1 in response['items']:    #この部分に search_response = youtube.channels().list(part='statistics',id=item_1['snippet']['channelId'],maxResults=50).execute() for item_2 in search_response['items']: #↓エラーが出ている部分です print(item_1['snippet']['channelTitle'],item_2['statistics']['subscriberCount']) #この部分も触ってみましたがうまくいきませんでした pageToken = response.get("nextPageToken") if pageToken is None: break

エラー内容です

〜〜この部分に14個取得できています〜〜

Traceback (most recent call last):
File "/Users/〜〜〜.py", line 23, in <module>
print(item_1['snippet']['channelTitle'],item_2['statistics']['subscriberCount'])
KeyError: 'subscriberCount'

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

qnoir

2022/04/07 02:38 編集

まず最初の段階で「何個か取得できましたが、うまくforが回ってくれません」とのことですが、 「2、3個取得」できた後で止まってしまったということでしょうか。そして止まった時に、エラーメッセージはなにも出ていないのでしょうか。 もし、エラーメッセージが出ているならば、具体的な全部のエラーメッセージを省略せずに、質問文の「ソースコードの挿入」で追記してください。 (読みにくくなるので、エラーメッセージをこのコメントの続きに記載するのではなく、投稿欄の編集ボタンをおして質問文自体に追記してください」
Teviz

2022/04/08 01:17 編集

コメントありがとうございます はい、何個か取得('q=' 部分のキーワードによって個数が変わるようです)できて、止まりエラーメッセージが出ています エラーメッセージを入れました 省略せずに入れたつもりですが間違いあればご指摘お願いいたします よろしくお願いします

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

Python 3.x

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

YouTube API

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