Is it possible to save all recording to same folder during the particular meeting?

Hello all. I have one question regarding Jibri recordings. Jibri is saving files under a folder that’s named sessionId

// FileRecordingJibriService.kt
 private val sessionRecordingDirectory =
        fileSystem.getPath(recordingsDirectory).resolve(fileRecordingParams.sessionId)

So in a single meeting, let’s say 4 times Start Recording is triggered. There are gonna be 4 different folders and inside those folders roomName_date.mp4 files will be. Is it possible to group/identify recordings that happened in a particular meeting, not room. So let’s say the room is empty and someone joins the room. A new meetingId is created at that point. I want to differentiate all recordings until a new meetingId is created.

I have checked prosody modules and added one component listens for muc-occupant-joined hook. I can determine meetingId from room._data and I can understand that occupant is Jibri however there is nothing related to sessionId in the prosody object(s).

Does anyone have an idea about this?

Thanks in advance

How about using HTTP API? It takes sessionId as a parameter. If I could manage to send the meetingId that means Jibri is gonna save {{roomName}}_{date}}.mp4 files into same folder unless I pass another meetingId as sessionId

Or is it possible to determine the meetingId in the Jibri code? If that’s doable, maybe I could modify Jibri code and change the folder name calculation. What do you guys think?

Any idea?

I think you should look into creating a finalize script. Do a search in the forum (and online) for that.

Since jid is in the Jibri browser log, the following hacky way may work to get the current session id

SID=$(sed -n '/"_jid"/,/"value"/ {/value/p}' /var/log/jitsi/jibri/browser.0.txt | \
      sed 's~.*/\([^/]*\)"$~\1~' | tail -1)

echo $SID
1 Like

I think the recording metadata includes the call name, so you could also jump up a dir in the finalize script and find all the sessions for a particular call name. But there’s no guarantee that the same jibri will even handle all the recordings for a given call, so you may not have access to all of them on a single Jibri (unless, say, all your Jibris write to a network share)–but even then, how would a Jibri know that its session was the last one?

I think you might need to look at doing this in some step in some other process, after you know the meeting has finished.