ユーチューブショーツ自動ダウンロード - 簡単なコードで一度に終わらせる!
最近、YouTubeのショートパンツ、本当にホットでしょう? スクロール一回するだけで、時間が経つのを知らずに、いくつかのものをずっと見てしまいます。 ところが、私が直接YouTubeにアップロードした動画を管理次元で直接ダウンロードしようとすると、手作業で一つ一つクリックしてダウンロードするには、あまりにも面倒でしょう?

それで、今日は知人のチャンネルにあるYouTubeショーツの自動ダウンロード機能を実行する簡単なPythonコーディングを用意しました!初心者でも簡単にできるように一行ずつ親切に説明します。
1.準備物: YouTube APIとyt-dlpを設定する
まず、ユーチューブショーツの自動ダウンロードのための YouTube APIと yt-dlpが必要です。YouTube API キーは Google Cloud Consoleで発行することができます。 yt-dlpは、YouTubeなど複数のサイトの動画をダウンロードするのにとても便利なツールです。YouTube APIキーの確保は YouTubeリスト抽出:APIとPythonで自動化する方法 ポストをぜひご覧ください!
インストールコマンド
VSコード などのIDEプログラム端末で yt-dlp インストールのためのコマンドを以下のように実行します。
pip install yt-dlp
2.ユーチューブショーツの自動ダウンロードをPythonでコーディングする

基本的な準備ができたので、Pythonコーディングを始めましょう!下記のスクリプト(コード)でYouTubeショーツを自動的にダウンロードすることができます。 各動画のタイトルを基準にファイル名を保存し、年齢制限があるショーツもうまくダウンロードすることができます。
from googleapiclient.discovery import build from googleapiclient.discovery
import yt_dlp
import re
# APIキー入力
API_KEY = 'ここに_API_key_input'
# YouTube APIビルド設定
youtube = build('youtube', 'v3', developerKey=API_KEY)
# ショーツリストとID取得関数を定義します。
def get_shorts_titles_and_ids(channel_id, max_results=100):
shorts_info = [].
next_page_token = None
while len(shorts_info) < max_results:
request = youtube.search().list(
part='snippet'、
channelId=channel_id、
maxResults=min(50, max_results - len(shorts_info))、
type='video'、
videoDuration='short'、
pageToken=next_page_token
)
response = request.execute()
for item in response['items']['items']:
title = item['snippet']['title']: title = item['snippet']['title'].
video_id = item['id']['videoId']: video_id = item['id']['videoId'].
shorts_info.append((title, video_id))
next_page_token = response.get('nextPageToken')
もしnext_page_tokenでなければ
break
return shorts_info[:max_results].
# 動画ダウンロード関数
def download_shorts(shorts_info):
for idx, (title, video_id) in enumerate(shorts_info, 1):
url = f"https://www.youtube.com/watch?v={video_id}"
を試してみてください:
sanitized_title = re.sub(r'[\\/*?:"|]', "", title)
filename = f"{idx}.{sanitized_title}.mp4"
ydl_opts = {.
'format': 'best[ext=mp4]'、
'outtmpl':ファイル名、
'noplaylist':True、
}
yt_dlp.YoutubeDL(ydl_opts)をydl:
print(f"Downloading: {filename}")
ydl.download([url])
print(f"ダウンロード中: {filename}")
except Exception as e:
print(f"ダウンロードに失敗しました {title}: {e}")
# チャンネルIDを入力して実行
channel_id = 'ここに_チャンネル_ID_入力'
shorts_info = get_shorts_titles_and_ids(channel_id)
download_shorts(shorts_info)3.コード行ごとの説明 - YouTubeショーツ自動ダウンロードのすべて
それでは、Pythonのコーディング履歴を1行ずつ見て、どのように動作するのか見てみましょう!
API_KEYはYouTube APIキーを入力する場所です。Google Cloud Consoleで発行されたキーを使用してください。youtube = build('youtube', 'v3', developerKey=API_KEY): YouTube APIに接続する手順です。get_shorts_titles_and_ids関数です:channel_id: ダウンロードするYouTubeチャンネルのIDを指定します。max_results:インポートするショーツの最大数を指定します。デフォルトは100個に設定されています。next_page_token: 複数ページのショーツをインポートするためにnextPageTokenを使用します。video_id,タイトル: 各ショート動画のIDとタイトルを抽出し、リストに追加します。
download_shorts関数です:yt_dlp.YoutubeDL(ydl_opts) as ydl: yt-dlp ライブラリでショート動画をダウンロードします。ydl_opts設定: mp4 形式でダウンロードします、outtmplでファイル名を設定します。
このコードを実行すると、指定したYouTubeチャンネルからショートパンツが自動的にダウンロードされます。ファイル名はショーツのタイトルを基準に保存されるので、好きなように簡単に探すことができます。
4.FAQ-よくある質問
Q1.動画のダウンロードができないときはどうすればいいですか?
まず、API_KEYとchannel_idが正しく設定されていることを確認してください。 そしてyt-dlpが最新バージョンであることを確認し、必要に応じてターミナルでpip install --upgrade yt-dlpでアップデートしてください。
Q2.ユーチューブショーツ以外の一般動画もダウンロードできますか?
はい、可能です。 get_shorts_titles_and_ids関数でvideoDuration='short'オプションを削除すると、チャンネルにアップロードされたすべての動画を取得してダウンロードすることができます。
Q3.特定の解像度や画質でのみダウンロードしたい場合はどうすればいいですか?
ydl_optsの'format'オプションを修正して希望の解像度を指定することができます。例えば、'format': 'best[height<=720]'のように設定すると、720p以下の解像度でのみダウンロードします。
Q4.動画タイトルの代わりにカスタムファイル名で保存できますか?
はい、filename変数を変更して好きなファイル名に設定することができます。例えば、"{idx}.CustomName.mp4"形式でファイル名を指定すると、ショートパンツごとに固有のカスタムファイル名で保存されます。
Q5.年齢制限のある動画はどうやってダウンロードできますか?
yt-dlpは、年齢制限のある動画もほとんど迂回してダウンロードすることができます。 ただし、一部の動画は追加認証が必要な場合があります。その場合は、yt-dlpのドキュメントで詳細な設定方法をご覧ください。
Q6.一度に多くのショーツをダウンロードしたい場合はどうすればいいですか?
基本的にmax_resultsパラメータを調整して、インポートするショーツの数を増やすことができます。 ただし、YouTube APIのリクエスト制限を考慮して、最大500個までダウンロードすることをお勧めします。
Q7.ダウンロード速度を上げる方法はありますか?
yt-dlpは基本的に最適化された速度で動画をダウンロードしますが、ネットワーク環境によって速度が異なる場合があります。ダウンロード速度が遅い場合は、他のネットワークに切り替えるか、インターネット接続の状態を確認してください。
Q8.このコードでプレイリストの動画もダウンロードできますか?
現在のコードでは、特定のチャンネルのショートだけをダウンロードするように設定されています。プレイリストをダウンロードするには、channelIdの代わりにplaylistIdを指定してyt-dlpのプレイリストオプションを活用します。
Q9.ファイルが重複してダウンロードされたり、上書きされるリスクはありますか?
コードで各動画の固有番号をファイル名に追加するため、ファイルが重複する可能性はほとんどありません。 ただし、タイトルが同じ場合がありますので、「{idx}.{sanitized_title}.mp4"のように一意の番号を追加する方法を維持してください。
Q10.コード実行時に「Bad Request」エラーが発生します。理由は何ですか?
'Bad Request'エラーは、APIリクエストに問題がある場合や、YouTube側のポリシー変更が原因で発生する可能性があります。この場合、API設定を再確認するか、yt-dlpをアップデートしてから再試行してください。#用語解説
YouTube API: YouTubeが提供するプログラミングインターフェースで、開発者がYouTubeの機能を自分のアプリケーションに統合できるようにするツールです[1]。
yt-dlp: YouTubeなど様々なウェブサイトから動画をダウンロードできるようにするコマンドラインプログラムです。
Google Cloud Console: Googleが提供するウェブベースのインターフェースで、開発者がGoogle Cloudプロジェクトとリソースを管理できるプラットフォームです。
ピップ: Pythonパッケージをインストールして管理するツールです。
IDE統合開発環境(Integrated Development Environment)の略で、コード作成、デバッグ、実行など開発に必要なツールを一つのプログラムで提供するソフトウェアです。
チャンネルID: YouTubeで各チャンネルを一意に識別する文字列です。
APIキー: アプリケーションがAPIを使用する際に認証に必要な固有の識別子です。
機能: 特定のタスクを実行するコードブロックで、再利用が可能で、プログラムの構造を改善するのに役立ちます。
例外処理: プログラム実行中に発生する可能性のあるエラーを管理するプログラミング手法です。
解像度のことです:ディスプレイや画像の鮮明さを示す指標で、通常は横×縦ピクセル数で表されます(例:1920×1080)。






