How to Access Zoom Audio Files in Pipedream and Incorporate them with a Transcription API?

This topic was automatically generated from Slack. You can find the original thread here.

Trying to get access to Zoom audio files directly so that I can send to another api for speech-to-text transcription. But Zoom protects audio/video files. (see below).

So question: how do I access the ACCESS_TOKEN within Pipedream and not sure how best to incorporate this with the second transcription LLM api that is simply asking for a source audio file url?

thanks.

Use the download_url property listed in the response to download the recording files. To access a passcode-protected cloud recording, send the user's OAuth access token as a Bearer token in the Authorization header.

Example: curl -H 'Authorization: Bearer ACCESS_TOKEN' https://{{base-domain}}/rec/archive/download/xyz

Hi , let me see if our support bot can help. @U05A7KLNALC can you take a look at Nat’s question in the original message in chat history?

Trying to get access to Zoom audio files directly so that I can send to another api for speech-to-text transcription. But Zoom protects audio/video files. (see below).

So question: how do I access the ACCESS_TOKEN within Pipedream and not sure how best to incorporate this with the second transcription LLM api that is simply asking for a source audio file url?

thanks.

Use the download_url property listed in the response to download the recording files. To access a passcode-protected cloud recording, send the user's OAuth access token as a Bearer token in the Authorization header.

Example: curl -H 'Authorization: Bearer <ACCESS_TOKEN>' https://{{base-domain}}/rec/archive/download/xyz

To access and use the Zoom OAuth access token within a Pipedream workflow for downloading passcode-protected cloud recordings and then sending them to another API for speech-to-text transcription, you can follow these steps. This involves two main parts: accessing the Zoom audio file and then sending it to the transcription API. First, let’s handle accessing the Zoom audio file using the OAuth access token: import { axios } from "@pipedream/platform"; export default defineComponent({ props: { zoom: { type: "app", app: "zoom", }, }, async run({ steps, $ }) { const downloadUrl = "YOUR_ZOOM_DOWNLOAD_URL"; // Replace with your actual download URL const response = await axios($, { url: downloadUrl, method: "GET", headers: { Authorization: `Bearer ${this.zoom.$auth.oauth_access_token}`, }, responseType: "arraybuffer", // Assuming the response is a binary file }); // Assuming you want to send the audio file directly to the transcription API // Replace 'TRANSCRIPTION_API_ENDPOINT' with your transcription API endpoint // and adjust headers and body as needed for the transcription API requirements const transcriptionResponse = await axios($, { url: "TRANSCRIPTION_API_ENDPOINT", method: "POST", headers: { "Content-Type": "audio/mpeg", // Adjust based on actual content type of your audio file // Include any other headers required by the transcription API }, data: response, // Sending the audio file directly }); return transcriptionResponse.data; // Adjust based on how you want to handle the transcription response }, }); In this example, we first use the Zoom OAuth access token to download the passcode-protected cloud recording from Zoom. We then send this audio file directly to a transcription API. Please adjust the downloadUrl, TRANSCRIPTION_API_ENDPOINT, and headers as per your requirements. Remember, the responseType: "arraybuffer" is used assuming the response is a binary file. If the transcription API expects the audio file in a different format or through a different method (e.g., a file URL instead of the binary content), you’ll need to adjust the request to the transcription API accordingly. Please replace "YOUR_ZOOM_DOWNLOAD_URL" with the actual download URL you obtain from Zoom and `"

Thanks Dylan and AI bot, ha. Will dive into this.

No problem, the short answer is that you can get a fresh access token once you connect Zoom in a code step via this.zoom.$auth.oauth_access_token. See Connected Accounts - Pipedream for more info on that