Take control over your live stream video by running it yourself. Streaming + chat out of the box.

Overview

Logo

Take control over your content and stream it yourself.
Explore the docs »

View Demo · Use Our Server for Testing · FAQ · Report Bug

Table of Contents

About The Project

In 2020 the world changed when everyone become stuck in their homes, looking for creative outlets to share their art, skills and themselves from inside their bedroom.

This created an explosion of live streaming on Facebook Live, YouTube Live, Instagram, and Twitch. These services provided everything they needed, an easy way to live stream to the world, and a chat for users to be a part of their community.

That's when I wanted a better option for people. Something you could run yourself and get all the functionality of these services, where you could live stream to an audience and and allow them to take part in the chat, just like they've been used to on all the other services. There should be a independent, standalone Twitch in a Box.

Keep in mind that while streaming to the big social companies is always free, you pay for it with your identity and your data, as well as the identity and data of every person that tunes in. When you self-host anything you'll have to pay with your money instead. But running a self-hosted live stream server can be done for as cheap as $5/mo, and that's a much better deal than selling your soul to Facebook, Google or Amazon.


Getting Started

The goal is to have a single service that you can run and it works out of the box. Visit the Quickstart to get up and running.

Configuration

Many aspects can be adjusted and customized to your preferences. Read more about Configuration to update the web UI, video settings, and more.

Web interface + chat

Owncast includes a web interface to your video with built-in chat that is available once you start the server.

The web interface was specifically built to be editable by anybody comfortable tweaking a web page. It's not bundled or transpiled into anything, it's just HTML + Javascript + CSS that you can start editing.

Read more about the features provided and how to configure them in the web documentation.

Use with your existing broadcasting software

In general Owncast is compatible with any software that uses RTMP to broadcast to a remote server. RTMP is what all the major live streaming services use, so if you’re currently using one of those it’s likely that you can point your existing software at your Owncast instance instead.

OBS, Streamlabs, Restream and many others have been used with Owncast. Read more about compatibility with existing software.

Video storage options

Two ways of storing and distributing the video are supported.

  1. Locally via the Owncast server.
  2. S3-compatible storage.

Local file distribution

This is the simplest and works out of the box. In this scenario video will be served to the public from the computer that is running the server. If you have a fast internet connection, enough bandwidth alotted to you, and a small audience this may be fine for many people.

S3-Compatible Storage

Instead of serving video directly from your personal server you can use a S3 compatible storage provider to offload the bandwidth and storage requirements elsewhere.

Read more detailed documentation about configuration of S3-compatible services.

Building from Source

  1. Ensure you have the gcc compiler configured.
  2. Install the Go toolchain.
  3. Clone the repo. git clone https://github.com/owncast/owncast
  4. go run main.go pkged.go will run from source.
  5. Point your broadcasting software at your new server and start streaming.

There is also a supplied Dockerfile so you can spin it up from source with little effort. Read more about running from source.

Bundling in latest admin from source

The admin ui is built at: https://github.com/owncast/owncast-admin it is bundled into the final binary using pkger.

To bundle in the latest admin UI:

  1. Install pkger. go install github.com/markbates/pkger/cmd/...
  2. From the owncast directory run the packager script: ./build/admin/bundleAdmin.sh
  3. Compile or run like above. go run main.go pkged.go

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Project chat: Join us on Rocket.Chat if you want to contribute, follow along, or if you have questions.

Gabe Kangas - @[email protected] - email [email protected]

Project Link: https://github.com/owncast/owncast

Comments
  • Can't Use With Restream due to Random Echo Not Matched

    Can't Use With Restream due to Random Echo Not Matched

    ERRO[0014] Server closed by error: Err = Random echo is not matched
    github.com/yutopp/go-rtmp/handshake.HandshakeWithClient
            /home/bradley/go/pkg/mod/github.com/yutopp/[email protected]/handshake/handshake.go:102
    github.com/yutopp/go-rtmp.(*serverConn).Serve
            /home/bradley/go/pkg/mod/github.com/yutopp/[email protected]/server_conn.go:28
    github.com/yutopp/go-rtmp.(*Server).handleConn
            /home/bradley/go/pkg/mod/github.com/yutopp/[email protected]/server.go:115
    runtime.goexit
            /usr/local/go/src/runtime/asm_amd64.s:1373
    Failed to handshake
    github.com/yutopp/go-rtmp.(*serverConn).Serve
            /home/bradley/go/pkg/mod/github.com/yutopp/[email protected]/server_conn.go:31
    github.com/yutopp/go-rtmp.(*Server).handleConn
            /home/bradley/go/pkg/mod/github.com/yutopp/[email protected]/server.go:115
    runtime.goexit
            /usr/local/go/src/runtime/asm_amd64.s:1373
    

    Set this up with restream, in addition to two other streams going out of restream to facebook and youtube.

    opened by graywolf336 43
  • User accounts

    User accounts

    I've read in one of the issues that you do not intend to have user account functionality, but I want to present two arguments for why it is unavoidable:

    • First, as the streamer, you want to participate in chat (and viewers need indication that you are indeed the real streamer, since people can choose their own nickname it could be easily impersonated!), you want to have access to (future) mod tools like timeouts and kicks using chat commands. HTTP auth using the stream key is not sufficient for this, you'd want a login session
    • Second, any large streamer needs multiple mods to help moderate chat, since the streamer is busy performing the actual stream. You could maybe mod anonymous users every time you start a stream, but it would be really bothersome to repeat every time and you'd never know the anonymous person is who you think they are, mods could be easily impersonated

    I understand the desire to not have a whole account management system. My personal wish would be a system where you can authenticate using your fediverse account, using OAuth or maybe OpenID (though OpenID would have to first be added to Mastodon). Like, I don't think it makes sense federating an ephermal chat, but it'd be cool if you could use your existing identity to use the chat on the site.

    Otherwise I do agree that the UX flow where you pick your nickname and can start chatting immediately should be kept, as sign-up-before-chatting on every single owncast would be too disruptive; I just think this could essentially become a user account you then get a choice of setting a password for (or maybe e-mail and then use magic links to sign-in).

    chat 
    opened by Gargron 34
  • Connected Chat Participants

    Connected Chat Participants

    The only major issue I'm continuing to have is that the Connected Chat Participants never shows chat participants in any browser. Here's what it looks like when there's no stream:

    image

    Here's what it shows when there's an active stream: image

    In this example, I have chat participants from two different browsers.

    The messages do show up under Chat Messages: image

    But never under "Connected Chat Participants"

    opened by sitehatchery 29
  • Provide RTMP URL in the admin page next to the stream key

    Provide RTMP URL in the admin page next to the stream key

    Normally streaming services will have the RTMP URL available for quickly copypaste into streaming software. Right now I have to click through to the external owncast documentation page in order to find out the path to stream to (/live). Ideally this would be shown in the server settings page along with the stream key.

    enhancement admin 
    opened by aaronpk 23
  • Quickstart fails, `valid config/config.yaml is required` (and other mattdsteele questions)

    Quickstart fails, `valid config/config.yaml is required` (and other mattdsteele questions)

    Ran through the Dockerized setup in the quickstart, and I was able to successfully build the container, but starting it I'm encountering this error:

    root@ubuntu-s-1vcpu-1gb-sfo2-01:~/owncast# docker run -p 8080:8080 -p 1935:1935 -it owncast
    INFO[2020-07-12T19:20:21Z] Owncast v0.0.0-localdev (unknown)
    FATA[2020-07-12T19:20:21Z] ERROR: valid config/config.yaml is required.  Copy config-example.yaml to config.yaml and edit
    

    I copied the sample config into config/config.yaml before building the container:

    root@ubuntu-s-1vcpu-1gb-sfo2-01:~/owncast# ls -l config
    total 16
    -rw-r--r-- 1 root root 4941 Jul 12 19:10 config.go
    -rw-r--r-- 1 root root 1441 Jul 12 19:18 config.yaml
    -rw-r--r-- 1 root root  842 Jul 12 19:10 configUtils.go
    

    The only line I changed was updating streamingKey to a different value. I also tried copying config-example.yaml directly, and that also failed.

    I'll try the non-Docker approach next, but would definitely like to have this running in a container as an option!

    For context, this is a stock DigitalOcean VPS running Ubuntu 20.04

    opened by mattdsteele 23
  • Migrate to hashed password/key store (#2489)

    Migrate to hashed password/key store (#2489)

    In order to improve Owncast security, the admin password and stream keys are no longer being stored in plaintext, instead using a standard cryptographic hashing process to store them securely.

    This commit not only moves the admin password to storage as a hash, but also splits the StreamKey model into StreamKeyPlainText and StreamKeyHashed to make it clear when, where, and how a stream key is being used in its plaintext and hashed forms. Attempting to store a plaintext key to the database will automatically hash it.

    Since it is no longer possible to send the plaintext admin password and streaming keys to the web UI, they have been removed from the relevant HTTP response objects.

    opened by roadriverrail 21
  • Make all links open in a new tab by default

    Make all links open in a new tab by default

    Share your bug report, feature request, or comment.

    We're doing that in the old UI, but we need to add this to webv2 as well. I believe it's just an additional tag in the html head.

    good first issue Web frontend 
    opened by gabek 21
  • IP banning of users

    IP banning of users

    As it stands, users may clear their storage to bypass bans.
    This feature will make bans also apply to IP addresses. When a ban is made, the username and IP will be banned.

    Small note

    About the development moderation GUI, it seems like you can ban people which disconnected. Due to this, a list may need to be maintained in memory to also ban the IP.

    enhancement chat 
    opened by Semisol 21
  • Plesk does not support our Dockerfile syntax

    Plesk does not support our Dockerfile syntax

    Hello.

    Background:

    I'm trying to get Owncast running via Docker within Plesk. It isn't as simple as docker-compose or just simply running docker normally .


    In my testing to see if indeed it was something that I screwed up on I tested portainer as it uses three ports ( see https://github.com/portainer/portainer/blob/develop/build/linux/Dockerfile#L8..L10 ) and that does work.

    I followed the same sort of setup to get Owncast going, but it seems your EXPOSE combines two ports in the same line.

    I've also done some other digging and experimenting to see if this is just a one off on Plesk being a pain in the you know where but it isn't.

    It seems your EXPOSE of combining two ports on the same line causes issues - see https://github.com/owncast/owncast/blob/develop/Dockerfile#L3

    Sidenote: I actually have Plesk running on a Vultr VPS as I saw on #1446

    opened by spannerman79 17
  • Support text input of :emoji: in chat

    Support text input of :emoji: in chat

    Replaces the typed :emoji: in the chat on client-side with the emoji <img>. Only the valid emoji names get replaced [+bonus point!]. Emoji name lookup is case-insensitive. Supports pasting text with :emoji: in it (you can paste This is a :portalparrot:! and it will be rendered). Copy-pasting of the rendered emoji is also supported! [+extra bonus point! 😉]

    closes #480

    opened by MFTabriz 17
  • Next round of testing!

    Next round of testing!

    Now that the web updates are in I wanted to get some more testing done by people broadcasting through Owncast. Mostly as a way to see how different variables of software and hardware configurations + network conditions, and bitrate configurations work together. It seems like each time we fire it up and actually use it something new is learned both from the broadcasting and viewing side.

    Also since @mattdsteele's wedding is next month (August 8th?) I'd be nice to feel solid about things before then.

    Here's some streaming I hope to schedule:

    • @controlfreakstudio Are you still up for trying out Owncast for a live stream? I'm happy to have you use my server if you'd like, or you can run your own.
    • I'll get @gingervitis to do some Animal Crossing commentary streaming 🐱.
    • My friend Rebecca wants to do a live stream of a book reading.
    • I'll be doing another DJ set stream in the next week or so.

    If anybody knows of anybody who's looking to stream online and wants a place to do it, I'm always happy to host them on my test server goth.land.

    Testing 
    opened by gabek 17
  • fix(deps): update dependency xstate to v4.35.2 (webv2)

    fix(deps): update dependency xstate to v4.35.2 (webv2)

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | xstate (source) | 4.35.1 -> 4.35.2 | age | adoption | passing | confidence |


    Release Notes

    statelyai/xstate

    v4.35.2

    Compare Source

    Patch Changes

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • fix(deps): update dependency chart.js to v4.1.2 (webv2)

    fix(deps): update dependency chart.js to v4.1.2 (webv2)

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | chart.js (source) | 4.1.1 -> 4.1.2 | age | adoption | passing | confidence |


    Release Notes

    chartjs/Chart.js

    v4.1.2

    Compare Source

    Essential Links

    Types

    Documentation

    • #​11006 Fixes missing markdown links in docs

    Development

    Thanks to @​LeeLenaleee, @​dangreen and @​matveycodes


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • Add Google Cast support

    Add Google Cast support

    Share your bug report, feature request, or comment.

    Would be nice to be able to view streams using chrome cast devices without the need to use the desktop tab cast feature.

    Assuming the stream is already using a compatible codec (the default Owncast settings are) the HLS protocol and the mu3p playlists are already compatible with chrome cast devices.

    I've spun up a proof of concept that uses the castjs library. The s post variable can be updated to public Owncast stream and the page will pass it along to a chrome cast device once the button is pressed. This should work on mobile as well as desktop devices on the same network as a Google Cast enabled device.

    The POC page source is below is below

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>Cast Test</title>
    </head>
    <body>
        <button id="cast"> Cast </button>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/castjs/5.2.0/cast.min.js"></script>
        <script>
        var url = new URL(window.location.href);
        var domain = url.searchParams.get("s");
        const cjs = new Castjs();
        document.getElementById('cast').addEventListener('click', function() {
            if (cjs.available) {
                cjs.cast(domain + '/hls/stream.m3u8', {
                    poster     : domain + '/logo',
                    title      : domain,
                    description: 'Owncast live stream'
                })
            }
        });
        </script>
    </body>
    </html>
    

    As of now the POC works for my use case as a link from the Custom Page Content but would be nice to have more properly integrated.

    opened by FireTime 5
  • chore(deps): update dependency babel-loader to v9.1.2 (webv2)

    chore(deps): update dependency babel-loader to v9.1.2 (webv2)

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | babel-loader | 9.1.0 -> 9.1.2 | age | adoption | passing | confidence |


    Release Notes

    babel/babel-loader

    v9.1.2

    Compare Source

    9.1.1 was a broken release, it didn't include all the commits.

    Dependencies updates

    Misc

    New Contributors

    Full Changelog: https://github.com/babel/babel-loader/compare/v9.1.0...v9.1.2

    v9.1.1

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • chore(deps): update dependency @babel/core to v7.20.12 (webv2)

    chore(deps): update dependency @babel/core to v7.20.12 (webv2)

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | @babel/core (source) | 7.20.7 -> 7.20.12 | age | adoption | passing | confidence |


    Release Notes

    babel/babel

    v7.20.12

    Compare Source

    :bug: Bug Fix
    • babel-traverse
    • babel-helper-create-class-features-plugin, babel-plugin-proposal-class-properties
    :nail_care: Polish

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
Releases(v0.0.13)
  • v0.0.13(Nov 27, 2022)

    Owncast v0.0.13 is a very small release targeting mostly bug fixes.

    Since v0.1.0 is taking longer than hoped, this allows some updates to get out between now and then. But all the work for the new Owncast interface is coming along well and I look forward to getting it finished and putting in everyone's hands.

    Changelog

    [0.0.13] - 2022-11-26

    Upgrade instructions from 0.0.12

    1. Stop the service from running. If you're using a pre-installed image through a hosting provider, or setup Owncast to run under systemd you can probably just simply run systemctl stop owncast.
    2. Change to the directory where Owncast is installed on your server.
    3. If you’ve customized your web interface in any way you will want to back up the files you’ve changed or customized.
    4. Re-run the installer as the user you run Owncast under. For example if you are running owncast as the user "owncast": su -c "curl https://owncast.online/install.sh |bash" owncast
    5. Restart the service. If you're running under systemd systemctl start owncast.

    Added

    • Add Fediverse, Matrix and XMPP social links #2044

    Changed

    • Do not log inactionable Federated resolution/verification errors #1992

    • Improve chat input accessibility #2353

    • Treat fediverse usernames as case-insensitive #2155

    • Sanitize user submitted values before logging #2134

    • Username length is now validated server-side #1919

    • Do not allow multiple Fediverse auth attempts. #2000

    Fixed

    • Manually authored social posts are always set to followers-only #2112

    • Fix superfluous response.WriteHeader call error #2157

    • Fix possible security exploit for those with Moderator access. #2257

    • Messages table fixes to improve query performance #2026

    • Fix possible crash with Federated Undo request #2317

    Thank you to our contributors!

    The contributors for v0.0.13 were: brokenintuition, gabek, jprjr, cooliscool and cellularnetwork.

    We also thank all of the fantastic people helping out in the Owncast chat answering questions, testing and providing feedback.

    Thank you to our financial supporters!

    A huge thanks to those giving us to the resources to run servers, have testing environments, host collaboration tools, pay for 3rd party services to test with and the means to experiment with new ideas we wouldn't be able to do otherwise.

    Our project sponsors Okta and Noblestreet.

    And our fantastic donors Simon Michalke, rootbeerdan, Luka Prinčič, Kyle Bronsdon, Flaki, Joel Bradshaw, Paul Lindner, TargetedVisitors, Incognito, nebunez, Merlin, Teklynk, Marius Hoel, Incognito and Michał Sidor.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.13-linux-32bit.zip(17.83 MB)
    owncast-0.0.13-linux-64bit.zip(18.59 MB)
    owncast-0.0.13-linux-arm64.zip(17.59 MB)
    owncast-0.0.13-linux-arm7.zip(17.95 MB)
    owncast-0.0.13-macOS-64bit.zip(19.32 MB)
  • v0.0.12(Jul 9, 2022)

    This release has a handful of features, big and small, to improve the overall Owncast experience, primarily around the core streaming and chat functionality.

    Chat User Menu

    This new dropdown menu should help clarify how you change your name, as it was not always clear to all viewers how to do so.

    Stream Notifications

    To assist streamers in automating their live stream announcements, some new ways to notify your viewers and your community have been added.

    • Browser push notifications
    • Discord
    • Twitter

    Of course the existing "Follow" Fediverse functionality still is the more robust way for a viewer to be notified when you're streaming, as it allows you to send out messages to your followers and allow them to perform some "social" functionality, but with the goal of meeting viewers where they already are, these channels have been added.

    Stream Health and overall Playback Performance

    Using the new Stream Health page in the admin you can monitor the overall playback performance of your stream. While it can't be guaranteed to detect all issues with all players, it should be able to give you relative confidence when things are going well, and help you identity specific issues that you can resolve when troubleshooting.

    It should be noted that only those who are viewing your stream via the Owncast web interface, and only those not using Webkit-based browsers, will have their detailed metrics available. The page will tell you what percentage of the viewers are represented in the numbers.

    Authentication

    Some options for chat user authentication have been added. This allows people to reclaim their identity when people move between browsers, devices, or prefer to use Owncast using private browsing features. This is especially useful if you are a moderator and want to reclaim your moderation role, but in general it's for anybody who wants to have a stable identity in chat. It's not required, and most casual viewers should probably never have to take advantage of it unless they especially want to.

    As a secondary benefit, those who choose to authenticate will have their chat display name locked to their identity and others cannot use it. This should hopefully be a good compromise between locking all display names and locking no display names. However this is still just a display attribute and there's nothing stopping people from creating names that may look similar to yours.

    Authenticated users will have a checkmark next to their name in chat.

    There are two different ways you can authenticate with Owncast chat, allowing you to restore your identity between browsers.

    IndieAuth

    IndieAuth is a decentralized identity protocol that allows an individual's web site to become its own identity provider. Owncast itself, is now an IndieAuth provider you can use to authenticate against Owncast instances, or any other site that supports IndieAuth.

    Fediverse Auth

    For Owncast instances with Fediverse functionality enabled you can be sent a one-time-password that works similarly to when you log in with your phone number on different services. You can use this code to authenticate with Owncast chat. You must allow direct/private messages on your Fediverse account from the Owncast instance.

    Chat Banning via IP

    Users that have been banned from chat will now have their IP address automatically blocked. You can remove IP address blocks from the admin separately from the user ban.

    Established chat user mode

    Enabling this mode will stop newly created chat users from being able to chat. It should be seen as an "anti-troll mode" that you can turn on if some new people drop by your chat just to harass and annoy.

    Prometheus Metrics

    You can now optionally use a Prometheus metrics server to monitor your Owncast instance. You can add /api/admin/prometheus to your Prometheus configuration to consume the metrics.

    Experimental Lower Latency Playback

    Some viewers may enable a new, experimental, feature in the player settings for streams that can benefit from lower latency playback. If you find yourself getting excessive buffering or playback issues with your stream after turning it on it's suggested you not use it at this time. It would also be appreciated if you find issues to let us know what stream you're using this with so we can continue to improve the feature.

    Only viewers using the Owncast web interface and not using a webkit-powered browser will have this feature available. A stable and fast stream is required for this feature to perform its intended function.

    What's next?

    If all goes according to plan this will be the last update before releasing a rewrite of the Owncast web interface. This will allow the project to move faster on the frontend going forward, so big features on the roadmap can be worked on.

    Work is already in progress, but it'll be a long road to feature parity. I hope you'll be patient as the frontend is focused on this next time around.

    This update will impact most users, so as time goes on I'll make sure to update everyone on what to expect, and optionally how to prepare to take advantage of the new features.

    Changelog

    [0.0.12] - 2022-07-09

    Upgrade instructions from 0.0.11

    1. Stop the service from running. If you're using a pre-installed image through a hosting provider, or setup Owncast to run under systemd you can probably just simply run systemctl stop owncast.
    2. Change to the directory where Owncast is installed on your server. On pre-installed environments it may be in /opt/owncast/owncast.
    3. If you’ve customized your web interface in any way you will want to back up the files you’ve changed or customized.
    4. Re-run the installer as the user you run Owncast under. For example if you are running owncast as the user "owncast": su -c "curl https://owncast.online/install.sh |bash" owncast
    5. Restart the service. If you're running under systemd systemctl start owncast.

    Major updates

    Added

    • Option to disable join messages in chat #1582

    • Can set separately set the chat server host #1378

    • Prometheus compatible metrics endpoint #1303

    • Opttionally show geo location data from video viewers #1477

    • Extend the viewers timeline #1478

    • Add a small indicator visually showing a message is from a bot/external service #1172

    • IP banning of users #1534

    • Add videotoolbox codec for macOS #1771

    • Video playback health and performance metrics #793

    • Experimental lower latency playback mode #837

    • Auto-poster for some 3rd party notification channels #1609

    • Web push notifications #1656

    • Owncast can function as an Indieauth provider. #1272

    • Authenticated users' display names are no longer available to others. #1810

    • Add “services” and “metadata” to NodeInfo/2.0 #1922

    • manifest - Add fullscreen mode/change name #1934

    • Troll/Established chat user Mode (like +m on IRC) #1587

    • Chat auth using the Fediverse #1774

    Breaking Changes

    • API endpoint rename: "integrations/chat/updatemessagevisibility" -> /api/integrations/chat/messagevisibility #1966

    Changed

    • Auto-select old text when changing display name. #1754

    • Change cachebust param to random string to support CDNs #1781

    • Change CMD to ENTRYPOINT in Dockerfile #1831

    • Replace hide chat toggle and username change form with chat user dropdown #1648

    • changed followers tab to 24 per page #1855

    Fixed

    • Selecting an emoji immediately when visiting page without focusing text input ignores selection #1419

    • Fix exception when using emoji input in chrome #1782

    • Framerate slider is broken. Can only select lowest and highest values. #1791

    • Fix stat components in hardware admin page #1815

    • The "no" button in the codec confirmation popup does nothing #1809

    • Issue: chat unscrollabe on some resize operations #1830

    • Fix datastore cache warming not firing #1889

    • fix the server name in nodeinfo/2.0 #1907

    • "invalid cross-device link" error when running on a different filesystem #1768

    • [bug] Follow request from GoToSocial causes nil pointer exception #1955

    • Fix API documentation "integrations/chat/updatemessagevisibility" -> /api/integrations/chat/messagevisibility #1966

    • Remove doubled paragraphs around stream title for Fediverse messages. #1927

    • Prevent CSS class injection and directory traversal via custom emojis #1772

    • HLS segment name collision when using the lowest latency buffer option #1778

    • Remote Fediverse servers are caching the instance logo even after its changed, add a cachebust. #1776

    • Remote Fediverse preview images get cached, add a cachebust #1777

    • Viewer chart Y axis strings are formatted weird #1816

    • Cursor when composing chat message appears on the right-hand side of the text field in Firefox #1561

    • Unable to follow an Owncast account from Misskey #1690

    Removed

    • Remove support for uploading SVG logos #1773

    Thank you to our contributors!

    The contributors for v0.0.12 were: funkyhippo, tsmethurst, MFTabriz, t1enne, cr0ax, hufman, zerodytrash, lfuelling and gabek. We also thank all of the fantastic people helping out in the Owncast chat answering questions, testing and providing feedback.

    Thank you to our financial supporters!

    A huge thanks to those giving us to the resources to run servers, have testing environments, host collaboration tools, pay for 3rd party services to test with and the means to experiment with new ideas we wouldn't be able to do otherwise.

    Our project sponsors Noblestreet, Okta and hexploitation.

    And our fantastic donors Simon Michalke, rootbeerdan, Luka Prinčič, Kyle Bronsdon, Flaki, Raffael Rehberger, Joel Bradshaw, Paul Lindner, Real Targeted Traffic, TargetedVisitors, Incognito, nebunez, Merlin, Teklynk, Ole, PlayBox Technology, Guest and Guest.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.12-linux-32bit.zip(17.74 MB)
    owncast-0.0.12-linux-64bit.zip(18.48 MB)
    owncast-0.0.12-linux-arm64.zip(17.53 MB)
    owncast-0.0.12-linux-arm7.zip(17.86 MB)
    owncast-0.0.12-macOS-64bit.zip(19.21 MB)
  • v0.0.11(Mar 5, 2022)

    Welcome to The Fediverse!

    With Owncast v0.0.11 your server can optionally become a part of the Fediverse, an interconnected, but completely independent network of servers where people can discover your stream and get notified of when you go live. Some popular Fediverse services are Mastodon and Pleroma but many services that make up the Fediverse can start to receive posts from your Owncast server.

    With this ability, it gives you something pretty cool: the ability for people to follow your server, share it with their own followers. Your followers now show in a new "Followers" tab in the interface, and as people interact with your server by following, sharing and liking, it will show up in the chat so your biggest supporters get highlighted.

    You'll automatically let your followers know each time you go live, and you can send them messages from the admin letting them know about your future streaming plans.

    This functionality, of course, is disabled by default, as Owncast always wants you to be completely private out of the box. It's up to you to enable this in the admin under the new "Social" config section. But if you'd prefer, you can turn on social "Private Mode" where you have to manually approve each follower that wants to know about your streams, and in that case they will be unable to share your server with others.

    We look forward to continued features being built now that federation with Owncast is enabled.

    A huge thank you to NLnet for funding the development of Owncast Federation through the NGI0 Discovery Fund.

    Note: The Fediverse is the wild west, and while people have been running with this functionality for some time in testing, we don't know what you'll run into. Please let us know if you discover any issues or any services that are not being compatible with Owncast or causing problems with your server.

    Moderators

    Long requested, and now finally here. You can assign moderator privileges to yourself, and any of your chat members and they will have the ability to remove chat messages and ban users directly from the chat, without having to go into the Admin.

    Of course this relies on people keeping their identity between visits to your chat, so those that use private browsing to visit your server will be seen as a completely different chat participant each time, and will no longer have their moderator privileges unless you re-grant them.

    Changelog

    [0.0.11] - 2022-03-05

    Upgrade instructions from 0.0.10

    1. Stop the service from running. If you're using a pre-installed image through a hosting provider, or setup Owncast to run under systemd you can probably just simply run systemctl stop owncast.
    2. Change to the directory where Owncast is installed on your server.
    3. If you’ve customized your web interface in any way you will want to back up the files you’ve changed or customized.
    4. Re-run the installer as the user you run Owncast under. For example if you are running owncast as the user "owncast": su -c "curl https://owncast.online/install.sh |bash" owncast
    5. Restart the service. If you're running under systemd systemctl start owncast.

    Major updates

    Added

    • Promote chat participants to moderators #499

    • Additional target framerates #1138

    • Support path-based S3 storage #1495

    • Inline UI to allow people to perform moderation actions within chat #1291

    • Add a recommendation in the admin to add a second, lower quality if only one is set #1491

    • Add support for checking the local filesystem for static resources #1507

    • Add list of moderators in user admin #1511

    • New admin section for managing ActivityPub settings. #1210

    • Set a short cache expiration on some APIs #1530

    • Add Matrix chat client(s) user agent to our bot list #1581

    • Return user scopes as a part of the chat history API #1586

    • Add admin support for manually composing a post to fediverse followers #1610

    • Set username via optional request headers #1365

    • Add Rocket.Chat to our bot user-agent list #1639

    • Add user icon in header next to user name change form #1655

    • Add alternative configurable list of default usernames #1497

    • Add steam as a Social Platform #1501

    Changed

    • Replace redirect of /embed URLs to random html files and instead return content directly #1281

    • refactor: move from io/ioutil to io and os packages #1546

    • Increase the number of HLS segments in a playlist to increase stability #1552

    • Increase the max size of the chat welcome message #1595

    • Change styling for chat message links #1551

    • "Disable chat" setting is confusing #1330

    • Build outbound webhook execution queue #1510

    • Limit "external site requested your logo" warning message #1668

    Fixed

    • Binding to ::1 fails: too many colons in address #1398

    • Fix possible crash on stream disconnect #1439

    • Fix hashes for standalone video/chat #1472

    • Fix Windows support #1377

    • When a ban occurs not all messages by that user are visibly removed #1350

    • OMX codec no longer showing friendly name and description in admin #1521

    • doing a ctrl+c to copy something closes the chat panel #1201

    • Messages Sent column in admin should either center the value or make column narrower #1580

    • Fix where banned user cannot be added back #1518

    Thank you to our contributors!

    The contributors for v0.0.11 were: jeyemwey, krashanoff, controlfreakstudio, gingervitis, f35f0ef9d0e827dae86552d3899f78fc, UXShawrk, MFTabriz and gabek. We also thank all of the fantastic people helping out in the Owncast chat answering questions, testing and providing feedback.

    Thank you to our financial supporters!

    A huge thanks to those giving us to the resources to run servers, have testing environments, host collaboration tools, pay for 3rd party services to test with and the means to experiment with new ideas we wouldn't be able to do otherwise.

    Our project sponsors Noblestreet and Okta.

    And our fantastic donors Simon Michalke, rootbeerdan, Luka Prinčič, Kyle Bronsdon, Robin, Flaki, Joel Bradshaw, Paul Lindner, Real Targeted Traffic, TargetedVisitors, Tom Hansen, pwxlwrk, Incognito, Niels Digital, nebunez and Merlin.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.11-linux-32bit.zip(13.49 MB)
    owncast-0.0.11-linux-64bit.zip(14.35 MB)
    owncast-0.0.11-linux-arm64.zip(13.60 MB)
    owncast-0.0.11-linux-arm7.zip(13.66 MB)
    owncast-0.0.11-macOS-64bit.zip(15.06 MB)
  • v0.0.10(Oct 6, 2021)

    This is a hot fix to resolve an issue using external S3 compatible storage in v0.0.9: #1455

    There are no other changes and this only impacts those using that feature. See the release notes for v0.0.9 for details around the previous release.

    Upgrade instructions from 0.0.9

    1. Stop the service from running. If you're using a pre-installed image through a hosting provider, or setup Owncast to run under systemd you can probably just simply run systemctl stop owncast.
    2. Change to the directory where Owncast is installed on your server.
    3. If you’ve customized your web interface in any way you will want to back up the files you’ve changed or customized.
    4. Re-run the installer as the user you run Owncast under. For example if you are running owncast as the user "owncast": su -c "curl https://owncast.online/install.sh |bash" owncast
    5. Restart the service. If you're running under systemd systemctl start owncast.
    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.10-linux-32bit.zip(13.68 MB)
    owncast-0.0.10-linux-64bit.zip(14.12 MB)
    owncast-0.0.10-linux-arm64.zip(13.56 MB)
    owncast-0.0.10-linux-arm7.zip(13.61 MB)
    owncast-0.0.10-macOS-64bit.zip(14.66 MB)
  • v0.0.9(Sep 26, 2021)

    Owncast v0.0.9 is a smaller release with a handful of tweaks and fixes. There's not a lot of user-facing changes this time around, but take a look through the below changes and see if there's anything that might impact you.

    One thing that might make your life more convenient going forward is instead of putting in the full video URL /hls/stream.m3u8 when viewing an Owncast stream in an external video player (MPV, Quicktime, VLC) you can just put your root URL to your Owncast server.

    Changelog

    [0.0.9] - 2021-09-26

    Upgrade instructions from 0.0.8

    1. Stop the service from running. If you're using a pre-installed image through a hosting provider, or setup Owncast to run under systemd you can probably just simply run systemctl stop owncast.
    2. Change to the directory where Owncast is installed on your server.
    3. If you’ve customized your web interface in any way you will want to back up the files you’ve changed or customized.
    4. Re-run the installer as the user you run Owncast under. For example if you are running owncast as the user "owncast": su -c "curl https://owncast.online/install.sh |bash" owncast
    5. Restart the service. If you're running under systemd systemctl start owncast.

    Major updates

    Added

    • Add support for loading the root owncast URL directly in 3rd party video applications. #1356

    • Add proper landing page for browsers without the JS support #1139

    • Create external API to enable sending a message directly to a client instead of publicly #1316

    Breaking Changes

    • No longer exit after successful stream key change via the CLI argument #1355

    Changed

    • Auto expand the "Utilities" menu item in admin if an Owncast update is available #1299

    • Increase the sensitivity of the chat rate limiter #1349

    • Make the emoji directory configurable #1174

    • Stop logging 404s to the admin logs #1341

    • Mark viewer as active when downloading an HLS playlist #1343

    • Simplify where HLS segments live on the filesystem so they always live in data #875

    • In the admin don't show the connected client count if we're not showing a list of the clients #1306

    • Do not show user joined chat message if user has recently joined #1406

    Fixed

    • Chat disables when stream ends instead of 5 minutes later #1268

    • GeoIP support not working with 0.0.8 #1304

    • Previous display names are not being displayed in the admin user modal #1277

    • Re-joining chat in the 5min window after disconnect shows the chat as disabled #1311

    • Set a value for player maxPlaylistRetries in the player #1335

    • Markdown rendering ends up with excessive spacing with lists #1315

    • Improve chat auto-scrolling #1324

    • Fix Windows tests #1376

    • Fix transcoding error text #1381

    • Potential local client security problem(s) when pasting DOM elements into chat #1357

    • Fixed USER_JOINED webhooks to have the correct event type name. #1302

    • Fix building on FreeBSD #1243

    Thank you to our contributors!

    The contributors for v0.0.9 were: MFTabriz, unclearParadigm, gabek, RhnSharma, sytranvn and ooa113y. We also thank all of the fantastic people helping out in the Owncast chat answering questions, testing and providing feedback.

    Thank you to our financial supporters!

    A huge thanks to those giving us to the resources to run servers, have testing environments, host collaboration tools, pay for 3rd party services to test with and the means to experiment with new ideas we wouldn't be able to do otherwise.

    Our project sponsors Noblestreet and Okta.

    And our fantastic donors Simon Michalke, rootbeerdan, Luka Prinčič, Kyle Bronsdon, Robin, Flaki, Joel Bradshaw and Paul Lindner.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.9-linux-32bit.zip(13.68 MB)
    owncast-0.0.9-linux-64bit.zip(14.12 MB)
    owncast-0.0.9-linux-arm64.zip(13.56 MB)
    owncast-0.0.9-linux-arm7.zip(13.61 MB)
    owncast-0.0.9-macOS-64bit.zip(14.66 MB)
  • v0.0.8(Aug 11, 2021)

    Owncast v0.0.8 features a rewrite of the chat system to improve performance, stability, and user moderation along with changes intended to reduce unauthorized access to chat and its history.

    As with all updates it also includes many fixes and improvements to continue improving the self-hosted streaming experience. Please read through the below release notes and let us know what you think about this release. Your feedback drives the roadmap of Owncast, and we want to build the things that are most useful to you.

    Here are some notable chat updates you may be interested in:

    Moderation

    While Owncast has had existing support for hiding chat messages, this new release is the first time you can ban an entire user from chat. By visiting the new Chat -> Users admin page and seeing the list of currently connected chat users, you can press the "Ban" button to disconnect them from chat, hide all their messages, and ban that user from reconnecting.

    Disabling chat

    Turning off chat in the settings previously would hide the chat UI from your viewers, but the chat functionality still was enabled behind the scenes. Now if you turn it off chat is no longer supported. Because you can turn off chat completely the number of viewers is no longer counted by the number of people connected to chat, instead it is counted separately.

    Chat usernames

    Under the new Chat settings page in the admin you can add a list of names or words you don't want to allow people to use in their chat usernames. This way you can stop people from having fake names like "Admin" to mislead people.

    Also, default usernames are no longer "UserXX", but instead a randomly generated string.

    Chat connection limits

    Previously we didn't suggest more than 1,000 people to be connected to the Owncast chat, but with this revision it's been tested to many times that, though you may see more or less depending on your server and how it's configured. In general most people should no longer be limited in chat capacity.

    Custom chat emoji

    You can now input, and autocomplete, custom emoji in chat by typing :emojiname:. Hover over emoji in the chat to see the name of it. By typing part of an emoji, such as :dancing and hitting tab it will attempt to auto-complete it for you just like it does with usernames when you type @user and tab.

    New standalone embeddable chat

    There's now a standalone chat interface located at /embed/chat/readwrite that you can embed in an iframe anywhere you like, allowing you to easily have the full chat in a custom interface that you design.

    This is also useful for streamers who just want to bring up a full-screen chat to use when streaming.

    Changelog

    [0.0.8] - 2021-08-11

    Upgrade instructions from 0.0.7

    1. Stop the service from running. If you're using a pre-installed image through a hosting provider, or setup Owncast to run under systemd you can probably just simply run systemctl stop owncast.
    2. Change to the directory where Owncast is installed on your server. In a pre-installed hosting scenario it's likely in /opt/owncast.
    3. If you’ve customized your web interface in any way you will want to back up the files you’ve changed or customized.
    4. Re-run the installer as the user you run Owncast under. For example if you are running owncast as the user "owncast": su -c "curl https://owncast.online/install.sh |bash" owncast
    5. Restart the service. If you're running under systemd systemctl start owncast.

    Breaking changes

    As noted previously, two APIs will no longer be available:

    • /api/integrations/chat/user is no longer supported, removing the ability to send a chat message as arbitrary users. #1092

    • /api/chat is no longer publicly available. #1085

    Major updates

    Added

    • Allow binding the web server port to a specific address #981

    • Add Linux ARM64 release #1053

    • Add send button for the chat in mobile environments #1081

    • Add support for blocking specific chat usernames #782

    • Allow the customization of the logging path #1040

    • Chat refactor + persistent backing chat users #1163

    • Add support for blocking a chat user #1096

    • Update API to send chat messages as a specific bot/integration via their access token #1092

    • add target="_blank" to custom user content before rendering #1220

    • Support text input of :emoji:, and show the title of emoji in title attribute #480

    • Provide command line option for setting the RTMP listening port #1001

    • Offline Web UI: Display when the last time there was a stream #1111

    • You can specify the directory to save backups to #1099

    • Add standalone chat with ability to send messages #531

    Changed

    • Replace viewer counting with a simple ping instead of websocket connections #790

    • Remove blank space when no external actions are rendered #1119

    • Don't show the viewer count in the embed player when offline #1088

    • Collapse news content in the admin home page #1137

    • Don't send user joined notification if chat/stream is disabled #1224

    • Hide viewer count when offline #1091

    • Do not keep an unlimited backlog of chat history in the database #1152

    • Lock down /api/chat from external access #1085

    • Do not try to connect to the websocket if chat is disabled #1135

    • Keep persistent logs on disk #908

    • Hopefully be able to run on Windows now #390

    • Atomically save the thumbnail and preview Gif #1279

    Fixed

    • Description text with a URL doesn't auto linkify #1010

    • System messages with URLs aren't auto-linked #1009

    • Default stream output name is longer than the maximum allowed length #1037

    • Admin viewers table doesn't wrap properly and exceeds width of the window #1024

    • Width of the admin viewers page adjusts with the content of the viewers table #842

    • "other" social handle URL doesn't appear in admin view #998

    • Error editing "other" type social handle #1008

    • Instability when using Restream #999

    • Typing in the emoji search box triggers player keyboard shortcuts #1025

    • Player video quality setting icon is sometimes not centered #1044

    • Fix rtmp secret validation to allow / (#1069) #1070

    • Fix crash in datastore cache #1067

    • Narrow screens break 3rd party content modals #1020

    • The sort order of player video qualities is buggy #1132

    • Change to Configuration → Storage → Optional Settings does not enable Save button #1108

    • Don't allow people to set their instance name to an empty string (or only whitespace) #967

    • og:description tag is blank in HTML headers when sharing an Owncast link #1184

    • Stop the chat from animating away when chat is disabled #1007

    • Don't remove non-existing files if video config changed while online #1147

    • Admin hardware values default to "undefined", should just default to zero #874

    • Better feedback when Storage Endpoint is invalid #1000

    • Cache-Control header is wrong when using S3 #1047

    • Streaming URL on main admin page is missing the port #1049

    • Admin chat message moderation UI selected state is a bad color #1120

    Removed

    • Remove config file migrator #1023

    • Remove YouTube embedding in the chat #1079

    • Remove the unnecessary websocket connection from the embed player #1164

    • /api/integrations/chat/user is no longer supported, removing the ability to send a chat message as arbitrary users. #1092

    • /api/chat is no longer publicly available. #1085

    • Websocket is no longer publicly available.

    Thank you to our contributors!

    The contributors for v0.0.8 were: muesli, jeyemwey, rAcHekLoS, geekgonecrazy, gingervitis, gabek, Patil2099, thilobillerbeck, soham4abc, leuc, tomleb, RhnSharma, MFTabriz, jyggiz and nodomain. We also thank all of the fantastic people helping out in the Owncast chat answering questions, testing and providing feedback.

    Thank you to our financial supporters!

    A huge thanks to those giving us to the resources to run servers, have testing environments, host collaboration tools, pay for 3rd party services to test with and the means to experiment with new ideas we wouldn't be able to do otherwise.

    Our project sponsors Noblestreet, Okta, and our fantastic donors Simon Michalke, rootbeerdan, Luka Prinčič, Kyle Bronsdon, Guest, Robin, Flaki, ha2tim Gye-Nyame, Raffael Rehberger, Chaim Krause, Guest and Jnktn.tv.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.8-linux-32bit.zip(13.40 MB)
    owncast-0.0.8-linux-64bit.zip(13.84 MB)
    owncast-0.0.8-linux-arm64.zip(13.28 MB)
    owncast-0.0.8-linux-arm7.zip(13.34 MB)
    owncast-0.0.8-macOS-64bit.zip(14.38 MB)
  • v0.0.7(May 15, 2021)

    This release focuses on a handful of things that should improve the day to day usage of Owncast. The biggest being the ability to use hardware accelerated video codecs and free up your CPU if you're running on dedicated hardware. This is great for people who are hosting from home, even on things like a Raspberry Pi. Other additions people have asked for such as being able to upload your logo directly from the admin, hiding chat, custom CSS, being able to manually select a video stream quality from the player and more are included in this update. Read the below changelog for more details.

    Upgrade instructions from 0.0.6

    1. Stop the service from running via whatever method you have Owncast running.
    2. Download the updated Owncast release for your platform.
    3. Move the zip file of 0.0.7 to your previous install location.
    4. If you've customized your web interface in any way you will want to back up the files you've changed or customized.
    5. Unzip the file, allowing it to overwrite old files.
    6. Restart the service.

    Beta: The Owncast installer has support for upgrades, but this functionality is new. So feel free to give it a try by re-running it in your Owncast directory.

    For installing from scratch, see the Quickstart.

    Breaking changes

    • Remote images will no longer be supported in chat. There were more cons than pros to have this, so it has been removed.
    • Values around the Latency Buffer have been changed and a setting you selected in a previous release may not result in the exact same functionality as we continue to tweak the values for best performance.

    Major updates

    Hardware + Additional Codec support

    This release adds initial support for using different video codecs in your encoding. If you have hardware, drivers, and software that supports it, you might be able to use VA-API, NVENC (nvidia) or OpenMAX (Raspberry Pi) codecs. Read more about the effort involved and the requisite software you will need to have installed in our documentation.

    News in the admin

    We added a general purpose place to put information that may be of interest to people operating Owncast instances. Since we're not focused on having a social media presence, we wanted a simple way to reach out to people running Owncast if there's anything useful or important. This simply pulls a static RSS feed from our web site that is hosted on Github pages, so we have no logs of this request. Additionally we wipe out the referrer value in this request. Feel free to reach out if you have any concerns.

    More detailed logging

    To assist people in troubleshooting things that go wrong, this release offers more detailed logging around video. You may see more warnings than you're used to seeing, and generally if your server is functioning properly you can ignore them. However, feel free to reach out if you are seeing warnings that you're finding unhelpful and we will make sure those warnings are cleared up in future releases.

    Others

    • You can now give stream output variants names and they'll be displayed in the player for viewers to manually select.
    • 3rd party content modal for building your own simple UI that can be popped up within the Owncast web page.
    • Chat can be hidden.
    • You can upload your logo via the admin.
    • You can do some basic CSS overrides via the admin.

    Changelog

    [0.0.7] - 2021-05-15

    Added

    • Multiple codec selection for hardware accelerated encoding #892, #336
    • Ability to select quality from web player #655
    • Add name to stream output variants #743
    • Allow system messages to utilize full html for styling #747
    • Allow admins to disable the chat #472
    • 3rd party actions + content modal #679
    • Add noreferrer to all Owncast and Owncast-admin links to owncast.online documentation #822
    • Add ability to upload logo via the admin #716
    • Show initial loading spinner on the player #848
    • Show news/updates in the admin #865
    • Provide RTMP URL in the admin page next to the stream key #861
    • Detect if ffmpeg is installed via snap #762
    • Add more user-facing helpful error messages from the transcoder #763
    • Add css page styling form in the admin #718
    • Add explicit FLoC opt-out headers in all http responses #939
    • Running OwnCast with webserverport will save that port in the config #860
    • Page loading background/splash image #849
    • Extend keyboard controls #670
    • Make transparency of message bubbles overridable via CSS #910

    Fixed

    • Guard against instance continuing to ping the directory API after stream has ended #600
    • Changing the Sever URL in the admin should not appear to reset Name and About #854
    • Chat message type check can cause crash #856
    • Admin development: Broken images #798
    • Admin social handles interface can span wider than its container #845
    • Use a unique path for the fifo pipe to allow multiple copies to run on a single machine #883
    • Resolve an issue impacting chat moderation not hiding messages #809
    • Fix issue where local hls storage may not exist if number of output streams changed #940
    • Play button would display over the header bar when scrolling #951

    Changed

    • Chat welcome message is now customizable, but empty/disabled by default #723

    Removed

    • Limit image loading to only come from the local server. No more remote images in chat. #756

    Notes about future releases

    This will be the the last release to allow external access to the websocket. If you have built tools or utilities that utilize getting chat events it is recommended that you migrate to supported 3rd party APIs instead. If you have a use case that doesn't fit these APIs please let us know and in the future we may find a safe way to support the features you require.

    Thank you to our contributors!

    Thank you to the contributors for v0.0.7: nebunez, gabek, thilobillerbeck, aral, gingervitis, controlfreakstudio, MFTabriz as well as all of the fantastic people helping out in the Owncast chat answering questions, testing and providing feedback.

    Thank you to our financial supporters!

    Thank you to those financially supporting Owncast. The project sponsors Noblestreet, Okta and our awesome donors incognito, Guest, Simon Michalke, GoMage, rootbeerdan, GTX, John DeAscentis, Luka Prinčič, Kyle Bronsdon, Guest and Alan Peterson.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.7-linux-32bit.zip(13.40 MB)
    owncast-0.0.7-linux-64bit.zip(13.84 MB)
    owncast-0.0.7-linux-arm7.zip(13.34 MB)
    owncast-0.0.7-macOS-64bit.zip(14.38 MB)
  • v0.0.6(Mar 8, 2021)

    0.0.6 has quite a few changes that impact you, so please take a moment to read about the changes in their entirety.

    Upgrade instructions from 0.0.5

    1. Stop the service from running.
    2. Move the zip file of 0.0.6 to your previous install location.
    3. If you've customized your web interface in any way you will want to back up the files you've changed or customized.
    4. Unzip the file, allowing it to overwrite old files.
    5. Restart the service.

    Breaking changes

    • The config file has been removed.
    • The "server title" value has been removed and the "server name" is used everywhere instead.
    • Audio transcoding settings have been removed to simplify configuration as we haven't been encouraging people to convert audio, and as far as I can tell people haven't been using it. Audio will pass through the source audio as it has previously.
    • Peak viewer counts have been removed from the public-facing status API. #771

    Major updates

    Admin

    Beginning with 0.0.6 you will configure your Owncast server via the admin at /admin. You'll be able to make changes faster, easier, and without restarting your server. We hope with this updated interface that you'll be able to make simpler and more informed decisions about how to configure your server and video settings.

    Please share any feedback you have as we want to continue to improve and make it easier and faster for you to run and manage your streams.

    Stream title

    You'll now see in the admin a text field for adding an optional "Stream Title", a way to describe what your current stream is. This is especially useful for people who may stream multiple different things in one session, or every day have new content that you'd like to call out. So you can set it to "Playing Assassin's Creed", and then change it to "Doing some live coding".

    Third party integration & add-on APIs

    Owncast now has the ability for you to build your own add-ons and integrations on top of it. Some good examples are chat bots, video stream overlays, and sending external actions into chat such as notifying people when somebody has donated or followed.

    Learn more about these APIs and you can start building on top of your Owncast server. Feel free to ask us any questions as this is brand new, and we want to give you what you need to build great things.

    Backups

    The backup directory will include a periodic backup of your Owncast server data. Save this with other system data you backup and you'll be able to restore this data later if it's ever needed.

    Owncast Directory

    The directory can now be easily enabled on your General settings page. We look forward to seeing everyone's streams show up there if you're looking for viewers, or are streaming something that's publicly available.

    Changelog

    [0.0.6] - 2021-03-08

    Added

    • Show a user-facing error when setting ffmpeg to an invalid path #691
    • New WYSIWYG page content markdown editor #546
    • New config file to 0.0.6 migrator #576
    • Owncast database gets backed up hourly #549
    • New admin page for managing access tokens #603, #575
    • Outbound webhooks for 3rd party integration #556, #574, #602
    • Toggle visibility of a single message for chat moderation #568
    • Add support for current stream session title #391
    • Create command line flag to reset the stream key #665
    • Enable Spacebar key to pause/play video #579
    • Add support to set web server port via command line #674
    • New "user joined" message in chat if you have previously saved your username. #268

    Changed

    • Completely manage your Owncast instance using the web admin.
    • Reduce the amount of chat backlog we return #548
    • Change the offline visual state of admin viewers page #662
    • Log hardware utilization messages as warnings instead of errors #640
    • Do not count connected clients when a stream is not active #422
    • Change logo to live in data instead of webroot #699

    Removed

    • config.yaml has been removed and is no longer supported for configuration.
    • Remove showing the stream key in admin home page dashboard #615
    • Peak viewer counts have been removed from the public-facing status API. #771

    Fixed

    • Under very high load fix a fatal error that can be thrown when file limits are reached #623
    • Fix pinch zooming on mobile Safari affecting the responsive site behavior #594
    • Remove a crash on certain RTMP disconnects #673
    • Some specific RTMP hardware is resulting in an admin error, work around that until we can get access to the hardware. #635
    • Return the optional scaled height and/or width value in admin serverStatus API. #769.

    Contributors

    Thank you to geekgonecrazy, gabek, nebunez, petersveter108, thilobillerbeck, gingervitis, jeyemwey, felix-engelmann, earnestma, graywolf336, ForestJohnson as well as all of the fantastic people helping out in the Owncast chat answering questions for people trying out Owncast for the first time.

    Support the future of Owncast

    We've been asked to support donations so people can help support the project, so now we are! We're ready to go on OpenCollective and would love you to check it out.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.6-linux-32bit.zip(12.47 MB)
    owncast-0.0.6-linux-64bit.zip(12.91 MB)
    owncast-0.0.6-linux-arm7.zip(12.41 MB)
    owncast-0.0.6-macOS-64bit.zip(13.44 MB)
  • v0.0.5(Jan 13, 2021)

    Owncast v0.0.5 focuses primarily on some basic chat moderation, enabling the admin to remove chat messages

    Upgrade instructions from 0.0.4

    1. Stop the service from running.
    2. Backup your config.yaml and any other files you may have customized and want to save or refer to later.
    3. Move the zip file of 0.0.5 to your previous install location.
    4. Unzip the file, allowing it to overwrite old files.
    5. Restart the service.

    Changelog

    Owncast Core:

    • Feat: Basic chat moderation, allowing removal of messages #524
    • Feat: Limit how quickly people can send chat messages to guard against chat message flooding #484
    • Feat: Use "new" style S3 hosts #497
    • Feat: Verify version of ffmpeg at launch #587
    • Fix: Exit if no version of ffmpeg can be found #554
    • Fix: Limit caching of HLS playlists #570
    • Fix: Fix possible crash in S3 performance monitoring #578

    Web Interface:

    • Feat: Social links now have the rel="me" attribute #511
    • Feat: Social links use SVG icons #515
    • Feat: Added Ko-Fi platform to social links #525
    • Feat: Added KeyOxide platform to social links #510
    • Feat: Do not auto-close emoji picker after selecting an emoji #612
    • Feat: Workarounds for AdBlockers blocking social links to external profiles #529

    Web Interface:

    • Fix: Fix layout issues that can take place on iPads #572

    Admin Interface:

    • Feat: Allow sorting viewers table by connected time #540
    • Feat: Add help section with links to documentation #541

    Breaking changes

    There have been no breaking changes in this release.

    APIs

    The features regarding chat message moderation brought new endpoints:

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.5-linux-32bit.zip(12.56 MB)
    owncast-0.0.5-linux-64bit.zip(12.98 MB)
    owncast-0.0.5-linux-arm7.zip(12.50 MB)
    owncast-0.0.5-macOS-64bit.zip(13.49 MB)
  • v0.0.4(Dec 29, 2020)

    v0.0.4 comes with several small updates and bug fixes.

    Upgrade instructions from 0.0.3

    1. Stop the service from running.
    2. Backup your config.yaml and any other files you may have customized and want to save or refer to later.
    3. Move the zip file of 0.0.4 to your previous install location.
    4. Unzip the file, allowing it to overwrite old files.
    5. Restart the service.

    Changelog

    Owncast Core:

    • Feat: Add build support for ARM computers like the Raspberry PI. #470 #471
    • Feat: Add option to change the port of the RTMP server. #454 #475
    • Feat: Add sanity check for ffmpeg when launching Owncast. #490

    Web Interface:

    • Fix: Show a more detailed error message if websocket cannot connect. #468
    • Fix: Layout of tags if there are too many for the width of the window. #500
    • Fix: Problem where in some rare cases the player can get into an infinite loop trying to update the HLS playlist. #415
    • Feat: Hide viewer count when offline. #428
    • Feat: Display notification in the title if a message comes in or a stream starts and you've navigated away. #426
    • Fix: Rename social icons Javascript file so uBlock Origin doesn't block it. #491

    Admin Interface:

    • Fix: Remove possible duplicate rows in viewer table. #452
    • Fix: The wrong month may be displayed in the admin viewers graph. #459
    • Fix: Case where old users may continue to show up in admin viewers table after they are gone. #421

    Breaking changes

    There have been no breaking changes in this release.

    APIs

    There are no API changes in this version. You can find the complete set of APIs by visiting the API documentation.

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.4-linux-32bit.zip(12.20 MB)
    owncast-0.0.4-linux-64bit.zip(12.61 MB)
    owncast-0.0.4-linux-arm7.zip(12.13 MB)
    owncast-0.0.4-macOS-64bit.zip(13.13 MB)
  • v0.0.3(Dec 14, 2020)

    Installer

    There is now a quick installer you can use to install the latest release. See a demo of it in action.

    curl -s https://owncast.online/install.sh | bash
    

    Owncast Admin

    v0.0.3 introduces the web admin dashboard that you can use to get an overview of your owncast server.

    Visit /admin and login with admin as the username and your stream key as the password.

    We will continue to add functionality to this over time, so please let us know how it works for you and if you have any feedback.

    Upgrade instructions from 0.0.2

    1. Stop the service from running.
    2. Backup your config.yaml and any other files you may have customized and want to save or refer to later.
    3. Move the zip file of 0.0.3 to your previous install location.
    4. Unzip the file, allowing it to overwrite old files.
    5. Edit your config.yaml file and change the logo entry to be a single item, no longer a small and large. If you're using the default then it should look like the following: logo: /img/logo.svg. Take note the old logo images have been changed to logo.svg.
    6. Move the stats.json file to data.
    7. Move your content.md file to data if you have one.
    8. Restart the service.

    Breaking changes

    • How your logo is set in the config file has changed. See upgrade instructions.
    • chat.db has been renamed to owncast.db and moved to the data directory. You should delete your old chat.db file.
    • content.md has moved to to /data.
    • stats.json has moved to /data.
    • Optional chatDatabase command line flag is moved to database. chatDatabaseFile in config changed to databaseFile.

    Changelog

    • Fixes for possible bugs in username highlighting in chat. #156
    • Logo requirements have been simplified to only require a single logo to be specified in the config. #373
    • Viewer counts are now limited to the number of people viewing from the owncast web interface. #323
    • Stream length can now specify "days". #307
    • Fix for the video thumbnail flickering as it updates. #205
    • Placing a copy of ffmpeg into the same directory as owncast will now use that copy. #276
    • Updated chat message design with removed avatars. #253 #222 #119
    • Removed need for client-side markdown parsing. #235
    • Fix for an exception being thrown when zero socialHandles are supplied. #202
    • Video player volume is now saved when changing it. #175
    • The web app Javascript assets are no longer being pulled from a remote CDN. #189
    • Fix for video getting cut off on Firefox. #210
    • Large play button is re-displayed when the video player is paused. #201
    • Seek bar has been removed from the player. #171
    • Fix for crash when some RTMP sources send unexpected payloads. # 340
    • An internal refactor of the video pipeline. #151
    • offlineContent is no longer specified in the config file.

    APIs

    This release added some basic read-only APIs for use in the new admin dashboards. They are authenticated against your stream key just like the admin site is.

    You can find the complete set of APIs by visiting the API documentation.

    API Documentation

    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.3-linux-32bit.zip(12.19 MB)
    owncast-0.0.3-linux-64bit.zip(12.60 MB)
    owncast-0.0.3-macOS-64bit.zip(13.11 MB)
  • v0.0.2(Sep 28, 2020)

    This release brings a major refactor of the web UI along with the ability to embed Owncast into your own site easier, add custom emoji in chat, and more!

    Visit the documentation to read more about how to take advantage of embedding and custom emoji.

    Available on docker: docker pull gabekangas/owncast:0.0.2

    Upgrading from v0.0.1

    This release has a rewrite of the web frontend, so any customization you made previously will need to be re-applied to this new web app. The simplest way to upgrade is just overwrite the old version with the new version, but it won't delete any old files that are no longer used.

    However, you're free to upgrade any way you like, but make sure your chat.db, config.yaml, webroot/static/content.md and stats.json files are saved.

    1. Stop the service from running.
    2. Move the zip file of 0.0.2 to your previous install location.
    3. Unzip the file, allowing it to overwrite old files.
    4. Restart the service.

    Changelog

    • Rewrite of the web interface with Preact, removing Vue.
    • Add support for embedding chat externally.
    • Add support for embedding the video player externally.
    • Your username will get highlighted in chat when mentioned.
    • Emoji picker w/ custom emoji support.
    • Autocomplete usernames in composing chat messages by hitting tab.
    • Improve support for autolinking, and embedding YouTube or Instagram links in chat.
    • Server alerts to the console when there is excessive hardware utilization.
    • Updated version of Video.js and associated http-streaming library.
    • Improve max bitrate compatibility with HLS spec.
    • Stop jumping to bottom of chat when scrolling and reading previous messages.
    • Username colors are tweaked to be easier to read.
    • Improved mobile layout in the web UI.
    • Remove Cache-Control header when sending to external S3 storage to support Digital Ocean Spaces.
    • Stream gets cleaned up after 5 minutes of being disconnected.
    Source code(tar.gz)
    Source code(zip)
    owncast-0.0.2-linux-32bit.zip(9.42 MB)
    owncast-0.0.2-linux-64bit.zip(13.37 MB)
    owncast-0.0.2-macOS-64bit.zip(12.91 MB)
  • v0.0.1(Aug 8, 2020)

    In honor of @mattdsteele and @JCake live streaming their wedding using Owncast tomorrow, here's the first release version.

    We've been testing, doing events and enjoying using Owncast, so I think it's time to have a release version that others can start using as well.

    Still lots of exciting updates going on, but here's finally something that you can start using. Feel free to reach out and let us know what you're using Owncast for, or if you have any questions.

    This release is also on Dockerhub if that's convinient for you.

    docker pull gabekangas/owncast:0.0.1
    

    image

    On Dockerhub

    Congratulations Matt and Jessica!

    Source code(tar.gz)
    Source code(zip)
    owncast-linux-0.0.1.zip(9.52 MB)
    owncast-macOS-0.0.1.zip(9.95 MB)
Owner
Owncast
A self-hosted live stream server with chat features.
Owncast
Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8)

go-m3u8 Golang package for m3u8 (ported m3u8 gem https://github.com/sethdeckard/m3u8) go-m3u8 provides easy generation and parsing of m3u8 playlists d

Tan Quang Ngo 102 Nov 19, 2022
🔥 Golang live stream lib/client/server. support RTMP/RTSP/HLS/HTTP[S]-FLV/HTTP-TS, H264/H265/AAC, relay, cluster, record, HTTP API/Notify, GOP cache. 官方文档见 https://pengrl.com/lal

lal是一个开源GoLang直播流媒体网络传输项目,包含三个主要组成部分: lalserver:流媒体转发服务器。类似于nginx-rtmp-module等应用,但支持更多的协议,提供更丰富的功能。lalserver简介 demo:一些小应用,比如推、拉流客户端,压测工具,流分析工具,调度示例程序等

yoko 1.8k Jan 1, 2023
live streaming server in golang

中文 Simple and efficient live broadcast server: Very simple to install and use; Pure Golang, high performance, and cross-platform; Supports commonly us

BigSillyBear 27 Nov 10, 2022
A live streaming tool more suitable for non-graphical servers

KPlayer KPlayer可以帮助你快速的在服务器上进行视频资源的循环直播推流。

null 237 Jan 2, 2023
Go-video-preview-ffmpeg-wrapper - A simple helper wrapper to generate small webm video previews using ffmpeg, useful for web previews.

Go-video-preview-ffmpeg-wrapper A simple helper wrapper to generate small webm video previews using ffmpeg, useful for web previews. Getting Started u

Robert van Alphen 0 Jan 5, 2022
Personal video streaming server.

tube This is a Golang project to build a self hosted "tube"-style video player for watching your own video collection over HTTP or hosting your own ch

davy wybiral 241 Jan 5, 2023
Stream video from ffmpeg to webrtc

ffmpeg-to-webrtc demonstrates how to send video from ffmpeg to your browser using pion.

Artur Shellunts 877 Dec 28, 2022
LiveKit - Open source, distributed video/audio rooms over WebRTC

LiveKit is an open source project that provides scalable, multi-user conferencing over WebRTC. It's designed to give you everything you need to build real time video/audio capabilities in your applications.

LiveKit 4.4k Jan 9, 2023
Live on-demand transcoding in go using ffmpeg. Also with NVIDIA GPU hardware acceleration.

Go live HTTP on-demand transcoding Transcoding is expensive and resource consuming operation on CPU and GPU. For big companies with thousands of custo

Miroslav Šedivý 107 Dec 16, 2022
Short video direct link acquisition 短视频直连获取工具

Glink 短视频去水印一键解析应用 Short video direct link acquisition 短视频直连获取工具 Glink是一款基于go语言开发的短视频解析应用,前端使用vue+argon主题,后端使用go-fiber框架,支持web在线模式、客户端模式。

佰阅 156 Dec 7, 2022
Quik.do is a video conferencing tool.

Quik.do is a video conferencing tool.

Bora Tanrıkulu 143 Jan 3, 2023
Go4vl is Go library for working with the Video for Linux API (V4L2) natively, without any C bindings.

go4vl A Go library for working with the Video for Linux user API (V4L2). Gov4l hides all the complexities of working with V4L2 and exposes idiomatic G

Vladimir Vivien 143 Dec 23, 2022
A simple library to extract video and audio frames from media containers (based on libav).

Reisen A simple library to extract video and audio frames from media containers (based on libav, i.e. ffmpeg). Dependencies The library requires libav

NightGhost 77 Jan 2, 2023
Project to get Youtube video descriptions and search those videos as required

FamPayProject Project to get Youtube video descriptions and search those videos as required Prerequisities Postgres DB for persisting data Youtube Dat

null 0 Nov 5, 2021
Synthetic media is a realistic transformation of audio and video using artificial intelligence.

Synthetic media is a realistic transformation of audio and video using artificial intelligence.

null 1 Nov 20, 2021
Video converter with golang

Requirements Debian-like system (ubuntu, mint, etc...) with apt package manager Golang >1.15 Command tool make (use sudo apt install make -y to instal

Anaxita 2 Sep 10, 2022
golang function that download a video from youtube, and convert it to a mp3 file using ffmpeg

echedwnmp3 echedwnmp3 is a function that download a video from youtube, and convert it to a mp3 file using ffmpeg example package main import(echedwn

pai 4 Dec 7, 2021
lmmp3 is a little golang library that download a video from youtube, and convert it to a mp3 file using ffmpeg

lmmp3 lmmp3 is a function that download a video from youtube, and convert it to a mp3 file using ffmpeg You need to have installed ffmpeg in your syst

pai 8 Aug 12, 2022
ffcommander - An easy frontend to FFmpeg and Imagemagick to automatically process video and manipulate subtitles.

% FFCOMMANDER(1) ffcommander 2.39 % Mikael Hartzell (C) 2018 % 2021 Name ffcommander - An easy frontend to FFmpeg and Imagemagick to automatically pro

Mikael Hartzell 2 May 9, 2022