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
Open CC in Zoom client, and copy API token
Paste on postman, and add seq and lang parameters and send a request with closed caption text with text/plain type
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.
@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.
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);
}
}
}
}
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.
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)
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.
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!