https://livekit.io logo
#announcements
Title
# announcements
c

colossal-engine-37907

09/29/2022, 4:24 AM
When recording rooms with Twilio, Twilio provides a REST API for enumerating the recordings with some metadata about each track. While a full service would be nice, if the egress service just dropped down a .json file next to each track with some basic information it would be extremely useful. Imagine a scenario where you are trying to transcribe each track, without information about the timing of the start of the stream, the participant, etc. the recordings themselves are fairly useless since you can't piece together the timing of the tracks. Twilio for example uses this information for their offline compositing service so that it knows the timing of the tracks they are stitching together. Here's an example of the kinds of things twilio lets you get via the service. Seems like it would be a fairly trivial change to drop down a .json file when a track recording is saved with some basic information about the track timing offset (Twilio gives an offset that the track started in milliseconds). Outside of dropping down a metadata file, having the ability to provide a naming template for the tracks instead of a hard coded name could also be used to accomplish the same thing for example: s3://recordings/{room.id}/{participant.id}/{track.id}/{offset} could allow this information to be parsed out from the filename itself after the room has ended. Either way, storing some basic data in the same place as the track would unblock a few scenarios for us. We don't mind manually listing the files in the bucket under a room prefix or parsing it out of the file name as long as we have some way to get it. You could imagine a basic recording service implementation could do just that without needing any additional storage mechanisms. https://www.twilio.com/docs/video/api/recordings-resource#recording-instance-resource
1
a

able-gigabyte-21598

09/29/2022, 5:21 AM
Hey Jesse, these are both good ideas. If you want to create issues here, you can track them and I’ll talk to the team about putting them in. If you need solutions asap - we send the all recording info with the egress finished webhook, you could listen to that and upload the info to the same location. For generated names, if you leave
filepath
empty or if it ends with a
/
we will generate a filename using the room name or track id
c

colossal-engine-37907

09/29/2022, 5:45 AM
Thanks, I added a few issues along with a third which is that in order for both of these to be useful, you really need the ability to request all the tracks to be saved as individual streams, rather than a composite (this is actually the only currently supported egress mode on twilio programmable video unless you use their newish livestreaming feature which has something similar to the chromium based compositor).
🙏 1
a

able-gigabyte-21598

09/29/2022, 5:04 PM
We did add the ability to record all tracks individually, which will be in the next livekit-server release (it’s a new option in the CreateRoom request)
👍 1