Closed Caption API returns "404 Route Not Found"


Format Your New Topic as Follows:

API Endpoint(s) and/or Zoom API Event(s)

Description
When I try to request sending a closed caption to a meeting that I hosts by using 3rd party CC API, the zoom api server returns 404 error and there is no description for the error code.

I’ve confirmed the two prerequisites to use the CC API,

  • Closed caption enabled with this option selected: Allow use of caption API Token to integrate with 3rd-party Closed Captioning services
  • Access to third-party close captioning service

Error?

“{“error_msg”:“404 Route Not Found”}” and there is no information any more.

How To Reproduce

  1. Open CC in Zoom client, and copy API token
  2. Paste on postman, and add seq and lang parameters and send a request with closed caption text with text/plain type

Hi, @peter3

Welcome to the Zoom developer forum --I’m happy to help you. As a start can you post the entire request with PII omitted? I’ve encountered this behavior before and the root cause needed to be corrected para value. Double-check that you are sending the correct param values in your request.

Feel free to let me know if you have any questions about this.

Thank you for the reply. Here is the my request.

curl -X POST --header 'Content-Type: text/plain' https://wmcc.zoom.us/closedcaption?id=83391073345&ns=UGV0ZXIgS2lt64uY7J2YIFpvb20g7ZqM7J2Y&expire=86400&sparams=id%2Cns%2Cexpire&signature=[REDACTED]&seq=41&lang=en-US --data 'Hello'

@peter3,

Are you only encountering this behavior when using curl? Can you share if you tested with a different language?

@donte.zoom I tested the API in Node.js and Postman, but it also returns 404 route not found error. I don’t think it is related to languages or request clients.

1 Like

I also have been experiencing this issue for a few weeks. I’ve tried in node.js and a sample C# program. The node.js version had been running and working for over 1 year, then it just started getting 404 errors which it never had before.

Below is the C# sample code I used as a test.

1st param: the seq # to append to the parameters
2nd param: text to send
3rd param: caption key from the “Copy API Key” button in Zoom meeting

This was run as:zoomtest 1 test {REDACTED DUE TO PII}

Here is the C# code

using System;
using System.IO;
using System.Net;
using System.Text;

namespace zoomtest
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length != 3)
                return;

            var url = args[2];

            url += "&seq="+args[0];
            url += "&lang=en-US";
            try
            {
                string postData = args[1];
                string response = string.Empty;
                HttpWebRequest req = WebRequest.Create(new Uri(url)) as HttpWebRequest;
                req.AllowWriteStreamBuffering = true;
                req.Method = "POST";                
                req.ContentType = "text/html;charset=utf-8";
                byte[] formData = UTF8Encoding.UTF8.GetBytes(postData);
                req.ContentLength = formData.Length;

                using (Stream post = req.GetRequestStream())
                {
                    post.Write(formData, 0, formData.Length);
                    post.Close();
                }

                using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
                {
                    StreamReader reader = new StreamReader(resp.GetResponseStream());
                    string resContent = string.Empty;
                    resContent = reader.ReadToEnd();
                    response = resContent;
                }
            } catch (Exception e)
            {
                Console.WriteLine("Error: " + e);
            }
            
        }
    }
}

In case it helps, from my logs (which aren’t totally exhaustive, but pretty good) I got my first instance of a 404 error on Dec 5th.

Thank you @jake7 !
So you mean, the client env (Node, .NET, or …) affects the success of the API request?

I found an error too. I’ve been testing with getting a sequence of zoom closed-caption messages and I found {"error_msg":"404 Route Not Found"}.

No I don’t think so. I did the C# .NET test after my original Node.js implementation on linux stopped working just to try and confirm it wasn’t specific to the way I had done it.

@donte.zoom any update for this ?

@donte.zoom I’m waiting for the progress. It looks Zoom side issue, so is it going to be resolved?

I need using the CC API.

1 Like

@peter3 , @mynameismaxz , and @jake7 ,

Can you confirm whether you are increasing the counter by one between posts of new caption data? (Note: it must not be increased for retries).

Here is a video reproducing the behavior for reference :

Also, can you confirm whether your account meets the prerequisites for integrating with a third-party closed captioning service:

Yes I can confirm I’m incrementing it between posts. However I also get the 404 error on my first post where seq is always 1 (ie: I append “&seq=1&lang=en-US” to the API key)

@jake7 ,

Does that error occur when the seq value is 40 ? Also, does your account meet the prerequisites for integrating with a third-party closed captioning service ?

Yes it does occur when the value is 40. I do have those pre-requisite settings checked as well (getting the API key isn’t an option when I disable them, the button is gone). It does seem to sometimes work now, though not always. I’m still trying to find a pattern.

On 12-23-2022, I’ve been tested to get the sequence of captions with Postman and found an error route not found as in the below image.

So nowadays, I’ve been tested again. It’s work.

Thanks @donte.zoom

1 Like

@peter3 @mynameismaxz I’ve had some successes in the last couple of days. I’m cautiously optimistic that the issue has been resolved.

1 Like

Same here. Thank you!

But I don’t understand why I need to send a seq parameter to use the cc API. I think it could be totally handled by the Zoom server. Anyway, good news!

@peter3 ,@jake7, & @mynameismaxz ,

Glad to hear that was helpful. Happy coding!