# Problems running the \`linux\_raw\_recording\_sample\`

**URL:** <https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149>\
**Category:** Meeting SDK\
**Created:** [July 22, 2024, 7:42pm UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149 "2024-07-22T19:42:16Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![thomas](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/thomas/32/49084_2.png) [@thomas](https://devforum.zoom.us/u/thomas)\
**Post date:** [July 22, 2024, 7:42pm UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149/1 "2024-07-22T19:42:16Z")

</div>

**Meeting SDK Type and Version**  
Linux - v6.1.1.493 (latest at time of writing)

**Description**  
I am trying out the [Linux headless recording/playing example](https://github.com/zoom/meetingsdk-linux-raw-recording-sample) as I am trying to build an app to run arbitrary video (audio not necessary) through Zoom meetings. I build and compile the project successfully and can run it, but I get some error messages (see below) and nothing happens afterwards (note that the program doesn’t crash or exit). I have the config.txt values such that the program tries to join a meeting in progress and only the `SendVideoRawData` option is enabled:

```auto
token: REDACTED
meeting_number: REDACTED
meeting_password: REDACTED
GetVideoRawData: "false"
GetAudioRawData: "false"
SendVideoRawData: "true"
SendAudioRawData: "false"

```

I am running this on Debian GNU/Linux 11 (bullseye). The only lines that I changed in the actual .cpp are in meeting\_sdk\_demo.cpp and that was only the video filename and commenting out the following lines (they were not compiling and I don’t need recording, so I figured I would just cut them 🙂 ):

```auto
	// Set the event listener for recording privilege status
	//m_pRecordController = m_pMeetingService->GetMeetingRecordingController();
	//m_pRecordController->SetEvent(new MeetingRecordingCtrlEventListener(&onIsGivenRecordingPermission));

```

Is this an issue with my dependencies, config, or something else?

**Error?**

```auto
tom@data-zoom-testing-tom:~/meetingsdk-linux-raw-recording-sample/demo/bin$ ./meetingSDKDemo
getpath
self path: /home/tom/meetingsdk-linux-raw-recording-sample/demo/bin
Readfile success.
Reading..token: REDACTED
Reading..meeting_number: REDACTED
Reading..meeting_password: REDACTED
Reading..GetVideoRawData: "false"
Reading..GetAudioRawData: "false"
Reading..SendVideoRawData: "true"
Reading..SendAudioRawData: "false"
Meeting Number: REDACTED
Token: REDACTED
meeting_password: REDACTED
GetVideoRawData before parsing is : false
GetVideoRawData: 0
GetAudioRawData before parsing is : false
GetAudioRawData: 0
SendVideoRawData before parsing is : true
SendVideoRawData: 1
SendAudioRawData before parsing is : false
SendAudioRawData: 0
directory of config file: /home/tom/meetingsdk-linux-raw-recording-sample/demo/bin/config.txt
Init meetingSdk:success
AuthService created.
AuthServiceEventListener added.
AuthSDK:token extracted from config file REDACTED
ALSA lib control.c:1471:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1471:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1471:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1471:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib control.c:1471:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM
ALSA lib control.c:1471:(snd_ctl_open_noupdate) Invalid CTL
ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM

```

---

<div class="post-metadata">

**Author:** ![thomas](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/thomas/32/49084_2.png) [@thomas](https://devforum.zoom.us/u/thomas)\
**Post date:** [July 22, 2024, 7:58pm UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149/2 "2024-07-22T19:58:58Z")

</div>

Apologies for double-posting, but I’ve solved (part of) my own problem! I created a default ~/.config/zoomus.conf and that suppressed the errors that I was seeing. However, the program still hangs and doesn’t join the meeting. It gets to the line `AuthSDK:token extracted from config file REDACTED` and nothing else happens. Could this be a problem with my jwt token?

EDIT: I checked on the actual result of the call to `SDKAuth(param)` with:

```auto
if (ZOOM_SDK_NAMESPACE::SDKERR_SUCCESS != sdkErrorResult){
	std::cerr << "AuthSDK:error " << std::endl;
    std::cerr << sdkErrorResult << std::endl;
} else {
	std::cerr << "AuthSDK:send success, awaiting callback " << std::endl;
}

```

Which gets me: `AuthSDK:error 15` which corresponds to `SDKERR_INTERNAL_ERROR ` according to the SDK docs. To me, this looks like a problem with some initialization or maybe how `param` is created and not with the JWT itself (unless there is some parsing that it isn’t getting past inside the SDK). Any ideas? @chunsiong.zoom I noticed you maintained the example repo so you might have an idea. Thank you so much in advance 🙏

---

<div class="post-metadata">

**Author:** ![joezoomdev](https://avatars.discourse-cdn.com/v4/letter/j/47e85d/32.png) [@joezoomdev](https://devforum.zoom.us/u/joezoomdev)\
**Post date:** [July 23, 2024, 12:06am UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149/3 "2024-07-23T00:06:14Z")

</div>

How are you making the JWT token? It could be that the JWT is not being parsed correctly because it doesn’t have the right format.

---

<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:** [July 23, 2024, 12:29am UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149/4 "2024-07-23T00:29:29Z")

</div>

@thomas can you share a sample of your JWT token?

---

<div class="post-metadata">

**Author:** ![thomas](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/thomas/32/49084_2.png) [@thomas](https://devforum.zoom.us/u/thomas)\
**Post date:** [July 23, 2024, 1:22pm UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149/5 "2024-07-23T13:22:28Z")

</div>

Here is a token that I generated earlier: `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiI0aGVFdHRYU1JNNllVQl8zT0R6YW5BIiwiZXhwIjoxNzIxNzY4NDM1LCJpYXQiOjE3MjE2ODIyMjV9.p-jyo4u_kHHezGgRHJysc6LurUIiSo5vPQxn6qxsspM`. This was generated with the header: `{ "alg": "HS256", "typ": "JWT" }` and payload:

```auto
{
"appKey": "CLIENT_ID",
"role": 0,
"exp": 1721768435,
"iat": 1721682225
}

```

and was signed with my client secret.

EDIT: 🤦‍♂️ I double checked the reqs for the JWT and saw I was missing `tokenExp`. Apologies and thanks for your responses.

---

<div class="post-metadata">

**Author:** ![joezoomdev](https://avatars.discourse-cdn.com/v4/letter/j/47e85d/32.png) [@joezoomdev](https://devforum.zoom.us/u/joezoomdev)\
**Post date:** [July 23, 2024, 5:56pm UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149/6 "2024-07-23T17:56:38Z")

</div>

Yes. Also, if the problem persists, do not include the role parameter.

---

<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:** [July 24, 2024, 3:27am UTC](https://devforum.zoom.us/t/problems-running-the-linux-raw-recording-sample/114149/7 "2024-07-24T03:27:37Z")

</div>

Closed on July 24, 2024, 3:27am UTC


