đŸ–„ Agora Video Conferencing (WebRTC) and Streaming with Cloud Recording - New Plugin from Zeroqode

Thanks for reply quick, change the element worked for me, but I have another question. Can I use the voice change from agora, using the plugin or in another way?

https://docs.agora.io/en/Video/voice_changer_android?platform=Android

Hello, @bubble40
Thanks for this question.

Unfortunately, this option is not possible with our Agora element. We will take into consideration the possibility to add voice effects to the plugin functional for future updates. We need to see how this could be implemented.

Best regards,
Zeroqode Support Team,

Hello, @quentsb
Thanks for your time.

We have checked your application one more time and as an exception, we created the functionally for providing the direct link to your Audience:


Now, you, as a Host, should introduce the name of the room here Screenshot by Lightshot, and immediately after it, the direct URL will be generated Screenshot by Lightshot.
After it, the Host should start the stream, but the audience will join a direct room with the streaming.
We have tested it and all is working properly :slightly_smiling_face:

Please allow us to highlight repeatedly, that the Demo Page for the new Agora element - Agora RTC, is not ready yet and our users have no access to it. You can find only the old demo page for the previous plugin version. We will notify all our users then it will be ready :slightly_smiling_face:

We are sorry that the documentation was unclear to you. So, ket we will provide more details on it: https://docs.zeroqode.com/plugins/agora-api-connector-plugin/agora-streaming-component/agora-cloud-recording-for-streaming-component

Here you are using the custom state “temp token”, however, if the state is created, you should use it somewhere else:
image
In your application, this state is not used\triggered generally. So, it means that the recording option is remained not triggered.
In order to generate the token, please follow the next steps:

  1. Go to the Project Management tab in your Agora account and pass to Generate Temp Token opposite your application name:
  2. Write the channel name and get the generated token:
  3. The channel name, that should be set in Plugin action, is the same as in your Agora dashboard:
  4. Paste in the same field in the API Call “Start cloud recording”:
  5. Storage secret and storage access:
  • Go to your storage account (in our example amazon S3);
  • In the My Security Credentials take Access key and Secret Access Key;
  • Past in the same fields.
  1. Storage region and vendor:

As we can see, you have copied not an only workflow but the other details:
image

Unfortunately, you should generate them using the instructions above, but not use ours :slightly_smiling_face: This is the main reason, why it is not working on your side.

Please check all the information above and let us know about the result.
Best regards,
Zeroqode Support Team

Hi thanks a lot for the “Get data from page URL”, indeed the link works properly and I successfully can start a stream as host, and watch it as audience. So all set for this streaming part. I will follow your instructions for the recording part, and let you know if that does not work.

I have another question on the datatypes “Agora Viewer” and “Agora Stream” that you created in your demo page, and that I have also integrated into my app. What the purpose of them? “Agora Stream” is not used currently in my workflow, but “Agora Viewer” is. Let me know. Basically as I used the “Agora viewers count” I would like to have the viewer count only for the current stream, and now it seems to cumulate the number of Agora Viewers generated by all my streams (that I started), so not the current stream viewers count. Could you let me know if I need to add like a “refresh the data” for my Agora viewers after the stream is stopped? I would like to have this number as trackrecord anyway for my stats.

Also, another question linked to that datatype: in the alerts that we have on the host and audience pages “username joined the room” and “username left the room” in your demo page you didnt indicate dynamic data such as “agora viewer:last item’s Creator username” or something like that to get the proper Username (from Bubble) of the last user who joined/left the stream. We have an ID from “Agora Streamer” database, I would like to display the Username from my user basically, dynamic data. See below screenshot of my expression. What expression should I write to have the right one? I need the last user’s username who joined or left the stream. Thanks !

Hello, @quentsb
Happy to hear that all is working now :slightly_smiling_face:

They are used in the Demo Page for an old Agora element, but not for the new one ( as in your case).
Allow us to repeat, that when the new Demo Page ( for Agora RTC element) will be ready - we will notify all our users about it.

To be able to see the real quantity of the viewer on the stream and to delete them from the list after ending of the stream, we recommend you the next settings ( please apply them on the Audience Page):

  1. When the Button Join stream is clicked:
    image

  2. Button Leave stream is clicked:

First of all, please allow us to mention that even on the old demo page, we don’t collect the connected user’s name. So, we haven’t purpose to receive the names of each user. However, in order to create this functionality, you should create the log-in form. The information about users will be collected in the DataBase (with the user’s uid Screenshot by Lightshot) and we will be able to use this in the required way.

Best regards,
Zeroqode Support Team

In your response to me here, you showed the workflow on how to remove a person from the currently active on videocall list. However, I’m struggling a bit to figure out the databasing setup and workflows needed to add a person to that list and display the list of online users. I noticed in a response to quentsb that you showed a system utilizing UID as well and tried that, but couldn’t figure it out either. Would you be able to send pictures of what the database/workflow setup for it would be? Basically the goal is to be able to display a repeating list of current users on a videocall, basically like how zoom or google meets has a list of users on the call. And this, I’m assuming would be done by adding the user to some sort of database list when they join the call and removing them from that list when they leave the call by either closing out the app or leaving the call through the exit button? But unfortunately, I have been having trouble making this happen.

Hello, @justind2022
Thanks for the question.

You are right, we have demonstrated to you the method of deleting the user from the list of the participants when someone left the call, as was requested earlier:

In order to create the requested functionality, you should create the log-in form. So, when the user will fill the form, it will be saved in the DataBase. As for the users uid, it’s provided by the Agora platform, but not by you. You can display the list of the user’s in any convenient way for you ( repeating group or text elements, etc.)

Please make your database in this way:



Please note that in order to find the settings for the plugin and replicate when within your app, you can use our Demo Page as an example.

So, for displaying the quantity of the viewers you should create the next workflow for the “Join Stream”:

And for deleting the viewer from the list, you should use the workflow, which was provided to you in our last message.

Hope it will be helpful for you.
Best regards,
Zeroqode Support Team

Hi Zeroqode, many thanks for this tutorial for Cloud Recording. I have followed instructions and created an Amazon AWS account. Still I get authentification issue when running the workflow for this step “agora start cloud recording”. I have tried put as “channel/canal name” either my “Input stream name” or a the name of my channel in my Agora account which is “phonotribe”, but still not able to start the recording. I think I have completed the other fields correctly (App ID, temporary token and so on, as per your instructions). Hope you can have a look! Then I will be all set. Thanks

Hello, @quentsb

We are sorry, but fixing the applications of the users is beyond our support responsibilities. We ask for access to the applications just as an exception, but in order to find and resolve some bugs.

Allow us to mention that the Token which is used for “Start cloud recording” should be taken from the Agora console and it’s available about 1 day, and unfortunately, it is impossible to generate dynamically through the workflow. This token you indicate in the “Agora Start cloud recording ” action- > field “body token ”


image

We have tested your application, and this issue repeated when the recording was started:

The most probable reason is not your workflow, but the settings in the Agora or AWS platforms. Thus, please check the following points:

  • The Customer ID or Customer Certificate (keys in the plugin’s tab) you entered is incorrect.
  • The cloud recording service is not enabled. See Enable Cloud Recording for details.

Kindly ask you to check one more time the Agora console settings: https://docs.zeroqode.com/plugins/agora-api-connector-plugin/agora-streaming-component/agora-cloud-recording-for-streaming-component#agora-setup

Looking to hear from you soon.
Best regards,
Zeroqode Support Team

Hi Zeroqode, I contacted you since the error message indicated “please contact the plugin author”, and I think that’s you, am I correct? Basically my set up and IDs was 100% correct, I just double checked once again: temp token for recording/AppID/AppCertificate/CloudRecording enabled/AWS key and secret key. So I am all set but I still receive the same error message.

Indeed you are not supposed to help all Bubble users, but still required to make it work. Now I bought a plugin $40 for which I cannot do recording. What I am supposed to do then? I could have set up another streaming solution within a fraction of the time I spent on your Agora plugin. About 5 days of work cumulated. Therefore back to my cloud recording issue: what can I do since all my IDs and workflows are correct? I give it up?

Let me know.

@quentsb

You should not give up definitely, as you have almost completed the plugin setup. It is just a few things left for you to see and configure. :slightly_smiling_face:

We understand your feelings, it can be quite hard to set up the Cloud Recording feature the first time. But the provided plugin documentation (for the cloud recording) will point you out the correct steps for making it work, as we have followed the Agora service terms for creating it, and as it is fully functional on our demo and our user apps.

Please note that the error message you receive shows at what step your configuration fails to work and how to fix it. Yes, definitely it advises contacting us (the plugin developer) and you did it right to reach us. At this point, we can guide you and show you the correct direction for debugging the issue you have faced. Namely, the credentials you are using for the cloud recording feature are incorrect (Cloud recording Temp Token).

Unfortunately, the incorrect plugin setup on the user side is not related to the list of things that have to be fixed by the plugin developer. But we are responsible to help you show the correct way of the plugin configuration, namely, the keys and other information, introduced in the Agora Console, via the plugin documentation we provide.

Let us please note again, it is very important, that the Token which is used for “Start cloud recording” should be taken from the Agora console and it’s available for about 1 day :pushpin:.
So, every day, when you need to use the cloud recording - you need to generate the new key.

Due to the fact, that we have double-checked the workflow in your app (and it appears to be correct), we suppose that the issue is related to the generated Temp Token key.
Thus, to make sure in that, please, follow the next steps:

Follow this documentation from the 1st step to the 5th step (sometimes the best practice is to start from the very beginning): Agora Cloud Recording for Streaming Component - Zeroqode Documentation

For authorization you’ll need customer ID and customer secret from your Agora account:

  • In the upper right corner of the Agora, dashboard window find the drop-down and its list select the RESTfullAPI option, click on it: Screenshot by Lightshot
  • Click the button “Add secret” and you’ll get the file with the customer ID and customer secret.
  • These credentials (customer ID and secret) must be base64 encoded using the following formula: customerID:customerSecret - (https://www.base64decode.org/ here you can do it).
    Check the resulting code with the plugin field for authorization with the word “ Basic ” (example: Basic NTM0YzU0ZWU0M2MxNDMyNGJkZqa2YjhhMzVlNGI4YmY6MWJhOTc2MGM4MDYyNGRhNWIyOWMzOGVkZGVhOMmU1) Screenshot by Lightshot

After it, we come to the most important part. :bangbang: We propose you the next:

After it, please share with us the room title and this token in a private message on the forum or via email (support@zeroqode.com). We will test them into your application. Please make sure that you have generated the new Token for this application.

We would like to help you with the plugin configuration, but we need your assistance and patience to make this happen :slightly_smiling_face: :pray:

Looking to hear from you soon.
Regards,
Zeroqode Support Team

@ZeroqodeSupport
Does your plugin support the RealTimeMessaging SDK yet? It’s been around for a while now with Agora.

Hello, @paulbrown
Thanks for reaching out.

Unfortunately, but the RealTimeMessaging is not available in the current plugin version. However, we are always working on the improvement of our products. Thus, we will analyze the possibility to add chatting in our plugin for future updates.

We will notify all our users if this option will be implemented in it.
Best regards,
Zeroqode Support Team

1 Like

Friends! :slightly_smiling_face:

We have updated the demo page of our Agora plugin. It is using the latest updated version and the AgoraRTC action/plugin element. Please check it out:

https://zeroqode-demo-19.bubbleapps.io/agora_connector

Hope you will find it useful! :tada: :pray:
Zeroqode Support Team

Hello Friends at Zeroqode,

First, I am enjoying learning this plugin.

That said, I need some help. Basically, AgoraRTC A User joined registers multiple entries in the database I have setup to record when users join and ‘left’. Sometimes 3 or 4 even five entries at once. Also, it triggers user joinings of other users: e.g. when User A has already, when User B is joining, the AgoraRTC A User joined would register User A as also joining.

Please help - otherwise, I am progressing well with my logic.

Thank you all

Hello, @viluhomes
Thanks for using our plugin.

In order to investigate your case and provide you with a solution for it, can you please share with us the screenshots of your current settings for the “Join” and “Left” buttons?
Without these screens, we will be unable to reproduce the settings on our side.

Thanks for the understanding.
Best regards,
Zeroqode Support Team

Hello team! @ZeroqodeSupport
I have successfully set up the plugin for live streaming but i get a 404 “unable to find worker” when calling the “stop cloud recording action”. I am using s3 as a storage provider and i have checked carefully the input parameters.
can you help me out?

Hello, @moutsatsosantonis
Thanks for reaching out and using our plugin.

Firstly, allow us to note that we upgraded the plugin and fixed the recording for the Streaming mode. Please upgrade the plugin to the latest version and try one more time :pray:

Additionally, please make sure you have created the new token for recording the stream:

It is needed to be created every day in the Agora Dashboard.
Go to the Project Management tab in your Agora account and pass to Generate Temp Token opposite your application name:


In case it was not helpful, please share with us the screenshots of your current settings for the recording, so we will be able to analyze them.

Best regards,
Zeroqode Support Team

Hello Zeroqode team. I love this plugin and it’s an integral part of our video conferencing app, so thank you!

However, I have a major issue with the new update. It seems like you guys have embedded a ‘close page detection’ to the plugin, with a popup (are you sure you want to leave this page? yes/no) , which is switched on when someone first joins a room and it’s impossible to disable, even after the room is closed! Also, this doesn’t work properly, as you can see in your demo page (The ‘user left’ event isn’t triggered, thus ‘viewers’ are not deleted).

I have been using a separate close page detection plugin, which I would enable/disable as needed, to overcome some issues with your plugin. This plugin is now overriden by this new embedded feature, and I’m back to facing these bugs, making our app unusable.

Namely:

  1. When someone leaves a three person chat, the window gets squashed (you can replicate this in your demo page) and the two remaining people can’t see each other properly. I used to use the close page detection to refresh the page - I can’t do this now.
  2. When someone leaves a two person chat, the other person is left alone. I used to use close page detection to automatically remove the other person from the room. I can’t do this now (I tried using your AgoraRTC A user left, but it doesn’t work)

Do you have plans to remove this close page detection and let us use a separate plugin, or allow us to disable it? We’re really stuck at the moment!

Hi @josh19, thanks for your message.

We will make a plugin improvement, that will add a checkbox, that will allow enabling/disabling the notification feature. Once any update in this regard will become available, we will let you know asap.

Regards,
Zeroqode Support Team