最新视频号下载的方法因为涉及到抓包,以及对链接的修改操作,抓包还好,修改有的人觉得很麻烦,刚好懂一点python,再讯飞星火AI的帮助下完成了以下代码,感谢星火AI~

脚本的总体思路就是把20302换成20304,这一步直接影响到视频下载的最终结果,然后是普通视频和高清视频之间的不同,通过保留url中的&encfilekey和&token,删掉其它的&xxx来实现。

如果想直接下载脚本可以公众号下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import requests
from urllib.parse import parse_qs, urlencode, urlparse, urlunparse
from datetime import datetime
print('########## _ ##########')
print('欢迎关注微信公众号:软件仙声')
print('免费去水印短视频下载小程序:我要本地看\n')
print('PS:')
print('此软件不能单独使用,请先使用其他抓包软件获取视频号链接')
print('将抓包到链接链接粘贴到此,即可将视频下载到本程序所在目录\n ')
while True:
url = input('请输入链接(输入 q 退出):')
if url == 'q':
break
else:
###先通过替换,把复杂的链接转成高清视频的链接
parsed_url = urlparse(url)
query = parse_qs(parsed_url.query)
encfilekey = query.get('encfilekey', [
''])[0]
token = query.get('token', [
''])[0]
new_query = {
'encfilekey': encfilekey,
'token': token}
new_query_str = urlencode(new_query)
new_parsed_url = parsed_url._replace(query=new_query_str)
new_url = urlunparse(new_parsed_url)
###再把20302替换成20304,这一步为重中之重
new_url = new_url.replace('20302', '20304')
response = requests.get(new_url, stream=True, verify=True)
###以日期时间为名称创建文件
current_time = datetime.now().strftime('%Y%m%d%H%M%S')
filename = current_time + '.MP4'
print('\n***文件名***:' + filename + '\n')
###把视频写入文件
with open(filename, 'wb') as file:
for chunk in response.iter_content(chunk_size=8192):
if chunk:
file.write(chunk)
else:
print('哎哟,下载出错了')
file.close()