360 Secure SkillHub
360 安全技能中心

Ali Feishu Sender

该 Skill 提供 Python 脚本与函数,把图片、音频、视频、纯文本、富文本和交互卡片发送到飞书用户或群组:音频自动转 opus 并附时长,视频以 media 类型上传并支持封面与 faststart,媒体需先上传取得 file_key/image_key。凭证默认预置在脚本中。

yuan-huicheng
yuan-huicheng
热度 37.24
最近更新 2026-05-11 17:37:55
分类:协作依赖:代码执行 / 读写文件 / 第三方 API应用场景:自动化脚本 / 工作流 / 文件转换

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add ali-feishu-sender
Metadata
name
ali-feishu-sender
description
Send multimedia content to Feishu (Lark) via API. Use when: (1) sending images, audio, video, rich text, or cards to Feishu users/groups, (2) uploading media to Feishu, (3) user says "send to feishu/lark", (4) posting MiniMax generated content (images, TTS, music, video) to Feishu. Supports: inline images, native voice bubbles (opus+duration), inline video player (mp4+duration+cover), rich text with embedded media, interactive cards.

Feishu Media Sender

Send multimedia messages to Feishu with proper formatting: inline images, voice bubbles, video players, rich text, and cards.

Dependencies

  • ffmpeg at D:\ffmpeg\bin\ffmpeg.exe (for audio conversion, video fix)
  • ffprobe at D:\ffmpeg\bin\ffprobe.exe (for duration detection)
  • Python 3.7+
  • Feishu app credentials (pre-configured in script defaults)

Quick Reference

Run the script at scripts/feishu_media.py:

import sys; sys.path.insert(0, r'<skill_dir>/scripts'); from feishu_media import *

Available Functions

Function Message Type Key Features
send_text(text) text Plain text
send_image(filepath) image Inline embed, auto-detect mime
send_audio(filepath) audio Voice bubble, auto→opus, auto duration
send_video(filepath, cover_image=None) media Inline player, faststart, auto duration
send_rich_text(title, elements) post Rich text with embedded media
send_card(title, elements) interactive Card with header color

All functions accept optional: open_id, token, app_id, app_secret.

Key Rules (learned from testing)

  1. Audio: Must be opus format, must include duration (ms). Auto-converts non-opus via ffmpeg.
  2. Video: Must upload as file_type=mp4, must include duration (ms). Script auto-applies -movflags +faststart.
  3. Video message type: Use msg_type=media (not video), content uses file_key + optional image_key for cover.
  4. Image in video: image_key is the cover thumbnail. Without it, video has no preview frame.
  5. Rich text media: Use {'tag': 'media', 'file_key': '...', 'image_key': '...'} as an independent paragraph.
  6. File upload types: opus (audio), mp4 (video), stream (generic file), pdf, doc, xls, ppt.

Example: Send MiniMax content to Feishu

# Image
send_image('minimax-output/kitten.png')

# TTS voice bubble (auto converts mp3→opus)
send_audio('minimax-output/greeting.mp3')

# Video with cover (auto faststart + duration)
send_video('minimax-output/kitten_video.mp4', cover_image='minimax-output/kitten.png')

# Rich text with video
send_rich_text('阿离的报告', [
    [{'tag': 'text', 'text': '一舞剑气动四方~'}],
    [{'tag': 'media', 'file_key': 'file_xxx', 'image_key': 'img_xxx'}],
])

CLI Usage

python scripts/feishu_media.py text "Hello"
python scripts/feishu_media.py image photo.png
python scripts/feishu_media.py audio greeting.mp3
python scripts/feishu_media.py video clip.mp4 --cover thumb.png