一、前期准备
有时候我们想下载自己喜欢的电影,但很多时候要么需要安装客户端才能下载,或者干脆不提供下载的服务,很是不爽,
因此这里我们介绍使用python来实现网站的电影下载功能,凡是能在线观看的,都是可以下载滴!
需要使用的工具有:1、python 2、you_get模块,使用pip安装 3、ffmpeg,ffmpeg需要去网站下载一个,加压完之后,将bin目录配置到环境变量中
控制台输入ffmpeg说明配置成功了
二、开始编码,下载视频
目前我遇到的下载视频的方式有两种,1种就是使用you_get来直接获取,但是有时候对于某些小网站获取不到,
咱也不知道,咱也不敢问针对这种情况,我分析了这些网站的请求,使用requests库直接进行下载,下面咱们一起来看下代码:
1、使用you_get+ffmpeg代码如下:
1 from you_get import common as you_get
2 url = "http://www.pengwei168.com/play/41952-1-1.html" #视频网址
3 #
4 dir = r"C:\film" #下载目录
5 os.environ["path"] = os.environ.get("path")+r";C:\film\ffmpeg-20160626-074fdf4-win32-static\bin"#设置ffmpeg到项目环境
6 sys.argv = ["you-get","--debug","-o",dir,url] #下载视频
7 # sys.argv = ["you-get","-i",url]#查看视频信息
8 # sys.argv = ["you-get","--format=4k","-o",dir,url]#选择清晰度下载视频
9 you_get.main()
上面的例子为优酷的下载视频,下载速度极快,而且上面下载的这个视频即使你是优酷vip都不给你下载,所以只能用黑科技了。
上面的代码我自己亲测对优酷,爱奇艺,搜狐视频都能轻松下载。
2、使用requests库下载电影,当遇到某些视频网站you_get无法下载的话(获取可以下载,我可能不知道),我们可以使用request来下载。
首先我们分析一下电影网站的请求,发现了如下的请求:
这个截图主要有两类请求,第一个是视频的请求头文件,请求里面会返回这个商品总共有多少个小的视频组成,后面框起来的就是这些小片段的视频了。
我们的思路很简单:挨次请求这些小的片段视频,将其写到本地的一个文件里面就可以了,话不多说,上才艺!
1 import requests
2 url = "https://youku.cdn7-okzy.com/20200728/20369_e1b41301/1000k/hls/2788bc741cc"
3 with open('c:/film/活着2020.mp4', "ab") as mp4:
4 for segment in range(0,1460):
5 if segment<10:
6 segment = "00000"+str(segment)
7 elif segment<100:
8 segment = "0000" + str(segment)
9 elif segment<1000:
10 segment = "000" + str(segment)
11 else:
12 segment = "00" + str(segment)
13 print(url+str(segment)+".ts")
14 rs = requests.get(url+str(segment)+".ts", stream=True)
15 for chunk in rs.iter_content(chunk_size=1024 * 1024):
16 if chunk:
17 mp4.write(chunk)
上面这个列子是下载的人人视频的电影【活着2020】,还有1905电影网也可以使用这种方式下载。
以上就是python下载电影的2种方式了,你学废了吗????
-------------------------------美丽的分割线-----------------------
对于vip才能看的电影,如果想下载,需要携带cookie信息,这时候我们用you-get的时候
需要带上cookier信息:
首先先在浏览器里面登录vip账号,这时候我们的浏览器会将cookie信息写入本地浏览器文件,我的火狐cookie的路径如上。
然后再设置参数的时候使用:-c,cookies就可以下载vip电影了。