メインコンテンツへスキップ

SE::YouTube::Video - YouTube動画データスクレイパー

スクレイパーの概要

YouTube動画データスクレイパー。このスクレイパーを使用すると、動画に関するすべての主要なデータ、字幕、コメントをスクレイピングできます。クエリとしてYouTube動画ページのURLを使用する必要があります。動画のリンクはSE::YouTubeSE::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 languageEnglishインターフェース言語の選択
Subtitles languageEnglish字幕言語의選択
Comments pages count5コメントのページ数
Pages count for replies3各コメントに対する返信のページ数
Pages count for related videos5関連動画のページ数
Login required is errorログインが必要な旨のメッセージをエラーとして扱い、再試行するかどうかを指定します