Python YouTube動画をダウンロードする「Pytube」あるいは「youtube-dl」

'20/08/30更新:youtube-dlを使用する方法を本文末に追記しました。
 本記事では、YouTube「ユーチューブ」の動画を.mp4動画ファイルと.mp3音声ファイルへ保存する雛形コードを載せました。インストールは次の通りです。

pip3 install pytube3
conda install -c conda-forge opencv
conda install -c conda-forge moviepy

■本プログラム
使い方は、本コード中の「my_download_url =」にDownloadしたいYouTubeのURLを指定するだけです。 

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# https://python-pytube.readthedocs.io/en/latest/

from pytube import YouTube
import cv2
import moviepy.editor as mp

# ようつべをダウンロードする関数
def download_youtube(download_url):
    yt = YouTube(download_url)
    stream = yt.streams.first()
    finished = stream.download() #空引数でカレントディレクトリへDLする
    
    return yt.title # タイトルを取得する

# 音声を抽出する関数
def extract_audio(input_video_w, out_audio):
    print("start extract_audio")
    # 読み出す動画のオブジェクト作成
    clip_in = mp.VideoFileClip(input_video_w).subclip()
    # 音声を抽出してファイルに保存
    clip_in.audio.write_audiofile(out_audio)

def main(my_download_url):
    my_title = download_youtube(my_download_url)
    print(my_title)
    extract_audio(my_title + '.mp4', my_title + '.mp3')

if __name__ == '__main__':
    # ダウンロードするURLを指定
    my_download_url = 'https://www.youtube.com/watch?v=9h-ahd1NdR8'
    
    # 関数呼び出し
    main(my_download_url)
    

●参考リンク

python-pytube.readthedocs.io

※pytyubeの場合、URLによってはエラーになる場合もありますそれに見舞われた場合は、youtube-dlを使用するのが吉です。下記のようにpipでインストールします。

$ pip install youtube-dl

インストール後は下記のようにして、anaconda promptからURLを指定して実行するとカレントディレクトリへファイルを保存します。

$ youtube-dl https://www.youtube.com/watch?v=xSEoiR9-LeM&list=WL
$ youtube-dl --extract-audio --audio-format mp3 https://www.youtube.com/watch?v=xSEoiR9-LeM&list=WL

以上

<広告>