SkillHub

sendfiles-to-feishu

v1.0.4

发送任意本地文件到飞书,自动处理大文件。视频/音频按 20MB 分段(不重新编码),其他文件压缩为 ZIP。支持大文件自动处理。

Sourced from ClawHub, Authored by jingrongx

Installation

Please help me install the skill `sendfiles-to-feishu` from SkillHub official store. npx skills add jingrongx/sendfiles-to-feishu

Feishu Send File Skill

发送任意本地文件到飞书,自动处理大文件和特殊格式。

功能

  • 自动检测文件类型(视频、音频、其他)
  • 视频/音频:保持原质量,按 20MB 分段
  • 其他文件:压缩为 ZIP,如仍超限则分段 ZIP
  • 支持任意文件类型

用法

/sendfiles-to-feishu <文件路径> <接收者ID> [ID类型]

参数: - 文件路径:本地文件(绝对或相对路径) - 接收者ID:open_id (ou_xxx) 或 union_id (on_xxx) - ID类型:可选,open_idunion_id(默认自动识别)

示例:

/sendfiles-to-feishu "C:datareport.pdf" "ou_05eb1e0dcc31159ab77432d1d9adf7a3"
/sendfiles-to-feishu "video.mp4" "on_0144493a63e92550a0602e2b632ff597" "union_id"

处理逻辑

文件类型 处理方式
视频(含音频流) 按时间切分,每段 < 20MB,不重新编码
视频(无音频) 先合并音频(如有分离的音频文件),再切分
纯音频 按时间切分
其他(文档、图片、压缩包等) 压缩为 ZIP,如仍 > 20MB 则分段 ZIP

权限要求

飞书应用需: - im:message.p2p_msgim:message.group_msg - drive:file:upload - 机器人能力已开启

配置

方式一:.env 文件(推荐)

在技能目录下创建 .env 文件:

# 飞书应用配置
FEISHU_APP_ID=your_app_id_here
FEISHU_APP_SECRET=your_app_secret_here

可复制 .env.example.env 并填入实际值。

方式二:环境变量

设置系统环境变量: - FEISHU_APP_ID - FEISHU_APP_SECRET

优先级

系统环境变量 > .env 文件

环境检测

脚本启动时自动检测依赖:

类型 依赖 处理方式
Python requests 自动安装
系统 ffmpeg, ffprobe 提示安装方法

依赖

  • Python 3.8+
  • requests
  • ffmpeg

注意事项

  • 视频分割使用 ffmpeg -c copy,无画质损失
  • 音频视频分离检测可能不准确,如果遇到问题请手动合并
  • ZIP 分割是将同一文件重复打包,接收后需解压并合并(但通常单文件压缩后不会超限)
  • 发送前确保与接收者已有会话(在飞书中互发过消息)

故障排除

  • 发送失败:检查权限和 token
  • 文件过大:自动分段,如果某段仍超限(罕见),手动调整 MAX_FILE_SIZE_MB 常量
  • 音视频分离未合并:确保同目录下有匹配的音频/视频文件(同名)