如何使用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问答(原创)

《Google的广告》

在做广告系统之前,我曾经在网上找了一些文章介绍Google的广告系统,但后来才发现真实的广告系统要复杂的多,里面包含了众多的产品线,并且几乎每天都会有新的功能引入。

如果希望了解详细的产品特性,最好的办法当然是申请一个帐号并去使用它。比如在AdWords中创建你的广告系列并投放广告,并且阅读Google的官方文档了解产品的使用细节。

而我在这里打算一个博客系列,按照我希望的方式来介绍一些和Google广告相关的产品,并谈一些我自己的理解,适合那些希望了解互联网广告并不打算或者没有办法去真实使用具体产品的人来阅读。

有机会也想多了解Facebook的广告系统,时间精力有效,近几个月希望能完成下面的博客列表。

下面是初步的博文列表:

Google的广告综合篇(5篇)

1. Google是怎么赚钱的?

2. Google的广告形式

3. Google的广告平台

4. 互联网广告的关键术语

5. 互联网广告的角色

Google AdWords系列 (16篇)

1. Google的AdWords广告平台

2. Google AdWords工作原理

3. AdWords的关键实体(Entity)介绍

4. AdWords的Web UI

5. AdWords的API

6. AdWords的广告定向

7. AdWords的移动特性

8. AdWords的再营销(Remarketing)

9. AdWords的竞价方式

10. AdWords的关键字价值

11. AdWords与百度推广

12. AdWords的新特性(一)

13. AdWords的新特性(二)

14. AdWords的新特性(三)

15. Google为AdWords筑的护城河

16. AdWords的未来

Google AdSense系列 (8篇)

1. 什么是AdSense

2. AdSense是怎样帮助Google创收的?

3. AdSense平台介绍

4. AdSense的工作原理

5. AdSense的新特性

6. AdSense的弱点

7. AdSense与百度联盟

8. AdSense的未来 – 无所摆在的广告

Google Maps广告系列

1. AdWords的本地搜索广告

2. 地图上的金矿

Youtube广告系列

1. Google广告的新增长点

2. YouTube广告平台的介绍

3. YouTube广告的新特性

4. YouTube与优酷、爱奇艺广告对比

Google的移动广告

1. 未来的趋势

2. 移动端的营收分析

3. 曾经的AdMob

4. 移动端的广告形式

5. 移动端广告的新特性

未来的广告

1. 未来的广告形式

2. 广告的消亡 – 新的广告形式