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()

核心要点:

  1. itchat.msg_register(itchat.content.VIDEO)注册视频消息处理器
  2. msg['Text'](msg['FileName'])获取视频下载链接
  3. requests流式下载大文件避免内存问题
  4. 建议添加文件去重和格式验证

一句话建议: 记得先测试小视频,大文件下载要加异常处理和进度显示。


Connection Aborted error(10054)

回到顶部