# How to get video using headless linux sdk bot?

**URL:** <https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212>\
**Category:** Meeting SDK\
**Tags:** raw-data\
**Created:** [February 5, 2024, 12:28pm UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212 "2024-02-05T12:28:48Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![emotioniq](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/emotioniq/32/62111_2.png) [@emotioniq](https://devforum.zoom.us/u/emotioniq)\
**Post date:** [February 5, 2024, 12:28pm UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/1 "2024-02-05T12:28:48Z")

</div>

I’m trying to get raw video data using Zoom Headless Linux SDK Bot and in CLI programm say to me :

✅ start raw recording  
✅ create raw video renderer  
✅ subscribe to raw video  
✅ subscribe to raw audio

and audio really start recording, but video don’t

I’m using next code in entry.sh:

```auto
run() {
  exec ./"$BUILD"/zoomsdk RawVideo -f meeting-video.yuv -d /out;
}

```

So, what I can do for getting raw video? And if you have solution for getting frames how I can go this?

---

<div class="post-metadata">

**Author:** ![amanda-recallai](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/amanda-recallai/32/44747_2.png) [@amanda-recallai](https://devforum.zoom.us/u/amanda-recallai)\
**Post date:** [February 6, 2024, 11:38pm UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/2 "2024-02-06T23:38:04Z")

</div>

@emotioniq, happy to help here.

The steps you’re taking sound correct at a high level. But if you’re not getting video, there must be an issue in the source code of your bot.

What we recommend is cross-check your implementation against the [Zoom Linux SDK reference code](https://github.com/zoom/meetingsdk-linux-raw-recording-sample/tree/main/demo) which shows you how to capture the raw video.

Another option is to use [Recall.ai](https://www.recall.ai/). It’s a simple 3rd party API that lets you use meeting bots to get raw audio/video from meetings without you needing to spend months to build, scale and maintain these bots.

Let me know if you have any questions!

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [February 7, 2024, 1:01am UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/3 "2024-02-07T01:01:17Z")

</div>

@emotioniq

You can cross reference this sample code for Linux as well

> **[GitHub - zoom/meetingsdk-linux-raw-recording-sample](https://github.com/zoom/meetingsdk-linux-raw-recording-sample)**
>
> Contribute to zoom/meetingsdk-linux-raw-recording-sample development by creating an account on GitHub.

---

<div class="post-metadata">

**Author:** ![emotioniq](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/emotioniq/32/62111_2.png) [@emotioniq](https://devforum.zoom.us/u/emotioniq)\
**Post date:** [February 11, 2024, 9:09am UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/4 "2024-02-11T09:09:44Z")

</div>

Good, I’m tryed using this sample, installed this on Ubuntu 22, but when I start

```auto
docker run msdk-5.17.5-on-ubuntu-compact

```

I have next text

```auto
root@server-mmiica:~/Bot/meetingsdk-linux-raw-recording-sample/demo# docker run msdk-5.17.5-on-ubuntu-compact
unix:path=/run/dbus/system_bus_socket,guid=adaefd96ff7dc8d3806adba965c88dc6
Adding user `root' to group `pulse-access' ...
Adding user root to group pulse-access
Done.
Adding user `root' to group `audio' ...
Adding user root to group audio
Done.
cp: target '/root/.config/pulse/' is not a directory
W: [pulseaudio] main.c: This program is not intended to be run as root (unless --system is specified).
19
mkdir: cannot create directory '/root/.config': File exists
getpath
self path: /app/demo/bin
Readfile success.
Reading..meeting_number: " ****************"
Reading..token: " ****************"
Reading..meeting_password: ""
Reading..recording_token: " ****************"
Reading..GetVideoRawData: "true"
Reading..GetAudioRawData: "false"
Reading..SendVideoRawData: "false"
Reading..SendAudioRawData: "false"
Meeting Number: ****************
Token: ****************
meeting_password: 
recording_token: ***********
GetVideoRawData before parsing is : true
GetVideoRawData: 1
GetAudioRawData before parsing is : false
GetAudioRawData: 0
SendVideoRawData before parsing is : false
SendVideoRawData: 0
SendAudioRawData before parsing is : false
SendAudioRawData: 0
directory of config file: /app/demo/bin/config.txt
Init meetingSdk:success
AuthService created.
AuthSDK:token extracted from config file ****************
AuthServiceEventListener added.

```

Bot don’t connecting to the meeting, maybe I do smth wrong?

---

<div class="post-metadata">

**Author:** ![emotioniq](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/emotioniq/32/62111_2.png) [@emotioniq](https://devforum.zoom.us/u/emotioniq)\
**Post date:** [February 12, 2024, 5:54pm UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/5 "2024-02-12T17:54:44Z")

</div>

@chunsiong.zoom what can I do with this?

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [February 13, 2024, 5:38am UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/6 "2024-02-13T05:38:33Z")

</div>

@emotioniq do you have a sample if the signature / token?  
I would recommend leaving the recording\_token as “” right now during testing.

---

<div class="post-metadata">

**Author:** ![emotioniq](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/emotioniq/32/62111_2.png) [@emotioniq](https://devforum.zoom.us/u/emotioniq)\
**Post date:** [February 13, 2024, 6:00am UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/7 "2024-02-13T06:00:45Z")

</div>

@chunsiong.zoom what is the “token” in config.txt?

```auto

meeting_number: "1234567890"
token: "xxxxxxxx.yyyyyyyyyyyyyyyyyy.zzzzzzzzzzzzzzzzz"
meeting_password: "123456"
recording_token: ""
GetVideoRawData: "true"
GetAudioRawData: "true"
SendVideoRawData: "false"
SendAudioRawData: "false"

```

I create Zoom App and get from zoom app sdk for linux, what is the correct token for this demo “Secret Token”? “Verification Token”?

---

<div class="post-metadata">

**Author:** ![chunsiong.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chunsiong.zoom/32/35488_2.png) [@chunsiong.zoom](https://devforum.zoom.us/u/chunsiong.zoom)\
**Post date:** [February 13, 2024, 6:06am UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/8 "2024-02-13T06:06:59Z")

</div>

@emotioniq ,

Zoom Apps actually refers to a legacy app, wanted to call this out to remove the ambiguity.

Could I confirm you are using this General App?

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/2/5/259b8bbea223b9a2bc62c78826e4d31f83bd400f.png)

If you are, on the top left, there is your Client ID and Client Secret, these are used to sign a SDK Auth Signature. You will use your SDK Auth Signature in config.txt’s token field

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/1/d/1dda93b4975735ab9c5c69b5ba590e80540c8698.png)

You will also need to turn on the toggle switch for Meeting SDK from the embed menu.

 ![image](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/7/4/7489db53ac09504e76be6a0775b971cdad50b387.png)

---

<div class="post-metadata">

**Author:** ![emotioniq](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/emotioniq/32/62111_2.png) [@emotioniq](https://devforum.zoom.us/u/emotioniq)\
**Post date:** [February 13, 2024, 6:46am UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/9 "2024-02-13T06:46:00Z")

</div>

@chunsiong.zoom SDK Auth Signature is it JWT token?

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [April 5, 2024, 5:32pm UTC](https://devforum.zoom.us/t/how-to-get-video-using-headless-linux-sdk-bot/103212/10 "2024-04-05T17:32:25Z")

</div>

@emotioniq,

> [@emotioniq](#):
>
> SDK Auth Signature is it JWT token?

Correct, the SDK authentication signature is a JWT token. For more details, please refer to our documentation on this topic:

> **[Meeting SDK Auth](https://developers.zoom.us/docs/meeting-sdk/auth/)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

> [@emotioniq](#):
>
> I’m trying to get raw video data using Zoom Headless Linux SDK Bot and in CLI programm say to me :

Please try the latest version of Sample App; a recent fix has been applied.

> <https://github.com/zoom/meetingsdk-headless-linux-sample/pull/18>
>
> Fixed issues where sometimes the raw video would subscribe but the file would no…t be written. Looks like the pointer to the delegate was not initialized. Added other fixes to make the usage of raw video clear
