今天学习一下You-Get这个第三方库,体验一下视频下载的快乐。
简介
You-Get
库是一个基于Python3
的视频下载工具,支持多数国内外主流视频站点的视频下载。看一下项目主页的README.md
,真的是十分的nice啊,基本都支持了,像B站、腾讯视频、土豆、优酷等等。
项目主页:https://github.com/soimort/you-get
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZnwB2tmT-1584577815778)(upload\image-20200315113053631.png)]
安装
安装有三种方法,可以再github
主页下载安装,也可以用pip
下载,还可以用Antigen
安装。
我在这里使用的是pip安装,使用pip3 intall you-get
命令来安装you-get库。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZLIdFQH7-1584577815780)(upload\image-20200315120409853.png)]
由于pip更换了国内源,很快就完成安装了。
实例
接下来就来体验一把这个you-get库的实力,那么就编一个实例来在B站上下个视频看看。
系统:
Windows 10 version 1909
Python:
Python 3.7.4
You-Get:
You-Get 0.4.1410
第一种就是直接使用命令行执行
下载视频
使用命令you-get -o 存储路径 URL
, 注意一点URL不可以使用’'包起来,不然就会报错。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICDTgcPU-1584577815781)(upload\image-20200315132428382.png)]
可以看到这个视频已经安详地躺在了目录下。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hro1m6kT-1584577815781)(upload\image-20200315132803024.png)]
查看视频信息
使用命令you-get -i https://www.bilibili.com/video/av10298843?from=search&seid=17023892018446291553
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PpKHewz8-1584577815782)(upload\image-20200315134037302.png)]
第二种是通过编写Python程序实现批量的下载
写了一个小程序,不多说上代码
源代码
import os
def main():
info()
tag = input("请选择:")
if tag == 'a':
print('-----------------------进入批量下载模式-----------------------\n')
file2 , url2 = getchara()
mutildownload( file2 , url2 )
elif tag == 'b':
print("-----------------------进入单次下载模式-----------------------\n")
file1 , url1 = getcharb()
download( file1 , url1 )
else:
print("无效的选项,程序将会关闭\n" + "5\n" + '4\n' + "3\n" + "2\n" +"1")
exit()
def info():
print("-----------------------A1andNS video download-----------------------" + '\n' + "This is a program \
based on you-get , you can use it to download the video from vidoe website , such as \
bilibili , tencent video and so on.")
print("请输入字母a以批量下载或输入字母b以单次下载!!!")
def getcharb():
file1 = input("请输入一个保存路径:")
url1 = input("请输入一个视频链接:")
return file1 , url1
def getchara():
file2 = input("请输入一个保存路径:")
url2 = input("请输入你存放URL的文本文件的绝对路径(注意:URL应当每行只存放一个):")
return file2 , url2
def download(file1 , url1):
try:
os.system("you-get " + '-o ' + file1 + " " + url1)
print("运行成功!!!")
except:
print("运行失败!!!\n" + "5\n" +'4\n' + "3\n" + "2\n" + "1")
exit()
def mutildownload( file2 , url2 ):
f = open( url2 )
lines = f.readlines()
try:
for line in lines:
download( file2 , line )
print("运行成功")
except:
print("运行失败!!!" + "5\n" +'4\n' + "3\n" + "2\n" + "1")
f.closed()
main()
单次下载
成功下载结果如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L4ImNCps-1584577815784)(upload\image-20200315145322670.png)]
批量下载
批量下载时,使用一个url字典来实现,url存储格式如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-db53B320-1584577815785)(upload\image-20200315151136841.png)]
成功执行,把3个视频都下载下来了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vYRYHPwI-1584577815786)(upload\image-20200315151001025.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vibi7DRB-1584577815787)(upload\image-20200315151039426.png)]
这个You-get工具正是一个好东西啊,感觉很棒,开发者大大牛逼。吹爆!!!
注意
(1)各大视频网站需要登录观看的视频无法直接下载
(2)有些网站视频需要设置代理
写在最后
这个博客可能不怎么写了,换了一个新的博客。但是如果可能,可以两边一起发,但是几率较低。
新博客:https://a1andns.github.io