Recording URL downloads returning 403?

Our application is receiving 403 errors when attempting to download video recordings. Our code was working as recently as Friday. Has something changed?


If I use the download_url provided in the recordings API response in a browser, the download works fine. But our programmatic downloads fail. This implies that some header is required that was not required before.

Hey @clippermadness,

Thanks for posting, we are escalating to our eng team and will be back with a response asap.

Possible work around in the meantime:


Tengo el mismo problema

I have the same problem

Thanks @proveedores, we will provide an update as soon as we can.

Proporcionaremos una actualización tan pronto como podamos.


@tommy qué solución podríamos aplicar mientras tanto?

We’re affected too.

It’s damn embarrassing how often part of my app breaks because Zoom changes the API or something that the API provides/depends upon.

Thanks @clippermadness for posting, so I can now stop debugging my own code and instead implement a workaround.

Requiring a cookie is a pretty cooked security solution - even CURL is busted. No error message provided in the body either.

1 Like

Workaround if you’re using golang FWIW:

Does anyone have a quick solution for nodejs? preferably using the request npm module?

@tommy this is ridiculous that you make those changes and break our apps. simply ridiculous. I have angry users to answer to and they dont care that Zoom broke the API, they don’t even know what API is, they just want their recordings. Please, this needs to be fixed ASAP, please revert back to the old method.


@tommy no se publicaron actualizaciones como estas como para preparar nuestras aplicaciones para estos cambios, realmente es fastidioso.

they always do this, it was the same with v1 … you will notice API changes when your code start failing … ugh :rage:

We got affected too. When it will be fixed and what will happen to the recordings? Lots of questions from our customer. How can we upload those recordings to customers (to their Google Drive or YouTube etc) Thanks.

Hi @selva.iyyamperumal @Emanuel_Aguirre @proveedores @clippermadness @James_Hale

For updates, please refer to our this forum post - Update: Recording download url 403 error. We’re working on resolving the issue asap.

1 Like

Please give an estimate. What we have to tell our customers?

This isn’t perfect but it should be a good start. Key for the request module is that followRedirect setting.

function getZoomVideo (url) {
  return new Promise((resolve, reject) => {
    request(url, { followRedirect: false }, function (err, res, body) {
      if (err) {
      } else {
        if (res.statusCode === 302) {
          let cookie = '';
          if (res.headers['set-cookie']) cookie = res.headers['set-cookie'].map(c=>c.substr(0, c.indexOf(";"))).reduce((a, b) => a + "; " + b);

          request(url, {
            followRedirect: true,
            headers: {
              'Cookie': cookie,
          }, function (err, res, body) {
            if (err) {
            } else {
        } else {

(async () => {
  const videoFile = await getZoomVideo('[zoom video url]');

1 Like

@James_Hale, @selva.iyyamperumal, @Emanuel_Aguirre, @proveedores, @shaharsol, @clippermadness,

Thanks for your patience, the issue is now fixed.


1 Like

It’s working for me! Thank you!

Happy to hear!