I’ve been working to add a few important features for Alpha 3. These additions should help with quality of life and future plans.
First, I have added in the ability to set Likes for Streams and Recorded Videos. The framework is also in place for Likes for Channels, but will be implemented in the future.
In addition, I have also created the ability to set the current recorded video Thumbnail. You can do so by clicking on the camera icon in the Video Information Panel when you are the video owner. I hope to add the ability to let you preview this thumbnail prior to saving it, but it may also take some time and may not be until Beta 1.
Finally, I have added a Public side API. The API can be reached from the following locations:
- /api/v1/channels/ – Lists all Channels on the server
- /api/v1/streams/ – Lists all Streams on the server
- /api/v1/vids/ – Lists all Recorded Videos
- /api/v1/topics/ – Lists all Topics
For all Public API Endpoints listed above, you can add a specific ID to show information for one entry, based on the ID
- ex: /api/v1/vids/14 – Will show just the information for the Video with ID #14
It has been a bit since I’ve done and update, but I’d like to note that I have completed and released what would essentially be Alpha 2. Here are some notable changes:
- Refactored code to separate all classes out of the main app.py file
- Created a Streamer Role which allows the Server Admin to Define who has the rights to Stream.
- Added a “Streamers” page showing all Streamer Users which have rights.
- Users now have the ability to reset their passwords
- Mobile View has been formatted to look better on Login Screens
- Admins can now setup the SMTP settings with blank usernames and passwords, if their SMTP server allows it
- Basic Admin Page Functionality has been completed, more coming in future Alpha releases.
More will be coming as I have time to work on the next Alpha release. I am planning on adding a subscription system, as well as a public and private API. If you have any features you would like to see, please let me know.
You can pull the current release from https://gitlab.com/Deamos/flask-nginx-rtmp-manager
Much work has been put in lately and I believe that 90% of the functionality is now complete. While I am not ready to call for an official Alpha release yet, I have deployed a low quality “Alpha” out to the web at http://osptest.divby0.net.
Some of the most recent changes:
- Topics Page is now working
- Chat has been stylized and animations added
- Custom Channel Topics have been added and allow for custom images to represent them
Today, I started work to make the interface more responsive for Mobile Devices. After a bit of trial an error, I think I found a format that I may settle on. The live stream portion will still allow for chat, as well as the UI for performing edits if needed.
Work has begun on the Administration Page. I’ve added in the settings panel, as well as User, Roles, Channels, and Streams Maintenance.
In addition, I’ve added system statistic monitoring for CPU, Memory, and Disk Usage as real time values using Socket.io.
I’ve completed added a little bit of customization to the backgrounds, allowing an admin select from a few templates to change the background color scheme.
Check out a few examples:
More work has been done on the platform. I’ve been cleaning up the interface some and adding a few options for those who want to use the system in certain circumstances.
- You can now change whether other users can register.
- You can now disable recording across the platform and only allow streaming.
- The platform now has an initial setup process to configure the required system variables.
There are more plans to add additional features such as allowing users to register but not record or stream, allow for selective recording and streaming on a per user interface, and a few others before I am ready for the alpha release.
So far, my Open Streamer Platform is coming together. I have been working on it, on and off, for about 2 months. Originally, I needed the system for a future project at work, but I decided instead to work on it in my off-time so I can open source it.
Essentially, I use NginX and the NginX RTMP Plugin for the streaming and recording, while using Flask for the front-end and stream key security.
In its current state, the platform will accept an RTMP stream from something such as OBS, and display it live online with chat. Furthermore, it will also allow to save the stream for later playback. Still quite a bit of work to be done, but so far so good.