selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

couchtube logo

Self-host couchtube

YouTube frontend simulating a TV channel experience

AlphaOpen SourceGPL-3.0
Updated7 months ago
LanguageGo
Setup difficultyEasy
Stars
268
Port
8363 (HTTP web interface)
Docker
ghcr.io/ozencb/couchtube
Install with Docker
CouchTube channel editor interface

What is couchtube?

CouchTube is a self-hosted YouTube frontend written in Go that simulates a TV channel experience. It loads videos from predefined channel lists and schedules playback by time of day so multiple viewers see the same content. A built-in editor at /editor lets users manage channels, add videos, set playback segments, and import or export JSON configurations. Custom JSON files can also be submitted via a URL in the settings. The app stores data in SQLite and runs on port 8363 by default. It is distributed as a Docker image (ghcr.io/ozencb/couchtube:latest) and can be built from source with Go 1.22+. The project is in early development and licensed under GPL-3.0.

Should you self-host couchtube?

couchtube scores 40/100 on selfhost.directory (how scoring works) and ranks #31 of 36 in Video Streaming. It has 268 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is piped (70/100, 10 293 stars). It scores higher overall, so compare the two before you pick. See couchtube vs piped side by side.

Features

  • Channel EditorControlled by EDITOR_MODE environment variable (off, readonly, full)
  • Custom JSON channel lists
  • Health Checks
  • SQLite Storage
  • Synchronized scheduling
  • TV channel simulation
  • Video Section Playback
  • YouTube playlist import

couchtube README

How to install couchtube

Install couchtube with Docker

docker run -d
--name couchtube_app
-p 8363:8363
-e PORT=8363
--restart unless-stopped
--health-cmd="curl -f http://localhost:8363 || exit 1"
--health-interval=30s
--health-timeout=10s
--health-retries=3
ghcr.io/ozencb/couchtube:latest

How to configure couchtube

  • DATABASE_FILE_PATH/app/data/couchtube.dbThe path to the SQLite database file used by CouchTube.

    The path to the SQLite database file used by CouchTube.

  • DEFAULT_CHANNELS_PATH/videos.jsonPath to the JSON file used to seed the database on first run.

    Path to the JSON file used to seed the database on first run.

  • EDITOR_MODEoffControls the channel editor at /editor. Values: off (default, hidden), readonly (visible but no edits), full (fully enabled). Also accepts true/false for backward compat.

    Controls the channel editor at /editor. Values: off (default, hidden), readonly (visible but no edits), full (fully enabled). Also accepts true/false for backward compat.

    values: off, readonly, full, true, false

  • PORT8363The port number on which CouchTube will run.

    The port number on which CouchTube will run.

More in Video Streaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…