背景
2000以上のyoutubeビデオに関するデータを収集するタスクがありました。そこから、ビデオの名前、チャンネル、言語を抽出する必要がありました。
サイトからの解析を実行できるIMPORTXML関数は役に立ちませんでした。これは、後で判明したように、youtubeがデータをJSONファイルに保存するためです。 手でたくさんのビデオを整理したくなかったので、このタスクを自動化する方法、または少なくとも単純化する方法を探し始めました。
Habréで15年の古い記事を見つけました 。これは、ビデオビューの数を取得する方法を説明していますが、その公開の瞬間からyoutubeがAPIを更新し、少し異なるデータを取得する必要がありました。
youtube APIとGoogleテーブルを使用して問題を解決する過程で、事前に準備されたビデオURLのリストからデータを抽出するだけでなく、キーワードでyoutubeの出力を解析することも判明しました。
その結果を非常に喜んでいるので、私は自分の経験を共有し、プロセスをより詳細に説明することにしました。
方法自体は確かに理想的ではありません。 急いで簡単な解決策として説明できます。 しかし、Pythonを学び始めるまで(この日が遅かれ早かれ来ることを願っています)、テーブルで昔ながらの方法ですべてを行わなければなりません。
準備する
元の記事のようにパーサーが機能するには、ImportJSONスクリプトとyoutube APIが必要です。
Importjson
githubからスクリプトをダウンロードし、ツール>>スクリプトエディターを使用してテーブルにインストールします。
Youtube API
ライブラリ内のYoutube Data API V3キーであるAPIを取得し、その資格情報を作成します。 以前は、もちろん、Googleクラウドにまだ登録していない場合はアカウントを作成します。
ビデオに関する情報はJSONファイルに保存されます。このファイルはリンクから入手できます。
www.googleapis.com/youtube/v3/videos?id= {Video_ID}&key = {API_Key}&part = {Part_Parametr}どこで
Video_ID-ビデオ識別子
API_Key-コンソールで取得するAPIキー
Part_Parametr-情報が保存されているファイルの一部
ファイルの一部には、いくつかの種類があります。
スニペット -ビデオに関するほぼすべての基本情報が含まれています。
1.発行日
2.ビデオタイトル
3.チャンネル名
4.チャンネルID
5.ビデオの下の説明(説明)
6.ビデオカテゴリ(数値)
7.タグ
contentDetails-ビデオの長さと解像度が含まれます。
topicDetails-カテゴリの名前を持つウィキペディアリンクの形式でビデオカテゴリが含まれますが、このセクションは常に満たされているわけではありません。
統計
1.ビュー
2.コメントの数
3.いいね
4.嫌い
一般的に、これらはあなたが必要とするかもしれない主要な部分ですが、完全なリストは、もしあれば、ヘルプにあります 。
URLリストデータの取得
例としてバッドコメディアンのレビューを使用したパーサーの作業を検討してください。 動画に関する情報を取得するには、その識別子( Video_ID )のみが必要です 。この場合はEOWa0fmSGs8です。
ImportJSON式とXPathクエリ言語を使用して、情報を取得および構造化します。
これは、サーバー上のJSONファイルの外観です。
テーブル内のビューの数を取得するための式:
= ImportJSON( '' https://www.googleapis.com/youtube/v3/videos?id=EOWa0fmSGs8&key= {API_Key}&part = statistics ''; "/ items / statistics / viewCount"; '' noHeaders '')原則として、リクエストでXPathを使用することはできませんが、JSONファイルのすべてのコンテンツを、パラメーターによるセグメンテーションなしで取得できます。 XPathパラメーターを使用して必要な数の数式を作成すると、必要なデータのみが取得され、処理が容易になります。
キーワードで動画のリストを取得する
出力を解析する原理は上記の例と同じですが、リクエストの構造はわずかに変わります。
この場合、ビデオの結果を含むJSONファイルはリンクにあります
www.googleapis.com/youtube/v3/search?part=snippet&q= {Your_Query}&type = video&key = {API_Key}typeパラメーターは、出力で得られるものを正確に示します。
type = video-リクエストに関連するビデオのリスト
タイプ=チャネル - チャネルリスト
タイプ=プレイリスト - プレイリストのリスト
リクエストで指定することもできます:
1.発行日または日付範囲
2.検索の地域と言語
3.ビデオの長さ
4.結果の数(デフォルト5、最大50)など
パラメーターとクエリコンストラクターの完全なリストは、ここから入手できます 。
badcomedianのIDのリストを取得するには、次の式を使用します。
= ImportJSON( " www.googleapis.com/youtube/v3/search?part=snippet&q=badcomedian&type=video&key= {API_Key}"; "/ items / id / videoId"; '' noHeaders '')ImportJSONは、さまざまなパラメーターを変更することにより、質量分析またはビデオ解析を実行できるCONNECT関数と連携して動作します。
テーブルの構成例:
マイナス法
この情報解析方法の深刻なマイナス面は、APIへのリクエストの1日の制限がすぐに使い果たされることです。 リクエストの数を制限したり、APIの一貫した呼び出しを作成したりする方法が見つかりませんでした。 つまり、10個以上のキーの情報を同時に解析しようとすると、エラーが発生することが保証されます-1日のクエリ制限の終了。 したがって、キーワードを小さなグループに分割し、結果を値として保存する必要があります。