Build a UGC Live Streaming App with Amazon IVS: Course Intro (Lesson 1.1)
Welcome to Lesson 1.1 in this series where we're looking at building a web based user-generated content live streaming application with Amazon IVS. This entire series is available in video format on the AWS Developers YouTube channel and all of the code related to the sample application used in this series can be viewed on GitHub. Refer to the links at the end of the post for more information.
Published Dec 12, 2023
Welcome to Building a User Generated Content Live Streaming Application with Amazon Interactive Video Service. My name is Todd Sharp and I'm the Principal Developer Advocate for Amazon Interactive Video Service (Amazon IVS). In this course, you'll find lessons that focus on how to solve many of the common problems involved in building a User Generated Content (UGC) live streaming web application. We'll answer questions like:
- How do I create live streaming channels and chat rooms?
- How do I store and retrieve a user's channel information?
- How can I display live viewer counts for a stream?
- How can I record streams for playback later on?
- How can I "replay" the chat for a recorded stream?
- How can I invite chat users to join my live stream?
Those are just a few of the specific issues that we'll address in the various lessons in this course. Since this course is broken up into smaller, focused lessons, many of the lessons will be valuable to any developer working with Amazon IVS - not just developers building UGC applications.
To follow along with this course, you'll need the following:
- An AWS account
- Create a free account if you don't have one yet
- The AWS Cloud Development Kit (AWS CDK)
- The AWS CLI installed and configured for your AWS account
- An IDE (like VS Code)
- Familiarity with RDBMS systems (PostgreSQL)
Amazon Interactive Video Service, or Amazon IVS, is an AWS service that gives developers the ability to create interactive, high quality, low latency live streaming applications. When we say low latency, we're talking about 2-5 seconds "glass to glass" (broadcaster to viewer). Amazon IVS also offers a real-time latency option for developers who need sub-second latency. Amazon IVS has many features - things like:
- Auto-record to S3
- Interactive chat with:
- Chat logging
- Automated moderation
- Timed metadata (IE: events tied to a specific point in time of a stream)
- Authorized playback
There's much more to it than that, but if you're taking this course, you're probably already familiar with Amazon IVS.
In this course we'll look at a UGC application called StreamCat. In order to reach the widest possible audience of developers, we'll intentionally avoid using popular frameworks like React and Angular. StreamCat is a monolithic application with the router, service tier, and views bundled in a single application. This may or may not be the best architecture for your application, but it's the best way to keeps things uncomplicated for a training course like this.
StreamCat uses AdonisJS, but you won't need to be familiar with that framework to understand what the application is doing on the backend. We'll talk through things like model structure and persistence so that you'll understand how to apply those concepts with whatever framework and persistence tier exists in your application.
Similarly, StreamCat utilizes AlpineJS to simplify data binding and view state management on the frontend. And again, no prerequisite knowledge is required. If we talk about the frontend, we'll do so in abstract terms that you'll be able to apply to whatever frontend framework you're using.
If you're ready to dive into things, hop over to the next lesson for a more detailed overview of what we'll be learning in this course.
Any opinions in this post are those of the individual author and may not reflect the opinions of AWS.