Fritz.StreamTools
Handy tools for managing my a live video stream and outputting video widgets that can be used directly in OBS or other streaming tools.
Features
The project is intended to be built as a Docker container and configured with a series of environment variables. It is intended to support a single-user, and not run on the public-facing internet.
The following features are supported by this project:
- A checklist rundown of segments of the show (/rundown) that is updated from another page (/admin)
- A followers count API that reports the total number of followers: GET /api/Followers
- A followers count page that can be easily styled and formatted at /Followers/Count
- A followers goal meter that can be sized and have its goal caption and value set, complete with configuration screen at /Followers/Goal/Configuration
Services Supported
The project supports reading stream metrics from the following services:
- Mixer
- Twitch
Contributing
This application was built with ASP.NET Core 2.0 and can be built on Mac, Linux, and Windows. Download the .NET SDK and grab a copy of Visual Studio Code to get started on any platform.
How to contribute
- Open new issue or find some interesting,
- Fork repository,
- Create new branch in your fork from dev,
- Code something awesome,
- Create pull-request from your branch to our dev branch,
- In pull request write what you did and why, if it requires an explanation,
- (Optional) Answer questions or correct your code if needed,
- Celebrate that you are new Contributor :)
Building and running locally
- Ensure pre-requisites:
- Fork repository
- Clone
- (Recommended) Open in editor such as Visual Studio or Visual Studio Code
- Add GitHub > User and AuthenticationToken to Fritz.StreamTools\appsettings.json (no scopes needed)
- Run
dotnet build .\Fritz.StreamTools.sln
to confirm build success- If error: A compatible SDK version for global.json version, update the version in global.json to match your .NET version.
- If error: \Fritz.StreamTools\Test\Test.csproj : error NU1605: Detected package downgrade, update the version numbers to match what is expected based on the error.
- Run
docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" up -d --build
- Run
docker ps
to find the port (for example: "32768" in "0.0.0.0:32768->80/tcp") - Browse to http://localhost[port]
Configuration
Google Fonts Api
To use your own Google Fonts Api key without modifying the Fritz.StreamTools\appSettings.json
you can place your key in the secrets.json
file in the path appropriate for your OS.
The userSecretsId is 78c713a0-80e0-4e16-956a-33cf16f08a02 and can be found in Fritz.StreamTools\Fritz.StreamTools.csproj
.
If you are using Visual Studio you can use the integrated User Secrets management UI
The secrets.json
file should look like this
{
"GoogleFontsApi": {
"Key": "<YOUR API KEY>"
}
}
Naming guideline for unit tests
- Create a folder for each "logical class"
- Create a test class for each feature to test - end with "Should"
- Test Methods should describe what they are inspecting and what they're given, if anything.. ending with "_Given..." Example: StreamService.CurrentFollowerCountShould.MatchCurrentFollowerCount_GivenOneService