Topic Title: download_url returns HTML Login Page (200 OK) instead of MP4 via Webhook
Topic Body:
API Endpoint(s) and/or Zoom API Event(s)
-
Event:
recording.completedWebhook -
Endpoint involved: The
download_urlprovided in the webhook payload for MP4 files.
Description I am developing a backend application (Node.js/Firebase) that listens for the recording.completed webhook to download and archive meeting recordings.
The Workflow:
-
My server receives the
recording.completedwebhook. -
It extracts the
download_urland thedownload_tokenfrom the payload. -
It initiates a GET request to the URL, appending the token as a query parameter:
?access_token={download_token}.
The Problem: Instead of receiving the video file stream, my server receives a Status 200 OK response with Content-Type: text/html. The body of this response is an HTML page (“Download has been disabled by the administrator (200)”), causing my download logic to fail.
Crucial Context:
-
If I paste the exact same constructed URL (
url+token) into a browser where I am logged in as the Account Admin, the download starts immediately. -
If I paste the URL into an Incognito window (simulating the backend’s unauthenticated state), I get the HTML error page.
Error? No 403/401 error code is returned.
-
Status:
200 OK -
Content-Type:
text/html;charset=utf-8 -
Response Body: HTML content (Login page or “Download has been disabled by the administrator (200)” page) instead of
video/mp4.
How To Reproduce Steps to reproduce the behavior:
-
Request: GET request to
download_urlfromrecording.completedpayload. -
Authentication: Query parameter appended:
?access_token=[download_token_from_payload] -
Environment: Node.js
axiosrequest (or Browser Incognito mode). -
Result: Server returns HTML content instead of the video file.