Published on May 16, 2024 (about 1 month ago)

Building UGC video features with Uscreen

Matthew McClureStaci DeGagne
By Matthew and Staci14 min readCustomers

Nick Savrov, CTO of Uscreen: If you looked at Uscreen two, three years ago, we were more of a OTT provider. And now we are more of a membership platform. Which means besides the video features, that's going from creators to the audience, so like one-to-many, we will add more and more many-to-many functionalities. Which means the users can also now send the videos to creators and to other users in the membership community.

We have a guy who's doing guitar lessons. And he was bugging us for like three years. Something like, "Guys, my audience needs to record a video and send it to me and ask my opinion, like, 'How I'm doing?'". As we learn more, it's like super common use case where people want to get the feedback in the video format.

It was extremely cool to see how we can use short vertical format videos with Mux, because we already have Mux as the core component of our video catalogs for creators. And now we can use the same API to build functionality for end users. Considering that we have mobile apps, it's super easy for us to manage the workflow of end user and uploading the content so users can just quickly get their phone, record the video and just hit send.

Matt McClure: Selfishly, like, one of the things that I think we do really well at Mux is, you know, that fast experience around, "I've got a video, I upload it, and now it's ready as quickly as possible". Is that a critical part of this component, is how quickly people are able to like, get a video, upload it, and then kind of see it in the feed? Or is, is async kind of fine? They're like, how does that play into the experience?

Nick Savrov: The fun part, the fun part, we want to do it in the background right now, it's actual time, in synchronously, in the format, like from uploading and transcoding, to actual video from Mux back to your screen. So there's like, right now, no hidden magic. It's just like built in the simplest, dumbest way possible. And we are iterating on top of that. It's just, it was, like, probably one of the best ways to just do the test, right? Just to build it as scrappy as possible. And the scrappiest version already really fast. Where people are actually enjoying using it.

Matt McClure: I promise we didn't, we didn't pay Nick to say any of this.

Nick Savrov: So, this is the new community tab. This is something in between the Facebook group, with channels and, and something more robust as like Slack, right? The fun part is like before we could only allow you to add images. And now you have this video editor, right there, that actually allow you to send a nice video to the community group. And not only creator can answer, other end users can participate in discussion.

And as I said, it's the first version you see, it's like, it's just doing the work right now, but we all read how Instagram faked it, the, the speed of the app in the early days. So we'll do the same thing. So it will be in the background. It's all working pretty smooth. Considering that we already had the experience with Mux API, this feature was extremely fast to build.

Our goal here for UGC content is to have short video sessions from end users. We don't want them to upload like one-hour movies. And right now we have a limit of 60 seconds there. And we getting a lot of video usage already from those smaller vertical videos, especially in active communities, because it turns out that people who upload video, like their median of symbols below the video is actually more than people who just doing the text posts.

Matt McClure: So you're seeing people actually write more copy on video content that they're uploading, right?

Nick Savrov: Yes.

Matt McClure: Wow.

Nick Savrov: Yes. They spend more time with the video content and also on average video content hits a lot more likes and comments. This is a shift for us in our learnings. If we can push people to actively participate in the community, they will stay a lot longer with the creator there. And the video is actually one of the best ways for us to, to make it their own space and to build the better connection between creator and the end user over time.

As I said, like, that's just the first version that was built in one feature cycle. And we also do, we did before six weeks cycles. So you can count it as a result of one engineer working for four weeks on the feature. Which is amazing. And now there is 250 apps in the app store that have this and people using it.

Matt McClure: How does the, how does the backend of this, this look, what's the technology behind this thing? I mean, Mux, obviously, but like specific features or like what, what's, what's happening there?

Nick Savrov: So for our apps, we're using Flutter. Our backend is monolith Ruby on Rails application. And we're big fans of simplification of technology, simplification of the stack. So probably the laziest developers out there. We're trying to keep it this way.

Matt McClure: Hallmark of a good developer. Laziness.

Nick Savrov: So we're trying to keep it this way. Right now, the app will communicate with the server to request the upload link. We're uploading directly to Mux. The editing of the video file, the duration is done on the device. And then we're just sending it directly to Mux. And once video uploading, uploaded, like, and transcoded, we're getting webhook back to the system and it's just delivered through, I think it's delivered through server sent event to the device pack. So device doesn't check anything and boom, it's there. We initially just WebSockets, but then we realized that if you need to build something for Roku, good luck using WebSockets. We, we ended up with simpler technology stack and server sent events are way more supported right now with web, as well. Like you don't need to do like crazy workarounds. So we ended up using that and, yeah, that's super simple. As I said,

Matt McClure: Doesn't need to be bi-directional anyway, right? So that's, that's a perfect use case.

Nick Savrov: Yes. Yeah.

Matt McClure: Any other, like, features that you've, you've been able to use in this, that you've felt have been like big unlocks?

Nick Savrov: One big feature that was like unexpectedly well used that's currently in the build where we're doing beta tests with it and a few customers. It's auto-caption. We actually were shocked how important this feature is and how it changing the behavior. First of all, the dumbest thing that you realize once you start working on it, like you can now watch videos in the Metro without the sound. And there's like simplest use case there that you never thinking about. It's extremely also good for educational content is it's a huge win. Also, it saves so much time to creators. It's fun story.

We, we have our CS team and once, once we build up the first version of the feature, it, it meant to be rolled out as the alpha test only to a few customers, but because of, oh, this is probably my mess and internal communication, CS teams thought that they can actually go and enable it to customers. And we end up is, with like more than 100 customers in less than a week with this feature running in production. And I was like, hold on, we didn't even like build it well yet. Like not, not like build it well, but the flow. From the user perspective was not yet obvious, but turns out we, like, we're rolling out to a bunch of people and everybody were so upset when I turned it off. They were like, "What do you mean? Like, we want to test". I'm like, okay. We didn't expect to get so much feedback, positive feedback and so much push to like, to roll out as fast as possible to people. So that was pretty funny. And the fun thing we're now doing was, was the captions. Cause we now have all the videos with captions automatically. We're, we're working on automatic descriptions and titles based on those captions files. So also huge on log there for potential simplification of workflow for the creators.

Matt McClure: So are you running, like, are you like getting the captions? So webhook comes back video ready. Are you like taking that captions file and then running it through, like, an LLM to get, you know, descriptions and titles? Oh man, that's so cool.

Nick Savrov: Yeah. So we're, we're getting titles, descriptions, and in the future, we want to figure out how to, to put it in the right category as well and do other stuff that's, well, will fit the, the creator use case plus, the way how creator communicate based on previous history of like titles and descriptions and their style of communication with the audience. So creators are by design multi-SKU businesses. They never run just one business. They have like multiple businesses. So our goal for them to create the business that actually recurring, not like one, one time hustle. Which most of creators are doing, and that's allowing them to just spend as least time on it as possible to have like as many helpful automations.

Matt McClure: Yeah. Big transition for you again, to, to enter into the UGC space. I feel like you're one of the few proper experts in building OTT platforms. What would you call out as your feedback or suggestions or, you know, what would you, what would you say to somebody else who is like entering the space?

Nick Savrov: I think it's, it's also like a part of a classic conversation of build versus buy, right? One particular thing was video. It's expensive until you get volume. Right? And if you also need to spend a bunch of time and resources to build it from scratch, it's borderline, not smart. If, if you will take that. So this is where I feel like the, if you building MVP or you trying to get it first time, the more you can just. skip in terms of the building process, the better it is. And for us, we just didn't make that mistake because we were working with Mux, so for us, it was a no brainer move.

But I can see like someone would be like, "Okay, I will just encode 360p or 480p and it would be enough for mobile device and we'll store it somewhere and then deliver it" and then you're getting into a nightmare of problems that you would never expect to have, especially when devices are not, are always the same. Like it's, it's, it's fun for, to build for iOS. Right? But then there's a bunch of other devices where you hitting unexpected problems and oh, what you do with Chromecasting. Now, if you just don't go and try to solve all of those issues right away, I think it's a good win. Make sense to buy initially, even if you like end up building your own, because I don't know, you have some really weird requirement, which I feel like we have a really weird requirement. We have Roku, we have Android TVs and for us, Mux work out extremely well. So how more weird than that you need to be? It's really hard to say. But, this is where I feel using APIs that already exist there is a huge plus and, and will, will save you not a lot, not only a lot of time, it will save you a lot of money, especially with the keep up because once your real users will start using it, you will uncover a lot of problems with, with video delivery and with different per platform, unique issues and challenges that's already solved for you when you're using Mux, for example.

And right now, like if, if we coming to seven years ago, that would be a fun flashback. When we starting out, we had our own Wowza server in Virginia. That was the worst time in my life. Cause I barely slept because I was so worried that something will go wrong. It was so bad that the moment we switched to Mux, I start to sleep well. So if Oura Ring will will be there back then, you will probably see a meaningful difference in my sleep quality the moment we switched to Mux, because, yeah, it was a nightmare. And and we had the background in the web hosting, so it was at least something we knew how to do. And for people who never did it, unless you want, you want really hard challenge this that you will have a poor ROI on you can do it, but it will be just for fun. There's way more interesting ways to have fun than building your own video infrastructure from scratch for UGC content when there's something that exists.

And yet again, the problem it's, it's, it's only get cheaper with scale. So if you will start building it on your own, it will never be on the price comparison as good as you will just start with Mux right there. And I think that's another thing that people just forgetting. Because, like, delivering video is expensive. The only way to make it less expensive is just deliver a hell of a lot of them right away, which no one can do from the day one.

Matt McClure: We should, we should see if we can pull up your old sleep data, like if you had an Apple watch back then, that'd be, that's perfect for like a, we should put that on the website. Nick's, Nick's sleep cycles, pre-Mux, post-Mux, type situation.

It's a dream to have an early customer like y'all that we've, I've been able to work with for, you know, from the very beginnings of the product and scale and mature together as businesses and watching, watching y'all, y'all grow. And I think this is the coolest part about working at Mux is being able to watch somebody like you build the things that matter for, for your customers. So selfishly, this has been a, this has been a dream conversation. But yeah, thanks. Thanks a lot, Nick. Really, really appreciate your time today.

Nick Savrov: And, and thanks for Mux because without Mux, we would not allow to focus on, on what creators need. We would focus on infrastructure.

Matt McClure: Yes. And another tagline.

Nick Savrov: Back to the days of Wowza and my poor sleep quality.

Written By

Matthew McClure

Creator of Demuxed and wrangler of meetup speakers. Used to write a lot of React and Elixir code. Still do sometimes, but used to, too.

Staci DeGagne

When not making videos at Mux, she’s working on indie film projects, exploring the bay area with the fam, checking out live comedy and always staying versed in the Bravoverse (aka trash tv).

Leave your wallet where it is

No credit card required to get started.