前提・実現したいこと
YouTube Data APIのサンプルコードを参考にして、指定された期間に特定のワードで検索した動画の再生数の多い順に上位10件の再生数、動画タイトル、動画URLを取得するPythonコードを作成しました。実行はGoogle Colaboratoryで行っています。
目的の結果は得られたのですが、サンプルを丸写しした部分の理解ができなくて困っています。
関数get_view_countの.execute()['items'][0]['statistics']['viewCount']と、
関数youtube_searchの.execute()は、
どういった処理をしているのでしょうか?ネットで.executeを検索するとデータベースにSQLを実行するためのもののように説明されている記事は見つけることができましたが、sqliteをimportしているわけでもないですし、括弧のなかに記入がない場合どう動くのかがよくわかりません。
回答いただけると助かります。またexecuteについて参考になる学習書やWebサイトがありましたらそれについても教えていただけると幸いです。
該当のソースコード
Python3
1from apiclient.discovery import build 2 3API_KEY = "ここにAPIキー" 4KEY_WORD = "検索ワード" 5MAX_RESULT = 10 6ORDER = "viewCount" 7 8youtube = build("youtube", "v3", developerKey=API_KEY) 9 10def get_view_count(id): 11 view_count = youtube.videos().list(part = 'statistics', id = id).execute()['items'][0]['statistics']['viewCount'] 12 return view_count 13 14pA ="2021-11-01T00:00:00Z" 15pB ="2021-12-01T00:00:00Z" 16def youtube_search(): 17 search_response = youtube.search().list( 18 q=KEY_WORD, 19 part="id,snippet", 20 maxResults=MAX_RESULT, 21 order=ORDER, 22 publishedBefore=pB, 23 publishedAfter=pA 24 ).execute() 25 26 videos = [] 27 for search_result in search_response.get("items", []): 28 if search_result["id"]["kind"] == "youtube#video": 29 view_count = get_view_count(search_result["id"]["videoId"]) 30 videos.append("%s,%s,%s,https://www.youtube.com/watch?v=%s,%s," % (pA,pB,view_count.rjust(10), search_result["id"]["videoId"], 31 search_result["snippet"]["title"])) 32 with open('dougatitle.csv', 'a',encoding='utf_8_sig') as f: 33 print("\n".join(videos),file=f) 34 35if __name__ == "__main__": 36 youtube_search()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/08 10:08