O

owncast

SHA-256
11.2k stars·Video & Audio Download·SHA-256 checksum verified

Take control over your content and run your own live streaming server. Open source, self-hosted, and compatible with OBS.

Smart Download

Download Download Version

v0.2.5 · 18.3 MB

Self-host your live streams with full control over content, audience, and moderation.

Core Features

  • Self-hosted – your data stays on your server
  • Compatible with OBS, Streamlabs, and any RTMP broadcaster
  • Built-in real-time chat
  • Customizable web frontend and theme
  • Admin dashboard for moderation and settings

What It Can't Do

  • •Requires public IP or tunneling (e.g., frp) for external access,Recommended to use a reverse proxy (Nginx) for HTTPS,Stream quality depends on your server bandwidth and encoding settings,Native Windows not supported – use WSL2 or Docker,Designed for single streamer / small community, not multi-channel

Use Cases

  • Personal game streaming without platform ads or fees
  • Corporate internal training or events with data privacy
  • Community or club live streams with full audience control
  • Alternative to Twitch/YouTube Live for content freedom

Detailed Introduction

Owncast is an open source, self-hosted, decentralized live video streaming and chat server. It lets you run your own live streams similar to Twitch or YouTube Live, but with complete ownership over your content, interface, moderation, and audience. You can use your existing broadcasting software (OBS, Streamlabs, etc.) via RTMP. It includes a built-in chat system, customizable web frontend, and administrative controls. Owncast is designed for single users or small communities who want freedom from big platforms.

Troubleshooting & FAQ (2)

Troubleshooting
How to fix 'JSON.parse: unexpected character at line 1 column 1 of the JSON data' error and repeated admin login prompts when uploading or resetting favicon in Owncast v0.2.5?

This is a known built-in bug of Owncast v0.2.5 affecting both favicon upload and reset functions. The backend incorrectly returns a 401 Unauthorized non-JSON response for these endpoints, which triggers the frontend JSON parsing error, and causes repeated admin credential prompts even if you enter valid login information. The fix has been merged in pull request #4879, upgrade to an official Owncast release newer than v0.2.5 to resolve this issue.

GitHub Issue #4877
Troubleshooting
How to fix Owncast viewer or embed showing "Application error: a client-side exception" when localStorage is null or blocked?

This affects Owncast 0.3.0+ with next-export-i18n up to 2.4.3. Its useSelectedLanguage() reads window.localStorage.getItem("next-export-i18n-lang") without a guard, even when languageDataStore: 'query' is configured. A null localStorage in Android WebView or a SecurityError in a third-party iframe therefore crashes the React tree.

Android WebView workaround:

webView.settings.domStorageEnabled = true

Java:
webView.getSettings().setDomStorageEnabled(true);

Permanent Owncast fix: install an in-memory Storage shim before React renders, such as at the top of pages/_app.tsx or in a module imported first:

if (typeof window !== 'undefined') {
  const createMemoryStorage = (): Storage => {
    let data: Record<string, string> = {};
    return {
      getItem: key =>
        Object.prototype.hasOwnProperty.call(data, key) ? data[key] : null,
      setItem: (key, value) => {
        data[key] = String(value);
      },
      removeItem: key => {
        delete data[key];
      },
      clear: () => {
        data = {};
      },
      key: index => Object.keys(data)[index] ?? null,
      get length() {
        return Object.keys(data).length;
      },
    };
  };

  try {
    if (!window.localStorage) throw new Error('localStorage is unavailable');
    window.localStorage.getItem('__owncast_storage_test__');
  } catch {
    Object.defineProperty(window, 'localStorage', {
      configurable: true,
      value: createMemoryStorage(),
    });
  }
}

The viewer and /embed/video then render normally; stored values simply do not persist across reloads in restricted environments. Alternatively, use patch-package to guard the library's getItem call, but that patch must be reapplied after dependency updates. Setting only languageDataStore: 'query' does not fix the crash.

GitHub Issue #5204

Tags

live-streamingself-hostedopen-sourcertmpchatprivacydecentralized

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Install the appropriate package for your distro (dpkg / rpm / AppImage)

3

Step 1: Download the binary or use Docker (docker run owncast/owncast)

4

Step 2: Run the server, default port 8080. Open http://your-ip:8080 in browser

5

Step 3: In OBS, set stream server to rtmp://your-ip/live, use any stream key

Install Guide
  1. Step 1: Download the binary or use Docker (docker run owncast/owncast)
  2. Step 2: Run the server, default port 8080. Open http://your-ip:8080 in browser
  3. Step 3: In OBS, set stream server to rtmp://your-ip/live, use any stream key
File Integrity

SHA-256 checksum verified

Checksum extracted from GitHub official Release page

SHA256 Checksum

bfef49e719ad9316554855df44a9ac21aec5f2a74de79eef15b6947cb383c2bb

This checksum is extracted from the GitHub Release page. Verify file integrity after download.

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

Delete the Owncast binary/folder or stop/remove the Docker container. To wipe data, remove the 'data' directory.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseMIT
Last Updated2026-10-15 07:12:01
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

2 FAQs

Similar Projects