100ms · Capability

100ms Server-Side API — Live Streams (HLS)

Start/stop HLS live streams from a 100ms room, pause/resume HLS recording, send timed metadata (ID3) into the playlist, and inspect live stream state. Self-contained Naftiko capability.

100ms Server-Side API — Live Streams (HLS) is a Naftiko capability published by 100ms, one of 8 capabilities the APIs.io network indexes for this provider. It bundles 4 operations.

The capability includes 1 read-only operation and 3 state-changing operations. Lead operation: Start HLS live streaming for a room. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include 100ms, HLS, and Live Streaming.

Run with Naftiko 100msHLSLive Streaming

MCP Tools

hms-start-live-stream

Start HLS live streaming for a room.

hms-stop-live-stream

Stop HLS live streaming for a room.

idempotent
hms-send-timed-metadata

Inject timed (ID3) metadata into the HLS playlist.

hms-list-live-streams

List HLS live streams.

read-only idempotent

Capability Spec

live-streams.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: 100ms Server-Side API — Live Streams (HLS)
  description: 'Start/stop HLS live streams from a 100ms room, pause/resume HLS recording, send
    timed metadata (ID3) into the playlist, and inspect live stream state. Self-contained
    Naftiko capability.'
  tags:
  - 100ms
  - HLS
  - Live Streaming
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    HMS_MANAGEMENT_TOKEN: HMS_MANAGEMENT_TOKEN
capability:
  consumes:
  - type: http
    namespace: live-streams
    baseUri: https://api.100ms.live/v2
    resources:
    - name: live-streams
      path: /live-streams
      operations:
      - { name: listlivestreams, method: GET, description: List All Live Streams, outputRawFormat: json, outputParameters: [{ name: result, type: object, value: $. }] }
    - name: live-stream
      path: /live-streams/{stream_id}
      operations:
      - name: getlivestream
        method: GET
        description: Get Live Stream
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: stream_id, in: path, type: string, required: true }
    - name: live-stream-room-start
      path: /live-streams/room/{room_id}/start
      operations:
      - name: startlivestreamforroom
        method: POST
        description: Start Live Stream For Room
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: room_id, in: path, type: string, required: true }
        - { name: body, in: body, type: object, required: true }
    - name: live-stream-room-stop
      path: /live-streams/room/{room_id}/stop
      operations:
      - name: stoplivestreamforroom
        method: POST
        description: Stop Live Stream For Room
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: room_id, in: path, type: string, required: true }
    - name: live-stream-timed-metadata
      path: /live-streams/{stream_id}/timed-metadata
      operations:
      - name: sendtimedmetadata
        method: POST
        description: Send Timed Metadata
        outputRawFormat: json
        outputParameters: [{ name: result, type: object, value: $. }]
        inputParameters:
        - { name: stream_id, in: path, type: string, required: true }
        - { name: body, in: body, type: object, required: true }
    authentication:
      type: bearer
      value: '{{env.HMS_MANAGEMENT_TOKEN}}'
      placement: header
  exposes:
  - type: mcp
    namespace: live-streams-mcp
    port: 9090
    transport: http
    description: MCP adapter for 100ms HLS live streams.
    tools:
    - name: hms-start-live-stream
      description: Start HLS live streaming for a room.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: live-streams.startlivestreamforroom
      with: { room_id: tools.room_id, body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - name: hms-stop-live-stream
      description: Stop HLS live streaming for a room.
      hints: { readOnly: false, destructive: false, idempotent: true }
      call: live-streams.stoplivestreamforroom
      with: { room_id: tools.room_id }
      outputParameters: [{ type: object, mapping: $. }]
    - name: hms-send-timed-metadata
      description: Inject timed (ID3) metadata into the HLS playlist.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: live-streams.sendtimedmetadata
      with: { stream_id: tools.stream_id, body: tools.body }
      outputParameters: [{ type: object, mapping: $. }]
    - name: hms-list-live-streams
      description: List HLS live streams.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: live-streams.listlivestreams
      outputParameters: [{ type: object, mapping: $. }]