Python
 Computer >> コンピューター >  >> プログラミング >> Python

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側の仕様変更にも注意してください。

  1. iPhoneにYouTube動画をダウンロードしてカメラロールに保存する方法【脱獄不要】

    美しいデザインと優れたパフォーマンスを誇るiPhoneですが、時にはその制限がユーザーをイライラさせることもあります。例えば、iPhoneでYouTube動画を見ていて、それをカメラロールに保存したいと思っても、標準機能では実現できません。もどかしく感じたことはありませんか?実際のところ、YouTube Premium(旧YouTube Red)の有料サブスクリプションを受け入れない限り、iPhoneにYouTube動画を保存するのは一筋縄ではいきません。有料プランでは広告なしで動画を視聴でき、オフライン再生用のダウンロード機能も利用できます。しかし、ダウンロードした動画にアクセスできるのはY

  2. Reddit動画を音声付きでダウンロードする方法【PC・スマホ対応】

    偏りのない、知的で魅力的なコミュニティ主導のコンテンツをお探しなら、Redditはまさにうってつけの場所です。Redditユーザーであってもなくても、他では見つけられないユニークで面白い動画に出会い、「この動画を丸ごとダウンロードしたい!」と思ったことはありませんか?オフラインで後から視聴したい、あるいは友達とシェアしたい——そんな場面は意外と多いものです。そこで本記事では、音声付きのReddit動画をダウンロードするためのおすすめの方法を、デバイス別に詳しくご紹介します。 音声付きReddit動画のダウンロード方法 1. オンラインダウンローダーを使う もっとも手軽なのが、オンラインツールを