Skip to content

Feature Request: HLS Streaming Extension (Draft) #14

@baconpantsuppercut

Description

@baconpantsuppercut

Feature Request: HLS Streaming Extension (Draft)

Summary

Define an optional arkA extension for HLS (HTTP Live Streaming) so creators and clients can support adaptive, segmented video streaming without making it mandatory for all users.

This keeps arkA simple at the core while still enabling high-performance streaming for clients that want it.


Motivation

Most modern video platforms use HLS/DASH because:

  • adaptive bitrate improves playback on slow networks
  • faster startup times
  • CDN-friendly
  • stable for long-form content

arkA’s current draft allows only simple direct file sources.
Adding an extension for HLS gives advanced creators more power while keeping the base protocol easy for beginners.


Proposed Design

Add a new source type:

{
  "type": "hls",
  "manifest": "https://example.com/video/playlist.m3u8",
  "bitrates": ["1080p", "720p", "480p"],
  "codecs": ["h264", "aac"]
}

Clients that support HLS read the manifest; others ignore it and fall back to direct files.

Full draft spec is here:
/docs/extensions/hls.md (to be added)


Tasks

Protocol Extensions

  • Define type: "hls" format
  • Manifest URL field
  • Optional bitrate & codec descriptors
  • Validation rules
  • Fallback behavior

Docs

  • Add /docs/extensions/hls.md
  • Add HLS example to /examples/video.json

Client (optional for MVP)

  • Basic hls.js integration
  • Fallback to direct file if unsupported
  • Minimal UI indicator for adaptive streaming

Open Questions

  • Should HLS manifests be allowed to reference IPFS/Arweave CIDs?
  • Should encrypted HLS be a separate extension?
  • Should we define recommended transcoding presets?

Goal

Deliver a minimal, clean, optional HLS extension that client developers can build on without increasing the complexity of arkA’s core.


Status: Open for discussion and contributors
Labels: extension, video, protocol, streaming, help wanted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions