๐ŸŽ Get the FREE AI Skills Starter Guide โ€” Subscribe โ†’
BytesAgainBytesAgain
๐Ÿฆ€ ClawHub

feishu-video

by @yangmiok

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

Versionv1.0.0
Downloads640
Comments1
TERMINAL
clawhub install feishu-video

๐Ÿ“– About This Skill


name: Feishu Audio Message 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 dependencies: ffmpeg

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: file:

    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 |

    โšก When to Use

    TriggerAction
    - 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

    ๐Ÿ’ก Examples

    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
    

    ๐Ÿ“‹ Tips & Best Practices

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