Python中如何使用itchat保存短视频?
只有短视频无法保存,显示 0KB,什么原因,要怎么设置?
Python中如何使用itchat保存短视频?
2 回复
import itchat
import requests
import os
import time
# 登录微信
itchat.auto_login(hotReload=True) # hotReload=True可以避免重复扫码
def save_short_video(msg):
"""
保存接收到的短视频
"""
# 只处理视频消息
if msg['Type'] != 'Video':
return
# 获取视频下载链接
video_url = msg['Text'](msg['FileName'])
# 创建保存目录
save_dir = 'wechat_videos'
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 生成文件名(使用时间戳避免重名)
timestamp = int(time.time())
filename = f"{save_dir}/video_{timestamp}.mp4"
# 下载视频
try:
print(f"正在下载视频: {filename}")
response = requests.get(video_url, stream=True)
with open(filename, 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
print(f"视频保存成功: {filename}")
# 回复发送者(可选)
msg.user.send(f"已保存你的视频到: {filename}")
except Exception as e:
print(f"下载失败: {str(e)}")
# 注册消息处理函数
@itchat.msg_register(itchat.content.VIDEO)
def video_handler(msg):
save_short_video(msg)
return None
# 保持运行
print("开始监控视频消息...")
itchat.run()
核心要点:
- 用
itchat.msg_register(itchat.content.VIDEO)注册视频消息处理器 msg['Text'](msg['FileName'])获取视频下载链接- 用
requests流式下载大文件避免内存问题 - 建议添加文件去重和格式验证
一句话建议: 记得先测试小视频,大文件下载要加异常处理和进度显示。
Connection Aborted error(10054)

