YouTubeリスト抽出:APIとPythonで自動化する方法
ユーチューブで色んなコンテンツを管理したり分析するためには、YouTubeのリストを自動で抽出することがとても便利です。YouTube Data APIとPythonを使うと、特定チャンネルのショートや一般動画のリストを簡単に抽出することができます。この記事では YouTubeリスト抽出のためのAPI設定とPythonコードの書き方を段階的に説明し、様々な活用事例を紹介します。します。
1.YouTubeリスト抽出のための準備
ユーチューブリストを抽出するには YouTube Data APIが必要です。このAPIは、YouTubeの動画、チャンネル、プレイリストなどのデータを提供し、これを活用して欲しい情報を自動的に収集することができます。
1.1 YouTube Data APIキー発行
まず、 Google Cloud Platform(GCP)でYouTube Data APIを有効にし、APIキーを発行する必要があります。以下の手順で設定します。
- Google Cloud Consoleにログイン後、新しいプロジェクトを作成します(サイト上部のMy First Project - NEW PROJECT - Project name入力後CREATEをクリック).
- 左上3線メニュークリック後、API及びサービス > ライブラリから YouTube Data API v3を検索して有効化(ENABLEをクリック)します。
- APIとサービス > ユーザー認証情報(Creadentials)で APIキーを生成してコピーとします。このAPIキーはPythonコードでYouTube Data APIとの接続に使用されます。
1.2 YouTubeチャンネルIDの確認
抽出したい動画リストがあるチャンネルのIDも必要です。チャンネルIDはチャンネルURLで確認できます。 https://www.youtube.com/channel/UCxxxx 形のURLでUCで始まる文字列がチャンネルIDです。自分のYouTubeチャンネルの初期画面でCustomize channelをクリックすると、アドレスバーで確認することができます。
2.Pythonでショーツユーチューブリストを抽出する
これで発行されたAPIキーとチャンネルIDを使ってPythonでYouTubeショートリストを抽出することができます。ここで主に使うAPIは youtube.search()このAPIで検索条件を設定し、その条件に合うショートリストを抽出することができます。

Pythonのコード例:ショーツYouTubeリストの抽出
googleapiclient.discovery import build from googleapiclient.discovery import build
# APIキー入力
API_KEY = 'YOUR_API_KEY'
# YouTube APIサービスビルド
youtube = build('youtube', 'v3', developerKey=API_KEY)
# 特定のチャンネルからショーツリストの抽出 (ページネーションを含む)
def get_shorts_titles(channel_id, max_results=100):
titles = [].
next_page_token = None
while len(titles) < max_results:
request = youtube.search().list(
part='snippet'、
channelId=channel_id、
maxResults=min(50, max_results - len(titles)), # 最大50個のリクエスト、残り数に合わせてリクエストを調整します。
type='video'、
videoDuration='short', # 短い動画(ショート)だけを取得する。
pageToken=next_page_token
)
response = request.execute()
# 結果からタイトルを抽出
titles.extend([item['snippet']['title'] for item in response['items']])
# 次のページに移動
next_page_token = response.get('nextPageToken')
# 次のページがなければ終了する
if not next_page_token:
break
return titles[:max_results]
# チャンネルID入力
channel_id = 'YOUR_CHANNEL_ID'
# ショートパンツのタイトルリスト出力
shorts_titles = get_shorts_titles(channel_id, max_results=100)
for idx, title in enumerate(shorts_titles, 1):
print(f"{idx}. {title}")コードの説明:
- API接続発行されたAPIキーでYouTube APIサービスに接続します。
- ページネーションの追加:
get_shorts_titles関数でnextPageTokenを使用して複数ページの結果を取得できるように設定しました。 最大100個の結果を取得するまで繰り返します。 - フィルター条件の変更:
q='ショートパンツ'条件を削除して、フィルタリングが制限されすぎないようにしました。 - タイトル抽出と出力: 各動画のタイトルをリストとして保存した後、指定した数だけ出力します。
初めてコーディングを実行すると googleapiclient モジュールがインストールされていないため、エラーが発生します。この時、ターミナルウィンドウで pip install google-api-python-client コマンドで該当モジュールをインストールしてください。
3.Pythonで動画YouTubeのリストを抽出する
これで、YouTubeでショーツだけでなく、一般的な 動画一覧もPythonを使って簡単に抽出することができます。動画リストを抽出する時も youtube.search() APIを使用し、検索条件を変えれば長い動画も抽出可能です。

Pythonのコード例:動画YouTubeリストの抽出
from googleapiclient.discovery import build build
from datetime import timedelta
# APIキー入力
API_KEY = 'YOUR_API_KEY'
# YouTube APIサービスビルド
youtube = build('youtube', 'v3', developerKey=API_KEY)
# 特定のチャンネルから一般動画リストの抽出
def get_video_titles(channel_id, max_results=100):
titles = [].
next_page_token = None
while len(titles) 60: # 60秒以上の場合のみ追加する。
titles.append(item['snippet']['title'])
# 次のページに移動
next_page_token = search_response.get('nextPageToken')
# これ以上次のページがなければ終了
if not next_page_token:
break
return titles[:max_results]
# ISO 8601の期間を秒単位に変換する関数
def parse_duration(duration):
parsed_duration = timedelta()
if 'PT' in duration:
time_str = duration.replace('PT', '')
hours = minutes = seconds = 0
if 'H' in time_str:
hours, time_str = time_str.split('H')
parsed_duration += timedelta(hours=int(hours))
if 'M' in time_str:
minutes, time_str = time_str.split('M')
parsed_duration += timedelta(minutes=int(minutes))
if 'S' in time_str:
seconds = time_str.replace('S', '')
parsed_duration += timedelta(seconds=int(seconds))
return parsed_duration.total_seconds()
# チャンネルID入力
channel_id = 'YOUR_CHANNEL_ID'
# 一般動画タイトルリスト出力
video_titles = get_video_titles(channel_id, max_results=100)
for idx, title in enumerate(video_titles, 1):
print(f"{idx}. {title}")
コードの説明:
- 検索依頼まず、最初に
search().listを通じてアイデンティティだけを取得して、そのチャンネルの全ての動画IDを取得します。 - 動画長さの確認:
videos().listメソッドで各動画の内容詳細を依頼しています、期間を確認し、60秒以上の動画のみをフィルタリングします。 - 動画タイトルの保存と出力長さが60秒以上の動画のみをリストに追加し、タイトルを出力します。
4.YouTubeリスト活用事例
こうして抽出したYouTubeショートや動画リストは、様々な分野で活用することができます。ここではいくつかの代表的な事例を紹介します。

4.1 コンテンツ分析とトレンドの把握
YouTubeの動画リストを自動的に抽出して分析することができれば、コンテンツのトレンドを素早く把握することができます。例えば、特定のチャンネルの人気動画を分析して、どのようなテーマや形式がよく反応するか確認することができます。抽出したデータはエクセルに保存したり、追加の分析ツールと組み合わせてより深い分析が可能です。
4.2 マーケティングキャンペーン管理
ブランドや商品を宣伝するためにYouTubeを使用する場合、競合他社の動画リストを抽出し、どの動画が最も多くの再生回数を記録したか、どのようなキーワードでタイトルを構成したかを分析することができます。このような情報を通じてキャンペーン戦略を立て、成功したコンテンツの要素をベンチマークすることができます。
4.3 教育コンテンツ管理
大規模な動画コンテンツを管理する必要があるクリエイターや企業は、抽出した動画リストを活用してコンテンツ管理を支援することができます。APIを通じてすべての動画のタイトル、説明、公開日などのデータを自動的に収集し、これをデータベースやスプレッドシートに整理して簡単に管理することができます。
4.4 自動化されたプレイリスト作成
チャンネルにアップロードされた動画をカテゴリー別に分類して自動的にプレイリストを生成するのにもこの方法を使うことができます。例えば、特定のテーマの動画だけを抽出し、そのテーマに合ったプレイリストを作成し、自動的に更新するように活用することができます。
5.整理する
YouTube Data APIとPythonを活用したYouTubeリスト抽出は、コンテンツ分析、マーケティング戦略策定、教育資料管理など様々な分野で便利に活用することができます。ショートだけでなく、一般的な動画リストも簡単に抽出することができ、抽出したデータでより効率的なコンテンツ企画と管理をすることができます。APIの設定とPythonコードでYouTubeのデータを簡単に管理してみましょう!もし、Pythonが初めてなら、まず、一度 VS CODEのインストール - ウィンドウズ基準 ポストをご覧いただき、開始してください。






