如何使用Python下载YouTube视频文件?

Youtube视频的下载

如果知道Youtube一个视频的网址,例如“https://www.youtube.com/watch?v=XKuL5xaKZHM”,那么如何使用Python来下载该视频到本地呢(使用时,请注意版权问题)?

在Github上有一个youtube-dl(Youtube Download)的项目,提供了下载视频的工具,将youtube-dl作为Python subprocess的命令参数,可以实现视频下载的python脚本。

 

安装youtube-dl库

在使用之前,我们需要先安装youtube-dl库。youtube在Linux,Windows以及Mac上都提供了支持。

(1) 在Linux/Unix系统上,可以通过如下办法安装:

sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

如果不是用curl,可以采用wget来安装:

sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

(2) Windows系统上,可以直接下载youtube-dl的exe文件,并放在对应目录中,将该目录加入Path环境变量即可。下载地址:http://rg3.github.io/youtube-dl/download.html

或者可以使用pip来安装,如果有权限问题,可以使用Administrator打开cmd窗口进行安装:

pip install --upgrade youtube-dl

(3) Mac系统安装方法如下:
使用brew:

brew install youtube-dl

或者,使用port:

sudo port install youtube-dl

使用Python调用youtube-dl

安装好youtube-dl之后,可以使用subprocess来启动youtube-dl来下载视频了,代码如下:

youtube_url = 'https://www.youtube.com/watch?v=XKuL5xaKZHM'
youtube_file_path = 'my_video.mp4'
download_process = subprocess.Popen(['youtube-dl', 
                                     '{0}'.format(youtube_url), 
                                     '-o', 
                                     file_path],
                                    stdout=subprocess.PIPE)
download_process.communicate()

当然也可以直接在命令行中来下载视频。
youtube-dl提供了强大的功能,更多的信息可以参考:https://github.com/rg3/youtube-dl

 

By Code问答(原创)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

22 + = 25