You-Get开源在线下载神器,搭配python更加丝滑(文中案例演示)
大家好,我是辰哥
今天给大家介绍一个号称可以下载全网视频、音频、图像的开源库
——you-get
you-get
这里说全网可能一点夸张,但如果实际上去使用you-get下载媒体文件(视频、音频、图像),对于主流的平台几乎都可以满足需求。
目前you-get支持下载的媒体文件平台80+(包括国内国外),像国内常用的各种主流视频平台(某站、某手、某音、某酷等)。
具体支持哪些平台,可以参考下方链接
https://github.com/soimort/you-get
安装you-get
you-get是python的一个库,因此通过pip方式直接进行安装
pip install you-get
使用you-get
you-get的使用很简单,一行命令就可以搞定
命令格式:
you-get [媒体文件URL]
【备注】上方的命令是在终端中执行
下面以辰哥的一个视频进行举例:
you-get https://www.bilibili.com/video/BV1Ef4y137ex
当前的终端中路径处于桌面,所以下载好的视频保存在桌面,其保存的格式为flv
命令:you-get [媒体文件URL]
上面默认的命令下载好的视频是flv格式,此外you-get可以设置参数
具体参数以及用法如下:
-i 【解析视频信息】
-o【保存地址】
-u【解析视频真实地址】
--json【视频的json信息】
参数-i用法:
you-get -i https://www.bilibili.com/video/BV1Ef4y137ex
罗列出了该视频在下载保存时可以选择不同的格式,具体如下:
you-get --format=dash-flv https://www.bilibili.com/video/BV1Ef4y137ex
选择第一个(高清1080p的mp4格式)
参数-o用法:
you-get -o /Users/lyc https://www.bilibili.com/video/BV1Ef4y137ex
下载的视频保存到路径:/Users/lyc
参数-u用法:
you-get -u https://www.bilibili.com/video/BV1Ef4y137ex
解析视频的真实链接
参数--json用法:
you-get --json https://www.bilibili.com/video/BV1Ef4y137ex
解析视频的json信息(不同高清格式真实播放地址)
图片或音乐
同样的,音乐和图片也是一样的下载
命令:you-get [媒体文件URL]
演示:
配合Python使用
为了实现批量下载或者与代码(Python)结合,you-get通常都是通过代码去使用,而非在终端。
下面教大家如何在在代码中去实现上面终端执行的效果
同样还是下载视频
from you_get import common
#视频链接
v_url = 'https://www.bilibili.com/video/BV1Ef4y137ex'
#保存格式
v_format = 'dash-flv'
#保存路径
save_dir = r'/Users/lyc/'
common.any_download(url=v_url,stream_id=v_format,info_only=False,output_dir=save_dir,merge=True)
通过代码去使用you-get就可以成功把视频下载保存到指定位置
扩展:
相信大家都了解过爬虫,甚至写过爬虫,you-get和爬虫结合,爬虫采集到视频链接(非真实链接)然后通过you-get进行下载
此外还有另外一种方法
import os# #视频链接v_url = 'https://www.bilibili.com/video/BV1Ef4y137ex'# #保存格式v_format = 'dash-flv'# #保存路径save_dir = r'/Users/lyc/'tem_cmd = 'you-get --format='+v_format+' -o '+save_dir +' ' +v_url#you-get --format=dash-flv -o /Users/lyc/ https://www.bilibili.com/video/BV1Ef4y137exresult = os.system(tem_cmd );print(result)
通过os.system可以执行终端命令
同样下载和终端效果一样
本文干货到此结束
有任何疑问小伙伴们欢迎下方留言讨论哈~
麻烦在右下角的【在看】和【赞】来一个
支持原创,给予动力
数据小白进阶之路,收藏已久的宝藏公众号推荐给你~~(文末有福利)
Python制作可视化大屏全流程!(代码分享)
python实现两台不同主机之间进行通信(客户端和服务端)——Socket