小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

背景

上次分享《小鹅通视频怎么下载?用python实现小鹅通视频下载(一)》后,引来了很多人咨询小鹅通视频怎么下载的问题。

其实咨询的人大多是不懂python语言的人,也有一部分人压根就不会编程,对与压根就不会编程的人来说我也无能为力,毕竟程序就摆在了哪里,找到视频连接地址执行程序就可以下载了;

对于会python的人来说也在咨询一个问题,那就是视频的url地址怎么找出来,毕竟小鹅通的视频无法通过浏览器进行浏览访问,浏览器的调试模式也就用不上了,针对这个问题还是比较好解决的,今天就给大家推荐一款python的中间人代理模块mitmproxy,大家看我如何使用mitmproxy模块获取小鹅通视频连接地址的,结合上期的《小鹅通视频怎么下载?用python实现小鹅通视频下载(一)》达到视频轻松下载的目的

mitmproxy

mitmproxy是什么我这里就不具体说了,不知道了赶紧百度吧

1、创建python环境

我这里的python环境是3.8.0版本 创建一个文件夹xet_down 进入文件夹xet_down 使用命令窗口执行如下命令 注意windows与linux是又区别的,我这里就使用windows命令吧 创建python虚拟环境

python -m venv venv

激活python虚拟环境

# powershell
.\venv\Scripts\Activate.ps1 

# cmd
 .\venv\Scripts\activate.bat

正确进入后命令行前面会出现(venv) 小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

2、安装mitmproxy

pip install mitmporxy
pip install requests
pip install pycryptodome

3、编写mitmproxy插件脚本

mitmproxy 插件脚本是用来过滤小鹅通视频地址的,获取地址后就根据上篇文章脚本进行下载,话不多说直接上代码:

# 定义函数,flow代表经过中间人的所有数据
import time
from download_m3u8 import m3u8
def response(flow):
    url = flow.request.url
    if '.m3u8' in url:
        print(url)
        if m3u8(url):
            print('下载完成')

将上述文件保存到xet_down目录下xet.py download_m3u8是上篇中的脚本保存的文件名 download_m3u8.py,并将改文件保存到xet_down目录下即可

小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

4、启动mitmproxy并执行脚本

mitmdump -p 8000 -s .\xet.py

这里启动了代理端口为8000

5、查看电脑ip地址

ipconfig

小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

我电脑的ip地址是 192.168.0.116

6、手机下载证书

使用手机浏览器访问 https://mitm.it/ 小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

这里针对自己的手机系统下载相应的版本的证书,现在完后点击安装即可

7、手机设置下上网代理

手机一定要和电脑在同一个网络

简单来讲就是手机要甚至代理上网,安卓手机和苹果手机设置时不一样的,我这里简单说下我的安卓手机的

设置->wlan->选择连接的wifi名称

小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

8、通过手机打开小鹅通的视频

这个时候其实手机上的所有请求操作都会被拦截到,用我们写好的脚本就可以自动进行视频下载

总结

这里只是列举了小鹅通的视频,其实这程序不是针对小鹅通视频的,是针对所有请求.m3u8视频格式,除了小鹅通视频外,也可以下载其他平台上的.m3u8格式视频,那如果想下载其他格式的视频怎么办呢?很简单,写个mitmproxy的扩展脚本即可,类似与xet.py , 如果不会python语言,赶紧关注公众号何三笔记,回复 1 获取python快速入门资料。

何三笔记