PythonのpafyライブラリでYouTube動画・音声をダウンロードする方法
この記事では、Pythonのpafyモジュールを使って、YouTube動画の詳細情報を取得し、さまざまな形式でダウンロードする方法を解説します。公式ドキュメントはこちらのリンクから確認できます。
pafyモジュールのインストール
まず、以下のコマンドを実行してpafyモジュールをインストールします。
pip install pafy
コマンドが正常に完了すると、次のような出力が表示され、pafyのインストールが成功したことがわかります。
Collecting pafy Using cached https://files.pythonhosted.org/packages/b0/e8/3516f761558525b00d3eaf73744eed5c267db 20650b7b660674547e3e506/pafy-0.5.4-py2.py3-none-any.whl Installing collected packages: pafy Successfully installed pafy-0.5.4
続いて、以下のコマンドでpafyモジュールを正しくインポートできるか確認しましょう。
import pafy
エラーが表示されなければ準備完了です。もしエラーが発生した場合は、pafyが内部で依存している以下のモジュールを追加でインストールすることで問題を解決できます。
pip install youtube-dl
このコマンドを実行すると、youtube-dlのインストールが成功した際に次のような出力が得られます。
Collecting youtube-dl Using cached https://files.pythonhosted.org/packages/b1/ec/fe552181d6bd05a9e5b6b51f6f7ea4fed9f12 1ce595d788217e59318e47c/youtube_dl-2019.7.30-py2.py3-none-any.whl Installing collected packages: youtube-dl Successfully installed youtube-dl-2019.7.30
YouTube動画の詳細情報を取得する
動画のURLから詳細情報を抽出する手順は以下のとおりです。
pafyモジュールをインポートします。
動画のURLを変数に格納します。
pafy.new(url)メソッドを呼び出し、結果を変数に保存します。
その変数を使って、動画に関するすべての情報を取得します。
実際の例を見てみましょう。
## モジュールをインポート
import pafy
## 動画のURL
url = "https://www.youtube.com/watch?v=cr3-J5wDLsM"
## pafyのnewメソッドを呼び出す
result = pafy.new(url)
## タイトル、再生数、投稿者、長さ、高評価数などの詳細を取得
print(f"タイトル: {result.title}")
print(f"再生数: {result.viewcount}")
print(f"投稿者: {result.author}")
print(f"動画の長さ: {result.length}")
print(f"高評価数: {result.likes}")
print(f"低評価数: {result.dislikes}")
print(f"説明文: {result.description}")
上記のプログラムを実行すると、次のような結果が出力されます。
タイトル: Indexing Overview 再生数: 862 投稿者: Tutorials Point (India) Pvt. Ltd. 動画の長さ: 167 高評価数: 6 低評価数: 1 説明文: Indexing Overview Watch more Videos at https://www.tutorialspoint.com/videotutorials/index.htm Lecture By: Mr. Arnab Chakraborty, Tutorials Point India Private Limited
このように、わずか数行のコードで動画のタイトルや再生回数、投稿者名、動画の長さ(秒)、高評価・低評価の数、説明文まで簡単に取得できることがわかります。
最高画質で動画をダウンロードする
最高画質の動画をダウンロードする手順は以下のとおりです。
pafyモジュールをインポートします。
動画のURLを変数に格納します。
pafy.new(url)メソッドを呼び出し、結果を変数に保存します。
getbestメソッドを使って最高画質のストリームを取得し、変数に保存します。
その変数に対してdownloadメソッドを呼び出します。
以下の例をご覧ください。
## モジュールをインポート import pafy ## 動画のURL url = "https://www.youtube.com/watch?v=cr3-J5wDLsM" ## pafyのnewメソッドを呼び出す result = pafy.new(url) ## getbest()で最高画質の動画を取得 best_quality_video = result.getbest() ## printすると画質情報を確認できる print(best_quality_video) ## download()でダウンロード best_quality_video.download()
上記のプログラムを実行すると、次のような結果が出力されます。
normal:mp4@1280x720 26,638,008 Bytes [100.00%] received. Rate: [ 820 KB/s]. ETA: [0 secs]
また、getbest()メソッドにpreftype引数を渡すことで、3gp、mp4、WebMなど任意の形式で動画をダウンロードすることも可能です。以下の構文を参考に、ぜひ自分でも試してみてください。
## ここまでの手順は同じ best_quality_video = result.getbest(preftype = "mp4") ## 以降の手順も同じ
最高音質で音声をダウンロードする
音声のダウンロードも、動画の場合と基本的な流れは同じです。getbest()の代わりにgetbestaudio()メソッドを呼び出し、その後download()メソッドでダウンロードするだけです。まずはご自身で試してみてください。難しい場合は、以下のコードを参考にしてください。
## モジュールをインポート import pafy ## 動画のURL url = "https://www.youtube.com/watch?v=cr3-J5wDLsM" ## pafyのnewメソッドを呼び出す result = pafy.new(url) ## getbestaudio()で最高音質の音声を取得 best_quality_audio = result.getbestaudio() ## printすると音声の品質情報を確認できる print(best_quality_audio) ## download()でダウンロード best_quality_audio.download()
上記のプログラムを実行すると、次のような結果が出力されます。
audio:m4a@128k 27,518 Bytes [100.00%] received. Rate: [ 306 KB/s]. ETA: [0 secs] 'Indexing Overview.m4a'
まとめ
pafyモジュールを使えば、YouTube動画のメタデータ取得から、最高画質の動画・最高音質の音声のダウンロードまで、シンプルなコードで実現できます。形式を指定したい場合はgetbest(preftype="mp4")のように引数を渡すだけで対応可能です。なお、pafyはyoutube-dlに依存しているため、動作しない場合はyoutube-dlのバージョンやYouTube側の仕様変更にも注意してください。
-
iPhoneにYouTube動画をダウンロードしてカメラロールに保存する方法【脱獄不要】
美しいデザインと優れたパフォーマンスを誇るiPhoneですが、時にはその制限がユーザーをイライラさせることもあります。例えば、iPhoneでYouTube動画を見ていて、それをカメラロールに保存したいと思っても、標準機能では実現できません。もどかしく感じたことはありませんか?実際のところ、YouTube Premium(旧YouTube Red)の有料サブスクリプションを受け入れない限り、iPhoneにYouTube動画を保存するのは一筋縄ではいきません。有料プランでは広告なしで動画を視聴でき、オフライン再生用のダウンロード機能も利用できます。しかし、ダウンロードした動画にアクセスできるのはY
-
Reddit動画を音声付きでダウンロードする方法【PC・スマホ対応】
偏りのない、知的で魅力的なコミュニティ主導のコンテンツをお探しなら、Redditはまさにうってつけの場所です。Redditユーザーであってもなくても、他では見つけられないユニークで面白い動画に出会い、「この動画を丸ごとダウンロードしたい!」と思ったことはありませんか?オフラインで後から視聴したい、あるいは友達とシェアしたい——そんな場面は意外と多いものです。そこで本記事では、音声付きのReddit動画をダウンロードするためのおすすめの方法を、デバイス別に詳しくご紹介します。 音声付きReddit動画のダウンロード方法 1. オンラインダウンローダーを使う もっとも手軽なのが、オンラインツールを