Zoom ACTION
Get Recording Download Link
Generate a temporary, pre-signed download link for one Zoom cloud recording file. Use to download, fetch, or share a recording. Call Get Meeting Recordings first to list a meeting's files and pass the
id of the one you want, or omit Recording File to get the meeting's main video recording automatically. Returns downloadUrl, expiresAt, expiresInSeconds, and the file's recordingId, fileType, fileExtension, fileSize, and recording start/end timestamps. This link contains a credential — anyone who has it can download the file without logging in to Zoom, until it expires. Example: call with meetingId=84598792483 and no recording file → returns { downloadUrl: "https://us02web.zoom.us/rec/download/abc123?access_token=eyJ...", expiresInSeconds: 900, fileType: "MP4", fileSize: 148203910 }. See the documentation- Action
- Read only
- OAuth
- SDK
- MCP
IMPLEMENTATION
Call this tool
Connect a user's Zoom account once, then configure and run Get Recording Download Link from your backend or agent.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "zoom-get-recording-download-link",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
zoom: { authProvisionId: "apn_xxxxxxx" },
meetingId: "Meeting ID",
recordingFileId: "Recording File",
},
})
console.log(result)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "zoom-get-recording-download-link",
"configured_props": {
"zoom": { "authProvisionId": "apn_xxxxxxx" },
"meetingId": "Meeting ID",
"recordingFileId": "Recording File"
}
}'// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "zoom",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
name: "zoom-get-recording-download-link",
arguments: {
meetingId: "Meeting ID",
recordingFileId: "Recording File",
},
})SCHEMA
Inputs
Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.
| Property | Type | Description |
|---|---|---|
meetingId Meeting ID | string | The meeting whose recording you want a link for. For a recurring meeting, pass the meeting UUID (available from List All Recordings) to target a specific occurrence — the numeric meeting ID always returns the most recent one. Required Dynamic |
recordingFileId Recording File | string | The specific recording file to act on. Leave empty to use the meeting's main video recording (falls back to the largest MP4, then the audio-only file). To choose a file explicitly, call Get Meeting Recordings for the same meeting and pass one of the recording_files[].id values it returns (only files with status completed can be used). Optional |
ttl TTL (seconds) | integer | How long the link stays valid, in seconds. Defaults to 15 minutes (900). Minimum 60 (1 minute), maximum 604800 (7 days). Optional |
REFERENCE
Tool details
Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.
- Registry key
- zoom-get-recording-download-link
- Version
- 0.0.2
- App
- Zoom
- Authentication
- OAuth
- Read-only
- Yes
- Destructive
- No
- Open world
- Yes
- Source
- View on GitHub ↗