# Detecting active speaker

**URL:** <https://devforum.zoom.us/t/detecting-active-speaker/5898>\
**Category:** API and Webhooks\
**Created:** [September 13, 2019, 11:15am UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898 "2019-09-13T11:15:42Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![jimig](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jimig/32/1815_2.png) [@jimig](https://devforum.zoom.us/u/jimig)\
**Post date:** [September 13, 2019, 11:15am UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/1 "2019-09-13T11:15:42Z")

</div>

How can we determine who is speaking when via the API?

I am aware of a TIMELINE recording file but cannot see any documentation on it: is it only for cloud recordings? Which format is the file? Does it only get created if transcription is enabled?

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 13, 2019, 5:15pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/2 "2019-09-13T17:15:36Z")

</div>

Hey @jimig,

Can you provide more details like if you are trying to detect the speaker during the meeting, or after the meeting with the recordings / transcripts?

You can detect who is speaking in real time via our [SDKs](https://marketplace.zoom.us/docs/sdk/native-sdks/preface/introducing-zoom-sdk).

For example,  
[https://zoom.github.io/zoom-sdk-android/us/zoom/sdk/InMeetingVideoController.html#activeVideoUserID--](https://zoom.github.io/zoom-sdk-android/us/zoom/sdk/InMeetingVideoController.html#activeVideoUserID--)

[https://zoom.github.io/zoom-sdk-android/us/zoom/sdk/InMeetingServiceListener.html#onActiveSpeakerVideoUserChanged-long-](https://zoom.github.io/zoom-sdk-android/us/zoom/sdk/InMeetingServiceListener.html#onActiveSpeakerVideoUserChanged-long-)

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![jimig](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jimig/32/1815_2.png) [@jimig](https://devforum.zoom.us/u/jimig)\
**Post date:** [September 13, 2019, 5:28pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/3 "2019-09-13T17:28:29Z")

</div>

Hi Tommy,

It could be during or after.

The users have the zoom app so how would those SDKs help?

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 13, 2019, 5:37pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/4 "2019-09-13T17:37:44Z")

</div>

Hey @jimig,

> [@jimig](#):
>
> The users have the zoom app so how would those SDKs help?

The SDKs would basically put “The Zoom App” inside your app, if you wanted to customize the experience and detect the active speaker in real time.

Do you mind sharing your use case so I can better understand what you want to accomplish?

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![jimig](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jimig/32/1815_2.png) [@jimig](https://devforum.zoom.us/u/jimig)\
**Post date:** [September 13, 2019, 5:53pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/5 "2019-09-13T17:53:36Z")

</div>

Our use case is performing analysis on the meetings.

We’d like to know which participants spoke and for how long.

Our customer would authenticate with our platform to grant access to read all meetings/recordings. I was hoping to find this kind of data via the rest api

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 13, 2019, 10:20pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/6 "2019-09-13T22:20:45Z")

</div>

Thanks for sharing your use case.

Unfortunately we do not have an endpoint to see reporting on which participants spoke and for how long.

> [@jimig](#):
>
> is it only for cloud recordings? Which format is the file? Does it only get created if transcription is enabled?

Yes it is only for Cloud Recordings. The TIMELINE file is a .json file. We are currently working on making improvements to match the TIMELINE file with the audio\_transcript.vtt file so that you can accomplish this.

Jira: ZOOM-68283

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![jimig](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/jimig/32/1815_2.png) [@jimig](https://devforum.zoom.us/u/jimig)\
**Post date:** [September 16, 2019, 8:28am UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/7 "2019-09-16T08:28:20Z")

</div>

Thanks Tommy, how do I go about creating a timeline file?

Currently I can only see audio files when doing a cloud recording

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [September 16, 2019, 7:25pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/8 "2019-09-16T19:25:38Z")

</div>

Hey @jimig,

The timeline file will be included in the [GET /users/{userId}/recordings](https://marketplace.zoom.us/docs/api-reference/zoom-api/cloud-recording/recordingslist) response body.

For example,

```json
{
    "meeting_id": "VCadzFUxSwezKq4g+u+V5w==",
    "recording_start": "2019-09-16T19:09:13Z",
    "recording_end": "2019-09-16T19:09:58Z",
    "file_type": "TIMELINE",
    "download_url": "https://api.zoom.us/recording/download/9a1cd1ab-c788-4697-9579-e224f1dc8600"
}

```

Here are the cloud recording settings I have:

 ![38%20PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/6/655171ec8937b4d2b607d76d10cbecbb156b5487.png)

Let me know if you have any other questions!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![aleksandr.borovsky](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/aleksandr.borovsky/32/1558_2.png) [@aleksandr.borovsky](https://devforum.zoom.us/u/aleksandr.borovsky)\
**Post date:** [April 27, 2020, 12:51pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/9 "2020-04-27T12:51:51Z")

</div>

Will one able to detect active speaker (useId) with websdk@1.8.0?  
There is [inMeetingServiceListener](https://zoom.github.io/sample-app-web/ZoomMtg.html#inMeetingServiceListener), but will it be an `onActiveVideoUseID` event available there?

Also, i’ve asked to improve the documentation to clarify the list of available events: [Web SDK ZoomMtg inMeetingServiceListener](https://devforum.zoom.us/t/web-sdk-zoommtg-inmeetingservicelistener/7679/26)

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [April 30, 2020, 4:30pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/10 "2020-04-30T16:30:48Z")

</div>

Hey @aleksandr.borovsky,

Thanks for your feedback, once 1.8.0 is released there will be a list of available events.

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![DeveloperBot](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/developerbot/32/12632_2.png) [@DeveloperBot](https://devforum.zoom.us/u/DeveloperBot)\
**Post date:** [August 21, 2020, 8:58pm UTC](https://devforum.zoom.us/t/detecting-active-speaker/5898/11 "2020-08-21T20:58:54Z")

</div>


