Skip to content
Business
Skill

/linux

Zoom Meeting SDK for Linux - C++ headless meeting bots with raw audio/video access, transcription, recording, and AI integration for server-side automation

From plugin
knowledge-work-plugins
35k200 skills5 agents15 commands40 MCP

Claude Code

$ npx -y skills add anthropics/knowledge-work-plugins --skill linux --agent claude-code

SKILL.md

linux.SKILL.md
name: meeting-sdk/linux
description: "Zoom Meeting SDK for Linux - C++ headless meeting bots with raw audio/video access, transcription, recording, and AI integration for server-side automation"
user-invocable: false
triggers:
  - "linux meeting bot"
  - "headless zoom bot"
  - "meeting sdk linux"
  - "zoom raw recording linux"
  - "meeting transcription bot"
  - "zoom docker bot"
  - "pulseaudio zoom"
  - "meeting sdk raw data"

Zoom Meeting SDK - Linux Development

Expert guidance for building headless meeting bots with the Zoom Meeting SDK on Linux. This SDK enables server-side meeting participation, raw media capture, transcription, and AI-powered meeting automation.

How to Build a Meeting Bot That Automatically Joins and Records

Use this skill when the requirement is:

  • visible bot joins a real Zoom meeting
  • the bot records raw media itself
  • or the bot triggers a Zoom-managed cloud-recording workflow after join

Skill chain:

  • primary: `meeting-sdk/linux`
  • add `zoom-rest-api` for OBF/ZAK lookup, scheduling, or cloud-recording settings
  • add `zoom-webhooks` when post-meeting cloud recording retrieval is required

Minimal raw-recording flow:

JoinParam join_param;
join_param.userType = SDK_UT_WITHOUT_LOGIN;
auto& params = join_param.param.withoutloginuserJoin;
params.meetingNumber = meeting_number;
params.userName = "Recording Bot";
params.psw = meeting_password.c_str();
params.app_privilege_token = obf_token.c_str();

SDKError join_err = meeting_service->Join(join_param);
if (join_err != SDKERR_SUCCESS) {
    throw std::runtime_error("join_failed");
}

// In MEETING_STATUS_INMEETING callback:
auto* record_ctrl = meeting_service->GetMeetingRecordingController();
if (!record_ctrl) {
    throw std::runtime_error("recording_controller_unavailable");
}

if (record_ctrl->CanStartRawRecording() != SDKERR_SUCCESS) {
    throw std::runtime_error("raw_recording_not_permitted");
}

SDKError record_err = record_ctrl->StartRawRecording();
if (record_err != SDKERR_SUCCESS) {
    throw std::runtime_error("start_raw_recording_failed");
}

GetAudioRawdataHelper()->subscribe(new MyAudioDelegate());

Use **raw recording** when the bot must own PCM/YUV media or feed an AI pipeline directly. Use **cloud recording + webhooks** when the requirement is Zoom-managed MP4/M4A/transcript assets after the meeting.

**Official Documentation**: https://developers.zoom.us/docs/meeting-sdk/linux/ **API Reference**: https://marketplacefront.zoom.us/sdk/meeting/linux/ **Sample Repository (Raw Recording)**: https://github.com/zoom/meetingsdk-linux-raw-recording-sample **Sample Repository (Headless)**: https://github.com/zoom/meetingsdk-headless-linux-sample

Quick Links

**New to Meeting SDK Linux? Follow this path:**

1. **[linux.md](linux.md)** - Quick start guide with complete workflow 2. **[concepts/high-level-scenarios.md](concepts/high-level-scenarios.md)** - Production bot architectures 3. **[meeting-sdk-bot.md](meeting-sdk-bot.md)** - Resilient bot with retry logic 4. **[references/linux-reference.md](references/linux-reference.md)** - Dependencies, Docker, CMake

**Common Use Cases:**

  • **Transcription Bot** → [high-level-scenarios.md#scenario-1-transcription-bot](concepts/high-level-scenarios.md)
  • **Recording Bot** → [high-level-scenarios.md#scenario-2-recording-bot](concepts/high-level-scenarios.md)
  • **AI Meeting Assistant** → [high-level-scenarios.md#scenario-3-ai-meeting-assistant](concepts/high-level-scenarios.md)
  • **Quality Monitoring** → [high-level-scenarios.md#scenario-4-monitoring-quality-bot](concepts/high-level-scenarios.md)
  • **Auto-Join + Recording Bot** → [meeting-sdk-bot.md](meeting-sdk-bot.md) for raw recording orchestration, retry, and cloud-recording handoff

**Having issues?**

  • Docker audio issues → [references/linux-reference.md#pulseaudio-setup](references/linux-reference.md)
  • Raw recording permission denied → [meeting-sdk-bot.md#raw-recording-permission-denied](meeting-sdk-bot.md)
  • Build errors → [references/linux-reference.md#troubleshooting](references/linux-reference.md)

Routing Rule for Bots

If the user asks to build a bot that **automatically joins a Zoom meeting and records it**, start with [meeting-sdk-bot.md](meeting-sdk-bot.md).

  • Use **Meeting SDK Linux** for the visible participant, join flow, and raw recording control.
  • Chain **zoom-rest-api** when the bot must fetch OBF/ZAK tokens, schedule meetings, or enable account-side recording settings.
  • Chain **zoom-webhooks** when the requirement is Zoom cloud recording retrieval after meeting end.

SDK Overview

The Zoom Meeting SDK for Linux is a **C++ library optimized for headless server environments**:

  • **Headless Operation**: No GUI required, perfect for Docker/cloud
  • **Raw Data Access**: YUV420 video, PCM audio at 32kHz
  • **GLib Event Loop**: Async event handling for callbacks
  • **Docker-Ready**: Pre-configured Dockerfiles for CentOS/Ubuntu
  • **PulseAudio Integration**: Virtual audio devices for headless environments

Key Differences from Video SDK

| Feature | Meeting SDK (Linux) | Video SDK | |---------|-------------------|-----------| | **Primary Use** | Join existing meetings as bot | Host custom video sessions | | **Visibility** | Visible participant | Session participant | | **UI** | Headless (no UI) | Optional custom UI | | **Authentication** | JWT + OBF/ZAK for external meetings | JWT only | | **Recording Control** | `StartRawRecording()` required | Direct raw data access | | **Platform** | Linux only | Windows, macOS, iOS, Android |

Prerequisites

System Requirements

  • **OS**: Ubuntu 22+, CentOS 8/9, Oracle Linux 8
  • **Architecture**: x86_64
  • **Compiler**: gcc/g++ with C++11 support
  • **Build Tools**: cmake 3.16+

Development Dependencies

# Ubuntu
apt-get install -y build-essential cmake \
    libx11-xcb1 libxcb-xfixes0 libxcb-shape0 libxcb-shm0 \
    libxcb-randr0 libxcb-image0 libxcb-keysyms1 libxcb-xtest0 \
    libglib2.0-dev libcur
Read more
@anthropics-2
Ships withknowledge-work-plugins

Plugins that turn Claude into a specialist for your role, team, and company. Built for Claude Cowork, also compatible with Claude Code.

35k200 skills5 agents40 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
35.3k
Star history of anthropics/knowledge-work-plugins on GitHub, a chart by star-history.com

Other skills on knowledge-work-plugins.

More skills from other plugins.

opc-asset-ops

opc-asset-ops

Turn repeatable outputs of a one-person company into compounding assets. Use when Codex needs to explain asset-compounding…

@easychen@easychenInstall Skill
dbs

dbs

dontbesilent 商业工具箱的技能调度台,根据当前问题和反馈选择下一步,在对话中直接执行、澄清、组合或对照尝试 Skill。用户不知道从哪里开始、需要调整处理方法、第一次使用…

dbs3d11k
@dontbesilent2025@dontbesilent2025Install Skill
money

money

Main entry point for the Show Me The Money business automation suite. Dual mode: pre-task routing (which skill fits your problem)…

@iamzifei@iamzifeiInstall Skill

Questions about linux.

Which coding agents can use linux?
linux installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.