如何用优雅的姿势下载不存在的网站(youtube)视频?
需求:
作为(伪)资深视频爱好者,在YouTube上有时候在看到一个好看的视频(小姐姐),内心OS:好想把视频(小姐姐)加入到那些年我们下载过的视频(小姐姐)系列中,怎么办?在线等挺急的!
实现:
方案一:
百度之后,呵呵哒,无非是下插件或者借助第三方网站去下,优点是小白也能做,缺点是慢慢慢!在时间就是金钱,时间就是生命的当下这简直是谋财害命!不能忍,弃之!
方案二:
毛主席说过自己动手丰衣足食,荀子老人家说过,君子性非异也,善假于物也。
好吧,我们自己动手。
又有众多大佬说过,人生苦短,我用pyhon。
python最大的好处是拥有大量现成的轮子可以用,减少了不必要的开发。
而作为一名半吊子而又有原则的技术渣,秉着能别人动手尽量不自己来的原则,开始了折腾。
首先,我们来到全球著名的同性交友网站gayhub,搜索关键字youtube
,看到如图:,
哇哇哇,有30多K的star,相信群众的眼睛都是雪亮的,就是它了。
说干就干,点击进入之后,发现作者提供了完整详细的说明文档,并且给出了不同的开发环境下的给的不同方法,而win环境在安装了pip
后只需要执行`pip install --upgrade youtube-dl这条命令即可。
在安装之后,我们就可以小试牛刀了,在命令行模式下执行如图:
就可以看到视频在下载了。
完工。
嗯?并没有
需求变更:我想只需要输入视频链接就可以下载该咋办?
其实这个很简单,加入用户交互就行了嘛
先贴效果图:
再上主要代码:
#! /usr/bin/env python3
# -*- coding:utf-8 -*-
#use youtube-dl download video
from __future__ import unicode_literals
import youtube_dl
video_url = input('please input a youtube video link:')
ydl_opts = {'proxy':'socks5://127.0.0.1:1080','format':'bestvideo[ext=mp4]'}
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
ydl.download([video_url])
print('end')
好了,现在才算正式完工。
附用命令行下载最佳画质:
youtube-dl --proxy socks5://127.0.0.1:1080 -f bestvideo+bestauido/mp4 URL
说明:
- 代码中的字典中的
ydl_opts参数
format`意思是下载画质最清晰的的并且将格式转成mp4,具体别的参数选项可以看源项目的说明。 - 开发环境用的Python3,python2没有测试。
- 如果本来能下,碰到突然不能用的情况可以先执行
pip install --upgrade youtube-dl
将该库更新。 - 该库不仅仅局限于下载
youtube
,还能下载youku
等其他视频网站的视频。 - MAC中如果python和python3共存的情况下,请把
pip
替换成pip3
.
评论已关闭