Setup

Private catalogue

The distributed default is an empty catalogue. Store your own YAML outside the checkout:

channels:
  - id: owned-channel
    name: My channel
    country: MX
    type: Cultura
    number: 1
    mirrors:
      - url: https://your-stream.example/live/master.m3u8
        source: My primary origin

Supported country groups in the original guide are Mexico, Peru, Colombia, Argentina and Spain. Sources may have multiple mirrors, an optional proxy country, category/tags and a logo. YouTube playlist/embed support remains a distinct original adapter, commissioned with recipient-selected playlists.

Catalogue input is trusted operator configuration. The stream origin and its playlists are administrative inputs; keep their permitted hosts, redirects, licensing and deployment egress policy under your control. The proxy ticket boundary prevents a viewer from inventing an arbitrary base64 fetch target.

Private environment

install -d -m700 "$HOME/.config/cancha"
python3 tools/runtime-env.py configure --file "$HOME/.config/cancha/runtime.env" --capability player
python3 tools/runtime-env.py doctor --file "$HOME/.config/cancha/runtime.env"
python3 tools/runtime-env.py run --file "$HOME/.config/cancha/runtime.env" -- python3 -m uvicorn server.main:app --host 127.0.0.1 --port 8765

Set CANCHA_CATALOG to your private catalogue and CANCHA_STATE_DIR to your own state directory. Set CANCHA_HOST/CANCHA_PORT consistently with the selected listener so thumbnail/self-playback requests reach this instance. Optional CANCHA_LOGO_DIR supplies owned channel images.

CANCHA_DVR_WINDOW_S defaults to360 seconds; idle recorders stop after150 seconds. CANCHA_MAX_TRANSCODE bounds concurrent CPU FFmpeg encodes. Choose disk and concurrency limits for your own catalogue before exposing a server. The source beta’s demonstrated local fixture is20 seconds per signal.

The private-file helper accepts only named fields, masks doctor values, rejects unsafe file permissions/links and clears inherited cloud/proxy/project settings. Hidden terminal entry or a selected recipient secret store supplies values. Source, browser storage and chat are separate from that private input path.

Optional proxy

Webshare remains the original optional transport. Configure its owned host/port/user/password fields through the proxy capability and set CANCHA_ENABLE_PROXY=1 deliberately. The default path performs direct access to the recipient’s configured streams. Real proxy/account acceptance is still separate; preparation used only loopback signals.

Android signing and updates

Use -PcanchaBaseUrl=... for your backend. The signing capability holds CANCHA_ANDROID_KEYSTORE, store password, key alias and key password. All fields are required when enabling release signing; otherwise the Gradle release configuration remains unsigned.

The retained scripts/ship-apk.sh is an operator deployment tool. It requires explicit recipient APK, SDK, keystore, target host, static directory and public APK URL. Passwords are referenced through apksigner environment inputs. It performs publication only when an operator intentionally runs it with those owned resources. The source-preparation work performed no APK signing, uploads or deployment.

Search documentation

Type to find a guide or section.

↑ ↓ to choose · Enter to open · Esc to close