← Back to Skills Marketplace
yangmiok

feishu-video

by yangmiok · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
258
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install feishu-video
Description
Send voice/audio messages to Feishu (Lark) users. Converts audio files to OPUS format and sends as voice message, not file attachment. create by Alex
README (SKILL.md)

Feishu Audio Message Skill

This skill enables sending voice messages (not file attachments) to Feishu/Lark users via the Open API.

When to Use

Use this skill when:

  • User wants to send a voice message to Feishu
  • User wants to convert and send audio (MP3, WAV, etc.) as a voice message
  • User specifies they want audio message, not file upload

Requirements

  1. ffmpeg - Required for audio conversion to OPUS format
  2. Node.js 18+ - For running the send script
  3. Feishu App Credentials:
    • App ID
    • App Secret
    • Target user's Open ID

How It Works

  1. Convert audio to OPUS - Feishu requires audio in OPUS format
  2. Upload audio file - Upload to Feishu with file_type: opus and duration
  3. Send audio message - Send with msg_type: audio

Usage

Step 1: Convert Audio to OPUS

ffmpeg -i input.mp3 -c:a libopus -b:a 32k output.opus

Step 2: Get Audio Duration

ffprobe -v quiet -show_format -print_format json input.mp3
# Look for "duration" field in output

Step 3: Run the Script

node scripts/send-voice.mjs \
  --app-id "cli_xxx" \
  --app-secret "xxx" \
  --user-id "ou_xxx" \
  --audio-file "audio.opus" \
  --duration 3480

Or use environment variables:

export FEISHU_APP_ID="cli_xxx"
export FEISHU_APP_SECRET="xxx"
node scripts/send-voice.mjs --user-id "ou_xxx" --audio-file "audio.opus" --duration 3480

API Details

1. Get Tenant Access Token

POST https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal

2. Upload Audio File

POST https://open.feishu.cn/open-apis/im/v1/files
Content-Type: multipart/form-data

file_type: opus
file_name: voice.opus
duration: \x3Cmilliseconds>
file: \x3Cbinary>

3. Send Audio Message

POST https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id

{
  "receive_id": "ou_xxx",
  "msg_type": "audio",
  "content": "{\"file_key\":\"file_v3_xxx\"}"
}

Important Notes

  • Audio MUST be OPUS format - MP3/WAV will fail
  • Duration is in milliseconds
  • The app must have Bot capability enabled
  • Rate limit: 5 QPS per user/chat

Example Output

🎤 开始发送语音消息到飞书...

📁 音频文件: /path/to/voice.opus
⏱️  时长: 3480ms

✅ 获取 Tenant Access Token 成功
✅ 上传语音文件成功, file_key: file_v3_00uh_xxx
✅ 发送语音消息成功!
消息 ID: om_x100b5731827e6ca4b10d48c15dfa3ab

🎉 完成!

Troubleshooting

Error Solution
file type not support Convert to OPUS format
duration is required Add duration parameter
permission denied Check app has messaging scope
user not found Verify user Open ID
Usage Guidance
This skill's code correctly implements converting and sending audio/video to Feishu, but the registry entry is inconsistent: it does not declare required binaries (ffmpeg/ffprobe) or the Feishu credentials the scripts need. Before installing or running: (1) confirm you trust the author and repository source; (2) only provide FEISHU_APP_ID and FEISHU_APP_SECRET to this code if the app has the minimal required scopes (messaging/file upload) and you understand the app's privileges; (3) run the scripts in an isolated environment (container) if you want to limit risk; (4) verify ffmpeg/ffprobe are from trusted packages; and (5) ask the publisher to correct the registry metadata to list required binaries and required environment variables so automated review and permission prompts are accurate.
Capability Analysis
Type: OpenClaw Skill Name: feishu-video Version: 1.0.0 The skill bundle provides legitimate functionality for converting and sending audio and video messages to Feishu (Lark) via its Open API. It utilizes standard tools like ffmpeg and ffprobe for media processing and follows official Feishu API patterns for authentication and file uploading. No evidence of data exfiltration, malicious execution, or prompt injection was found; the scripts (scripts/send-voice.mjs, scripts/send-video.mjs, and scripts/convert-audio.sh) correctly handle parameters and use secure process execution methods (execFileSync) to mitigate injection risks.
Capability Assessment
Purpose & Capability
The scripts (send-voice.mjs, send-video.mjs, convert-audio.sh) and SKILL.md all implement sending OPUS audio and MP4 video to Feishu using the Open API — this matches the skill's described purpose. However the registry metadata claims no required binaries or environment variables while SKILL.md and the scripts explicitly require ffmpeg/ffprobe and Feishu App credentials (app_id/app_secret and target user/chat ids). The omission in the declared requirements is an incoherence.
Instruction Scope
SKILL.md instructs the agent to convert audio to OPUS, get duration, obtain a tenant access token from Feishu, upload the file, and send the audio/video message. The instructions reference only local audio/video files and the Feishu Open API endpoints; they do not ask for unrelated system files or external endpoints outside Feishu. The runtime behavior described is within the stated purpose.
Install Mechanism
There is no install spec (instruction-only registry entry) and the repository contains CLI scripts. Nothing in the manifest downloads or executes code from remote URLs or adds persistent system-wide hooks. Risk from installation is low; however the skill relies on system binaries (ffmpeg, ffprobe) that must be present but are not declared in registry metadata.
Credentials
The scripts require Feishu App credentials (app_id and app_secret) supplied either as CLI arguments or environment variables (FEISHU_APP_ID, FEISHU_APP_SECRET). The registry metadata listed no required env vars or primary credential. Requesting these credentials is proportional to the skill's purpose, but the metadata omission is a red flag (it prevents automated gating and review of requested secrets). No unrelated secrets or extra cloud credentials are requested by the code.
Persistence & Privilege
The skill does not request 'always: true' or any persistent elevated privilege. It doesn't modify other skills or system-wide configuration. Autonomous invocation is enabled by default but that is normal; no additional persistence was observed.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install feishu-video
  3. After installation, invoke the skill by name or use /feishu-video
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of Feishu Audio Message skill. - Send voice/audio messages to Feishu (Lark) users as actual voice messages, not file attachments. - Automatically converts MP3, WAV, and other audio to OPUS format (requires ffmpeg). - Requires Feishu app credentials and target user's Open ID. - Includes step-by-step instructions for converting audio and sending messages. - Provides troubleshooting tips for common errors.
Metadata
Slug feishu-video
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is feishu-video?

Send voice/audio messages to Feishu (Lark) users. Converts audio files to OPUS format and sends as voice message, not file attachment. create by Alex. It is an AI Agent Skill for Claude Code / OpenClaw, with 258 downloads so far.

How do I install feishu-video?

Run "/install feishu-video" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is feishu-video free?

Yes, feishu-video is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does feishu-video support?

feishu-video is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created feishu-video?

It is built and maintained by yangmiok (@yangmiok); the current version is v1.0.0.

💬 Comments