SE::YouTube::Video - YouTube動画データスクレイパー
スクレイパーの概要
YouTube動画データスクレイパー。このスクレイパーを使用すると、動画に関するすべての主要なデータ、字幕、コメントをスクレイピングできます。クエリとしてYouTube動画ページのURLを使用する必要があります。動画のリンクは
SE::YouTubeを使用して収集できます。YouTube動画スクレイパーを使用することで、マルチスレッドモードで動画に関するすべてのデータを収集することが可能です。
A-Parserの機能により、SE::YouTube::Video スクレイパーのスクレイピング設定を将来の使用のために保存(プリセット)したり、スクレイピングのスケジュールを設定したりすることが可能です。
内蔵された強力なテンプレートエンジン Template Toolkit により、結果に必要なロジックを適用し、JSON、SQL、CSVを含む様々なフォーマットでデータを出力するなど、必要な形式と構造で結果を保存できます。
収集データ
- 動画のタイトルと説明
- 動画の長さ
- 視聴回数、高評価数、コメント数
- プレビューへのリンク
- 投稿者名、アバターとチャンネルへのリンク、およびチャンネル登録者数
- 動画の字幕(表示時間情報を含む)
- タグリスト
- コメントリスト(コメントへの返信を含む)
- コメントIDと親コメントID(返信の場合)
- 投稿者名、プロフィールとアバターへのリンク
- コメント本文と投稿時間
- 関連動画リスト
- 動画のリンクとタイトル
- 投稿者と日付
- 視聴回数と動画の長さ
- 動画のチャプター情報 ($chapters)
- タイトル、開始時間(秒)、プレビュー画像へのリンク
機能
- インターフェース言語の選択
- 字幕言語の選択
- コメントのページ数の指定(1ページあたり約20コメント)
- 各コメントに対する返信の最大ページ数の指定(最初のページは約10返信、以降は約50返信)
- 関連動画のページ数の指定(1ページあたり約20動画)
- Shortsのサポート
ユースケース
- YouTube動画に関する統計データの収集
- テキストソースとしての字幕とコメントのスクレイピング
- 関連動画の検索
動作の特徴
字幕言語の選択ロジック
スクレイパーは以下の優先順位(降順)を使用します:投稿者作成、投稿者作成(翻訳済み)、自動生成、自動生成(翻訳済み)。
例えば、スクレイパーで英語の字幕をスクレイピングするように設定した場合:
- 動画に投稿者作成の英語字幕がある場合 - 投稿者作成のものがスクレイピングされます
- 動画に投稿者作成の字幕があるが他言語の場合 - 英語に翻訳された投稿者作成のものがスクレイピングされます
- 動画に投稿者作成の字幕がなく、英語の自動生成字幕がある場合 - 自動生成のものがスクレイピングされます
- 動画に投稿者作成の字幕がなく、自動生成字幕が他言語の場合(動画が他言語のため) - 翻訳された自動生成のものがスクレイピングされます
コメントのスクレイピング
コメントは単一のスレッドで収集されるため、特に大量のページや返信をスクレイピングする場合、スクレイピングに時間がかかることがあります。返信のページ数を多く設定することは推奨されず、通常は1〜3ページで十分です。また、返信のスクレイピングを完全に無効にすることで、動作を大幅に高速化できます。
クエリ
クエリとして動画へのリンクを指定する必要があります。例:
https://www.youtube.com/watch?v=lWA2pjMjpBs
https://www.youtube.com/watch?v=EDwb9jOVRtU
https://www.youtube.com/watch?v=5NPBIwQyPWE
結果の出力例
A-Parserは内蔵のテンプレートエンジン Template Toolkit により柔軟な結果フォーマットをサポートしており、任意の形式やCSV、JSONなどの構造化された形式で結果を出力できます。
デフォルト出力
結果フォーマット:
$query - $title\nViews: $viewsCount, likes: $likesCount, comments: $commentsCount\n
結果として、動画のリンク、タイトル、高評価数、視聴回数、コメント数が出力されます:
https://www.youtube.com/watch?v=5NPBIwQyPWE - Avril Lavigne - Complicated (Official Video)
Views: 571331713, likes: 3959948, comments: 143597
https://www.youtube.com/watch?v=EDwb9jOVRtU - Madonna - Hung Up (Official Video) [HD]
Views: 414662791, likes: 2153344, comments: 91895
https://www.youtube.com/watch?v=lWA2pjMjpBs - Rihanna - Diamonds
Views: 2104207258, likes: 10235971, comments: 394622
字幕の出力
結果フォーマット:
$query\n$subtitles.format('$text ')\n\n
結果として、動画のリンクと指定した言語の字幕が出力されます。
CSVテーブルへの出力
内蔵ツール tools.CSVLine を使用すると、ExcelやGoogleスプレッドシートにインポート可能な正しいテーブルドキュメントを作成できます。
全般的な結果フォーマット:
[% tools.CSVline(query, p1.author, p1.date, p1.duration, p1.title, p1.viewsCount, p1.likesCount, p1.commentsCount, p1.tags.format('$tag,')) %]
ファイル名:
$datefile.format().csv
冒頭のテキスト:
Link,Author,"Publish date",Duration,Title,"Views count","Likes count","Comments count",Tags
全般的な結果フォーマットでは、Template Toolkit テンプレートエンジンが適用されます。
結果のファイル名で、拡張子を csv に変更するだけです。
「Prepend text」オプションをタスクエディタで利用するには、「More options」を有効にする必要があります。 「Prepend text」にカラム名をカンマ区切りで記入し、2行目を空行にします。
設定可能な項目
| パラメータ名 | デフォルト値 | 説明 |
|---|---|---|
| Interface language | English | インターフェース言語の選択 |
| Subtitles language | English | 字幕言語의選択 |
| Comments pages count | 5 | コメントのページ数 |
| Pages count for replies | 3 | 各コメントに対する返信のページ数 |
| Pages count for related videos | 5 | 関連動画のページ数 |
| Login required is error | ☑ | ログインが必要な旨のメッセージをエラーとして扱い、再試行するかどうかを指定します |